[Scummvm-git-logs] scummvm master -> 784f8fe9d38d0de14badf29d39e52a95fe2c027e
djsrv
dservilla at gmail.com
Tue Jun 22 22:17:45 UTC 2021
This automated email contains information about 79 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
560bae0f85 DIRECTOR: LINGO: Remove varCheck and checkImmediate
f54ebabe23 DIRECTOR: LINGO: Add TestScript type
688ca6b299 DIRECTOR: LINGO: Update comment
34d8aabc4b DIRECTOR: LINGO: Add DatumType enum
f726a6ed89 DIRECTOR: LINGO: Rewrite grammar to build AST
e44ff48492 DIRECTOR: LINGO: Move VarType to types.h
a4df3c3d8e DIRECTOR: LINGO: Eliminate Lingo::varCreate
0a708b9c8f DIRECTOR: LINGO: Move compiler logic to new class
38e8068180 DIRECTOR: LINGO: Use visitor pattern for AST traversal
20947e2505 DIRECTOR: Rename nodes to children
0a87b2ab2e DIRECTOR: LINGO: Eliminate argstack
220d4adac7 DIRECTOR: LINGO: Eliminate codeDefine
6b756b3213 DIRECTOR: LINGO: Rename codeFactory to registerFactory
52a056f91c DIRECTOR: LINGO: Reimplement if statements
e23e46c668 DIRECTOR: LINGO: Remove if preprocessor
dac5b6230c DIRECTOR: LINGO: Create compile convenience funcs
03e6a56c5c DIRECTOR: LINGO: Remove old if code
d9a1057cd6 DIRECTOR: LINGO: Reimplement loops
2b19132d97 DIRECTOR: LINGO: Add global, local, prop reference types
6a1829a7d5 DIRECTOR: LINGO: Alphabetize putafter & putbefore
ad934d5960 DIRECTOR: LINGO: Add missing newlines
4f29ef7b29 DIRECTOR: LINGO: Reimplement basic var instructions
cb7d578a55 DIRECTOR: LINGO: Fix ExprNode superclass
ced5aaeb3f DIRECTOR: LINGO: Fix symbol token type
38c0d5fddd DIRECTOR: LINGO: Switch proplist value and prop order
a6cfb4e275 DIRECTOR: LINGO: Reimplement lists
7649e2d44c DIRECTOR: LINGO: Reimplement exit
25b606c9b1 DIRECTOR: LINGO: Parse all variants of cmd args
68200d4542 DIRECTOR: LINGO: Reimplement play command
da9341c796 DIRECTOR: LINGO: Remove play preprocessor
4d6e4558c9 DIRECTOR: LINGO: Reimplement playAccel
553b4beafd DIRECTOR: LINGO: Create FrameNode and MovieNode
41caf423dd DIRECTOR: LINGO: Reimplement go command
9a2eaee922 DIRECTOR: LINGO: Remove c_goto* and c_play
35c103de10 DIRECTOR: LINGO: Replace sound preprocessor
884db621b4 DIRECTOR: LINGO: Reimplement scummvmAssertError
3f1df58337 DIRECTOR: LINGO: Reimplement tell
a5865079a1 DIRECTOR: LINGO: Reimplement when
5915ded25b DIRECTOR: LINGO: Remove outdated comment
744fbc8628 DIRECTOR: LINGO: Reimplement intersects/within
089cd9bb36 DIRECTOR: LINGO: Add error handling to LingoCompiler
0980939740 DIRECTOR: LINGO: Reimplement cast/object refs
510681249b DIRECTOR: LINGO: Clean up token types
de3f586e32 DIRECTOR: LINGO: Fix objectproppush/assign
68d7eb1249 DIRECTOR: LINGO: Change codeCmd/codeFunc arg type
d393fa5472 DIRECTOR: LINGO: Reimplement 'the'
a37b2f6bb6 DIRECTOR: LINGO: Fix chunk expr type checks
1a311812cf DIRECTOR: LINGO: Reimplement chunk expressions
a825a68f55 DIRECTOR: LINGO: Reimplement open
ac5dbe3492 DIRECTOR: LINGO: Create CMDID symbol
c7e8003ccb DIRECTOR: LINGO: Lower b_go version
c66377b5e8 DIRECTOR: LINGO: Reimplement repeat with in
0ff9d8437c DIRECTOR: LINGO: Add function fallback to getObjectProp
46785dbe26 DIRECTOR: LINGO: Fix list definitions
ba8671f7e0 DIRECTOR: LINGO: Add buildbot warnings to compiler
161cf05f7c DIRECTOR: LINGO: Add missing !
597952bdd8 DIRECTOR: LINGO: Correct codeTheFieldGet to codeTheFieldSet
150e819d3f DIRECTOR: LINGO: Correct more 'the' assignments
fee4e419f8 DIRECTOR: LINGO: Make var undefined warning stricter
87dc8c0269 DIRECTOR: LINGO: Fix delete/hilite type checks
6a85f47291 DIRECTOR: LINGO: Compile vars as refs for delete/hilite
b098219eae DIRECTOR: LINGO: Fix if statements in tests
76195e62f4 DIRECTOR: LINGO: Allow stray end ifs
e093f59aa2 DIRECTOR: LINGO: Allow trailing comma
155db7d72c DIRECTOR: LINGO: Correctly populate _methodVars
478f74de3e DIRECTOR: LINGO: Reimplement factory calls
9c5c8cbb1d DIRECTOR: LINGO: Remove buildbot warnings for undefined var
7d543f5750 DIRECTOR: LINGO: Fix factory redefinition warning
509b34579f DIRECTOR: LINGO: Change chunk ref args to exprs
16ad72c042 DIRECTOR: LINGO: Fix calling window with multiple args
2aa766754f DIRECTOR: LINGO: Make getObjectProp use stack
8f836f321c DIRECTOR: Don't load shared cast twice
d9877305e7 DIRECTOR: LINGO: Fix varFetch warnings
e38939fe4a DIRECTOR: LINGO: Fix D2-3 cast numbers
8abdb0df16 DIRECTOR: LINGO: Allow missing end if
ace4d11cf7 DIRECTOR: LINGO: Allow trailing comma in function args
56718ceb8a DIRECTOR: LINGO: Add trailing comma in function test
32534e2d7a DIRECTOR: LINGO: Move tokens out of CMDID
784f8fe9d3 DIRECTOR: LINGO: Allow expression after sprite
Commit: 560bae0f8565d1aaee0378505f65ae7fea859f10
https://github.com/scummvm/scummvm/commit/560bae0f8565d1aaee0378505f65ae7fea859f10
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove varCheck and checkImmediate
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 475c7c44a7..20da9aa978 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -118,7 +118,6 @@ static struct FuncDescr {
{ LC::c_play, "c_play", "" },
{ LC::c_procret, "c_procret", "" },
{ LC::c_proparraypush, "c_proparraypush", "i" },
- { LC::c_setImmediate, "c_setImmediate", "i" },
{ LC::c_starts, "c_starts", "" },
{ LC::c_stringpush, "c_stringpush", "s" },
{ LC::c_sub, "c_sub", "" },
@@ -447,14 +446,6 @@ void LC::c_varpush() {
Common::String name(g_lingo->readString());
Datum d;
- // In immediate mode we will push variables as strings
- // This is used for playAccel
- if (g_lingo->_immediateMode) {
- g_lingo->push(Datum(Common::String(name)));
-
- return;
- }
-
// Looking for the cast member constants
if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
int val = castNumToNum(name.c_str());
@@ -484,10 +475,6 @@ void LC::c_stackdrop() {
}
}
-void LC::c_setImmediate() {
- g_lingo->_immediateMode = g_lingo->readInt();
-}
-
void LC::c_assign() {
Datum d1, d2;
d1 = g_lingo->pop(false);
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 3db90833b8..aa7616d77c 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -86,7 +86,6 @@ void c_stackdrop();
void c_assign();
bool verify(const Symbol &s);
void c_eval();
-void c_setImmediate();
void c_swap();
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index a53c2cccd9..a3883eaba3 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -202,17 +202,6 @@ void Lingo::clearArgStack() {
_argstack.clear();
}
-int Lingo::codeSetImmediate(bool state) {
- g_lingo->_immediateMode = state;
-
- int res = g_lingo->code1(LC::c_setImmediate);
- inst i = 0;
- WRITE_UINT32(&i, state);
- g_lingo->code1(i);
-
- return res;
-}
-
int Lingo::codeCmd(Common::String *s, int numpar) {
// Insert current line number to our asserts
if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 663074c947..4e01c278d9 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -34,7 +34,7 @@
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
+ * if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
@@ -51,7 +51,7 @@ typedef uint32_t flex_uint32_t;
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
+typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
@@ -162,10 +162,10 @@ extern FILE *yyin, *yyout;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
-
+
#define YY_LESS_LINENO(n)
#define YY_LINENO_REWIND_TO(ptr)
-
+
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
@@ -364,7 +364,7 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[333] =
+static const flex_int16_t yy_accept[330] =
{ 0,
0, 0, 76, 74, 1, 72, 72, 74, 74, 71,
71, 70, 71, 67, 71, 68, 68, 68, 68, 68,
@@ -389,20 +389,19 @@ static const flex_int16_t yy_accept[333] =
68, 30, 0, 68, 68, 68, 68, 68, 68, 68,
68, 52, 52, 52, 60, 68, 68, 0, 68, 5,
- 68, 0, 13, 17, 0, 0, 0, 68, 68, 68,
+ 68, 0, 13, 17, 0, 0, 0, 68, 68, 28,
0, 68, 68, 68, 43, 44, 68, 56, 46, 0,
52, 52, 61, 58, 0, 68, 68, 11, 0, 20,
- 68, 68, 0, 0, 68, 68, 68, 68, 0, 0,
- 0, 52, 52, 0, 14, 8, 18, 21, 68, 28,
- 0, 68, 40, 41, 68, 0, 0, 0, 52, 52,
- 14, 68, 28, 0, 39, 68, 0, 0, 0, 0,
- 52, 22, 37, 68, 51, 50, 51, 0, 0, 0,
- 0, 52, 68, 50, 0, 0, 0, 0, 0, 68,
-
- 0, 0, 0, 0, 0, 0, 68, 0, 0, 51,
- 50, 50, 51, 0, 68, 49, 50, 50, 0, 68,
- 50, 68, 0, 50, 68, 0, 0, 55, 0, 0,
- 48, 0
+ 68, 68, 0, 68, 68, 68, 68, 0, 0, 0,
+ 52, 52, 0, 14, 8, 18, 21, 68, 0, 68,
+ 40, 41, 68, 0, 0, 0, 52, 52, 14, 68,
+ 0, 39, 68, 0, 0, 0, 0, 52, 22, 37,
+ 68, 51, 50, 51, 0, 0, 0, 0, 52, 68,
+ 50, 0, 0, 0, 0, 0, 68, 0, 0, 0,
+
+ 0, 0, 0, 68, 0, 0, 51, 50, 50, 51,
+ 0, 68, 49, 50, 50, 0, 68, 50, 68, 0,
+ 50, 68, 0, 0, 55, 0, 0, 48, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -431,7 +430,7 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
@@ -447,91 +446,91 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[347] =
+static const flex_int16_t yy_base[342] =
{ 0,
- 0, 58, 663, 735, 59, 735, 735, 657, 0, 735,
- 653, 55, 54, 735, 647, 49, 51, 57, 46, 50,
+ 0, 58, 661, 727, 59, 727, 727, 654, 0, 727,
+ 648, 55, 54, 727, 643, 49, 51, 57, 46, 50,
48, 56, 0, 85, 59, 95, 73, 98, 106, 68,
- 124, 138, 98, 165, 148, 85, 735, 651, 735, 0,
- 735, 645, 122, 735, 735, 735, 0, 120, 73, 93,
- 124, 143, 146, 139, 146, 146, 157, 164, 162, 650,
+ 124, 138, 98, 165, 148, 85, 727, 647, 727, 0,
+ 727, 640, 122, 727, 727, 727, 0, 120, 73, 93,
+ 124, 143, 146, 139, 146, 146, 157, 164, 162, 644,
0, 160, 167, 166, 177, 166, 183, 163, 171, 0,
0, 186, 0, 191, 192, 176, 190, 194, 191, 198,
197, 207, 214, 0, 215, 217, 207, 249, 224, 224,
- 0, 640, 237, 0, 217, 216, 229, 229, 237, 247,
+ 0, 635, 237, 0, 217, 216, 229, 229, 237, 247,
- 644, 241, 249, 254, 275, 243, 258, 250, 260, 251,
+ 638, 241, 249, 254, 275, 243, 258, 250, 260, 251,
266, 0, 266, 251, 0, 258, 254, 258, 273, 0,
286, 287, 290, 0, 288, 287, 293, 317, 295, 299,
308, 305, 310, 314, 301, 306, 307, 0, 0, 323,
- 0, 643, 638, 0, 324, 331, 318, 321, 325, 339,
+ 0, 637, 622, 0, 324, 331, 318, 321, 325, 339,
327, 0, 0, 0, 330, 333, 344, 0, 0, 362,
341, 349, 354, 344, 348, 343, 347, 0, 379, 0,
0, 364, 357, 363, 0, 357, 362, 0, 372, 371,
- 396, 0, 0, 375, 394, 375, 637, 378, 380, 0,
+ 396, 0, 0, 375, 394, 375, 579, 378, 380, 0,
396, 0, 417, 399, 393, 392, 392, 393, 396, 398,
- 400, 622, 436, 429, 0, 400, 409, 414, 416, 0,
- 422, 430, 0, 0, 429, 427, 457, 435, 438, 579,
+ 400, 512, 436, 429, 0, 400, 409, 414, 416, 0,
+ 422, 430, 0, 0, 429, 427, 457, 435, 438, 0,
433, 447, 433, 435, 0, 0, 442, 0, 0, 477,
- 467, 468, 0, 0, 443, 446, 453, 735, 468, 735,
- 473, 482, 512, 485, 483, 466, 467, 495, 497, 493,
- 491, 490, 515, 488, 0, 0, 735, 0, 497, 0,
- 504, 508, 0, 0, 504, 507, 505, 514, 500, 538,
- 735, 511, 0, 524, 0, 515, 525, 479, 528, 546,
- 547, 0, 735, 532, 735, 0, 735, 392, 551, 567,
- 556, 340, 530, 0, 570, 573, 329, 558, 588, 540,
-
- 558, 560, 583, 586, 591, 579, 593, 318, 199, 169,
- 565, 598, 158, 144, 566, 127, 119, 116, 610, 592,
- 621, 599, 626, 641, 605, 611, 611, 0, 80, 77,
- 70, 735, 678, 680, 683, 686, 691, 696, 698, 703,
- 706, 711, 716, 718, 723, 728
+ 467, 468, 0, 0, 443, 446, 453, 727, 468, 727,
+ 473, 482, 485, 483, 466, 467, 495, 497, 493, 491,
+ 490, 515, 488, 0, 0, 727, 0, 497, 504, 508,
+ 0, 0, 504, 507, 505, 514, 500, 538, 727, 511,
+ 524, 0, 515, 525, 479, 528, 546, 547, 0, 727,
+ 532, 727, 0, 727, 392, 551, 567, 556, 340, 530,
+ 0, 570, 573, 329, 558, 588, 540, 558, 560, 583,
+
+ 586, 591, 579, 593, 318, 199, 169, 565, 598, 158,
+ 144, 566, 127, 119, 116, 610, 592, 621, 599, 626,
+ 641, 605, 611, 611, 0, 80, 77, 70, 727, 678,
+ 680, 683, 686, 691, 696, 698, 703, 708, 710, 715,
+ 720
} ;
-static const flex_int16_t yy_def[347] =
+static const flex_int16_t yy_def[342] =
{ 0,
- 332, 1, 332, 332, 332, 332, 332, 333, 334, 332,
- 332, 332, 332, 332, 332, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 332, 335, 332, 332, 333, 332, 336,
- 332, 332, 332, 332, 332, 332, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 332, 332, 335,
- 336, 332, 335, 335, 335, 335, 335, 335, 335, 335,
-
- 335, 335, 335, 335, 332, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 332, 335, 335, 335, 335, 335, 335,
- 335, 335, 337, 335, 335, 335, 332, 332, 332, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 338, 335,
- 335, 335, 335, 335, 335, 332, 335, 335, 335, 335,
- 332, 339, 335, 335, 332, 332, 332, 335, 335, 335,
- 335, 335, 332, 335, 335, 335, 335, 335, 335, 335,
-
- 335, 338, 338, 338, 335, 335, 335, 332, 335, 335,
- 335, 332, 339, 335, 332, 332, 332, 335, 335, 335,
- 332, 335, 335, 335, 335, 335, 335, 335, 335, 332,
- 338, 338, 335, 335, 332, 335, 335, 332, 332, 332,
- 335, 335, 340, 332, 335, 335, 335, 335, 332, 332,
- 332, 338, 338, 332, 335, 335, 332, 335, 335, 341,
- 332, 335, 335, 335, 335, 332, 332, 332, 338, 338,
- 332, 335, 341, 332, 335, 335, 332, 342, 332, 343,
- 338, 335, 332, 335, 332, 344, 332, 343, 343, 343,
- 343, 338, 335, 344, 332, 343, 343, 343, 332, 335,
-
- 332, 332, 343, 342, 343, 332, 335, 332, 332, 343,
- 344, 344, 343, 332, 335, 332, 344, 344, 345, 335,
- 346, 335, 332, 346, 335, 332, 332, 335, 332, 332,
- 332, 0, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332
+ 329, 1, 329, 329, 329, 329, 329, 330, 331, 329,
+ 329, 329, 329, 329, 329, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 329, 332, 329, 329, 330, 329, 333,
+ 329, 329, 329, 329, 329, 329, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 329, 329, 332,
+ 333, 329, 332, 332, 332, 332, 332, 332, 332, 332,
+
+ 332, 332, 332, 332, 329, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 329, 332, 332, 332, 332, 332, 332,
+ 332, 332, 334, 332, 332, 332, 329, 329, 329, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 335, 332,
+ 332, 332, 332, 332, 332, 329, 332, 332, 332, 332,
+ 329, 336, 332, 332, 329, 329, 329, 332, 332, 332,
+ 332, 332, 329, 332, 332, 332, 332, 332, 332, 332,
+
+ 332, 335, 335, 335, 332, 332, 332, 329, 332, 332,
+ 332, 329, 336, 332, 329, 329, 329, 332, 332, 332,
+ 329, 332, 332, 332, 332, 332, 332, 332, 332, 329,
+ 335, 335, 332, 332, 329, 332, 332, 329, 329, 329,
+ 332, 332, 329, 332, 332, 332, 332, 329, 329, 329,
+ 335, 335, 329, 332, 332, 329, 332, 332, 329, 332,
+ 332, 332, 332, 329, 329, 329, 335, 335, 329, 332,
+ 329, 332, 332, 329, 337, 329, 338, 335, 332, 329,
+ 332, 329, 339, 329, 338, 338, 338, 338, 335, 332,
+ 339, 329, 338, 338, 338, 329, 332, 329, 329, 338,
+
+ 337, 338, 329, 332, 329, 329, 338, 339, 339, 338,
+ 329, 332, 329, 339, 339, 340, 332, 341, 332, 329,
+ 341, 332, 329, 329, 332, 329, 329, 329, 0, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329
} ;
-static const flex_int16_t yy_nxt[795] =
+static const flex_int16_t yy_nxt[787] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -540,22 +539,22 @@ static const flex_int16_t yy_nxt[795] =
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
36, 37, 37, 42, 43, 44, 45, 48, 50, 58,
- 51, 331, 54, 55, 49, 56, 35, 52, 331, 59,
- 64, 331, 60, 53, 57, 77, 36, 37, 37, 94,
+ 51, 328, 54, 55, 49, 56, 35, 52, 328, 59,
+ 64, 328, 60, 53, 57, 77, 36, 37, 37, 94,
68, 48, 50, 58, 51, 54, 55, 49, 56, 69,
35, 52, 59, 61, 64, 60, 53, 57, 65, 77,
- 62, 95, 66, 94, 68, 63, 70, 316, 85, 86,
- 316, 67, 69, 71, 87, 72, 73, 61, 316, 74,
+ 62, 95, 66, 94, 68, 63, 70, 313, 85, 86,
+ 313, 67, 69, 71, 87, 72, 73, 61, 313, 74,
42, 43, 65, 62, 75, 95, 66, 76, 63, 78,
- 70, 79, 85, 86, 67, 319, 71, 87, 72, 73,
- 93, 80, 74, 96, 81, 82, 97, 75, 83, 295,
+ 70, 79, 85, 86, 67, 316, 71, 87, 72, 73,
+ 93, 80, 74, 96, 81, 82, 97, 75, 83, 292,
76, 90, 101, 78, 84, 79, 88, 37, 37, 58,
- 295, 98, 99, 93, 80, 100, 96, 81, 102, 82,
+ 292, 98, 99, 93, 80, 100, 96, 81, 102, 82,
97, 103, 83, 89, 108, 90, 101, 84, 104, 106,
107, 109, 110, 58, 98, 99, 111, 114, 100, 112,
- 316, 115, 102, 116, 117, 103, 120, 89, 108, 118,
+ 313, 115, 102, 116, 117, 103, 120, 89, 108, 118,
126, 104, 106, 107, 109, 113, 110, 121, 119, 111,
114, 124, 122, 112, 115, 123, 125, 116, 117, 120,
127, 128, 129, 118, 126, 133, 130, 134, 113, 135,
@@ -567,15 +566,15 @@ static const flex_int16_t yy_nxt[795] =
161, 89, 146, 147, 144, 145, 150, 153, 148, 151,
162, 154, 155, 163, 158, 149, 159, 152, 164, 166,
- 156, 157, 160, 161, 165, 167, 168, 147, 169, 316,
+ 156, 157, 160, 161, 165, 167, 168, 147, 169, 313,
171, 148, 172, 162, 173, 174, 175, 163, 149, 176,
- 304, 177, 164, 166, 178, 179, 180, 165, 167, 168,
- 183, 299, 170, 171, 184, 172, 185, 186, 173, 174,
+ 301, 177, 164, 166, 178, 179, 180, 165, 167, 168,
+ 183, 296, 170, 171, 184, 172, 185, 186, 173, 174,
175, 187, 188, 176, 177, 189, 190, 178, 179, 191,
180, 192, 195, 193, 183, 170, 196, 197, 184, 185,
186, 198, 199, 200, 187, 194, 188, 201, 189, 190,
169, 205, 191, 206, 207, 192, 195, 208, 209, 210,
- 196, 197, 211, 295, 198, 199, 200, 181, 214, 194,
+ 196, 197, 211, 292, 198, 199, 200, 181, 214, 194,
201, 216, 203, 218, 204, 205, 206, 215, 207, 219,
208, 209, 220, 210, 222, 228, 211, 212, 193, 223,
@@ -583,47 +582,45 @@ static const flex_int16_t yy_nxt[795] =
230, 215, 219, 233, 234, 221, 220, 230, 222, 228,
235, 212, 223, 224, 236, 225, 226, 237, 238, 231,
241, 227, 229, 239, 240, 242, 233, 234, 217, 221,
- 232, 244, 245, 235, 246, 247, 248, 236, 230, 230,
- 237, 254, 238, 231, 241, 147, 239, 240, 230, 242,
- 278, 255, 256, 232, 244, 257, 245, 246, 247, 248,
- 258, 230, 253, 249, 254, 263, 252, 259, 261, 147,
-
- 262, 280, 264, 250, 255, 256, 278, 251, 265, 257,
- 266, 267, 268, 243, 258, 253, 230, 249, 263, 252,
- 269, 259, 261, 271, 262, 264, 250, 272, 274, 270,
- 251, 275, 265, 276, 266, 267, 268, 277, 279, 230,
- 282, 283, 285, 269, 284, 287, 271, 280, 230, 293,
- 272, 274, 295, 270, 275, 281, 276, 295, 300, 295,
- 277, 279, 289, 282, 296, 283, 285, 284, 295, 287,
- 307, 295, 290, 293, 295, 292, 291, 298, 309, 281,
- 243, 300, 305, 308, 295, 297, 289, 304, 296, 299,
- 317, 301, 295, 307, 320, 290, 302, 314, 292, 291,
-
- 310, 298, 309, 303, 249, 305, 308, 311, 313, 297,
- 315, 319, 312, 317, 306, 301, 318, 320, 251, 302,
- 322, 314, 323, 230, 310, 325, 303, 323, 249, 330,
- 294, 311, 313, 328, 315, 312, 329, 306, 217, 143,
- 318, 251, 323, 322, 181, 143, 286, 326, 325, 92,
- 294, 105, 327, 330, 92, 39, 328, 294, 46, 329,
- 41, 39, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 326, 332, 332, 332, 327, 332, 294, 38, 38,
- 332, 38, 38, 38, 40, 40, 47, 47, 47, 91,
- 91, 91, 182, 332, 332, 182, 182, 202, 332, 332,
-
- 202, 213, 213, 213, 260, 332, 332, 260, 260, 273,
- 273, 273, 286, 332, 332, 286, 286, 288, 332, 332,
- 288, 294, 294, 294, 321, 332, 332, 321, 321, 324,
- 332, 324, 324, 324, 3, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332
-
+ 232, 243, 244, 235, 245, 246, 247, 236, 230, 230,
+ 237, 253, 238, 231, 241, 147, 239, 240, 230, 242,
+ 275, 254, 255, 232, 243, 256, 244, 245, 246, 247,
+ 257, 230, 252, 248, 253, 261, 251, 258, 259, 147,
+
+ 260, 277, 262, 249, 254, 255, 275, 250, 263, 256,
+ 264, 265, 266, 230, 257, 252, 230, 248, 261, 251,
+ 267, 258, 259, 269, 260, 262, 249, 270, 271, 268,
+ 250, 272, 263, 273, 264, 265, 266, 274, 276, 230,
+ 279, 280, 282, 267, 281, 284, 269, 277, 230, 290,
+ 270, 271, 292, 268, 272, 278, 273, 292, 297, 292,
+ 274, 276, 286, 279, 293, 280, 282, 281, 292, 284,
+ 304, 292, 287, 290, 292, 289, 288, 295, 306, 278,
+ 217, 297, 302, 305, 292, 294, 286, 301, 293, 296,
+ 314, 298, 292, 304, 317, 287, 299, 311, 289, 288,
+
+ 307, 295, 306, 300, 248, 302, 305, 308, 310, 294,
+ 312, 316, 309, 314, 303, 298, 315, 317, 250, 299,
+ 319, 311, 320, 143, 307, 322, 300, 320, 248, 327,
+ 291, 308, 310, 325, 312, 309, 326, 303, 181, 143,
+ 315, 250, 320, 319, 92, 105, 283, 323, 322, 92,
+ 291, 39, 324, 327, 46, 41, 325, 291, 39, 326,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 323, 329, 329, 329, 324, 329, 291, 38, 38,
+ 329, 38, 38, 38, 40, 40, 47, 47, 47, 91,
+ 91, 91, 182, 329, 329, 182, 182, 202, 329, 329,
+
+ 202, 213, 213, 213, 283, 329, 329, 283, 283, 285,
+ 329, 329, 285, 291, 291, 291, 318, 329, 329, 318,
+ 318, 321, 329, 321, 321, 321, 3, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329
} ;
-static const flex_int16_t yy_chk[795] =
+static const flex_int16_t yy_chk[787] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -632,22 +629,22 @@ static const flex_int16_t yy_chk[795] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
5, 5, 5, 12, 12, 13, 13, 16, 17, 21,
- 18, 331, 19, 20, 16, 20, 2, 18, 330, 22,
- 25, 329, 22, 18, 20, 30, 36, 36, 36, 49,
+ 18, 328, 19, 20, 16, 20, 2, 18, 327, 22,
+ 25, 326, 22, 18, 20, 30, 36, 36, 36, 49,
27, 16, 17, 21, 18, 19, 20, 16, 20, 27,
2, 18, 22, 24, 25, 22, 18, 20, 26, 30,
- 24, 50, 26, 49, 27, 24, 28, 318, 33, 33,
- 317, 26, 27, 28, 33, 28, 28, 24, 316, 29,
+ 24, 50, 26, 49, 27, 24, 28, 315, 33, 33,
+ 314, 26, 27, 28, 33, 28, 28, 24, 313, 29,
43, 43, 26, 24, 29, 50, 26, 29, 24, 31,
- 28, 31, 33, 33, 26, 314, 28, 33, 28, 28,
- 48, 31, 29, 51, 31, 32, 52, 29, 32, 313,
+ 28, 31, 33, 33, 26, 311, 28, 33, 28, 28,
+ 48, 31, 29, 51, 31, 32, 52, 29, 32, 310,
29, 35, 56, 31, 32, 31, 34, 34, 34, 35,
- 310, 53, 54, 48, 31, 55, 51, 31, 57, 32,
+ 307, 53, 54, 48, 31, 55, 51, 31, 57, 32,
52, 58, 32, 34, 63, 35, 56, 32, 59, 62,
62, 64, 65, 35, 53, 54, 66, 68, 55, 67,
- 309, 69, 57, 72, 74, 58, 76, 34, 63, 75,
+ 306, 69, 57, 72, 74, 58, 76, 34, 63, 75,
81, 59, 62, 62, 64, 67, 65, 77, 75, 66,
68, 79, 78, 67, 69, 78, 80, 72, 74, 76,
82, 83, 85, 75, 81, 87, 85, 89, 67, 90,
@@ -659,15 +656,15 @@ static const flex_int16_t yy_chk[795] =
118, 88, 104, 105, 102, 103, 106, 108, 105, 107,
119, 109, 110, 121, 114, 105, 116, 107, 122, 125,
- 111, 113, 117, 118, 123, 126, 127, 105, 128, 308,
+ 111, 113, 117, 118, 123, 126, 127, 105, 128, 305,
129, 105, 130, 119, 131, 132, 133, 121, 105, 134,
- 297, 135, 122, 125, 136, 137, 140, 123, 126, 127,
- 145, 292, 128, 129, 146, 130, 147, 148, 131, 132,
+ 294, 135, 122, 125, 136, 137, 140, 123, 126, 127,
+ 145, 289, 128, 129, 146, 130, 147, 148, 131, 132,
133, 149, 150, 134, 135, 151, 155, 136, 137, 156,
140, 157, 161, 160, 145, 128, 162, 163, 146, 147,
148, 164, 165, 166, 149, 160, 150, 167, 151, 155,
169, 172, 156, 173, 174, 157, 161, 176, 177, 179,
- 162, 163, 180, 288, 164, 165, 166, 181, 184, 160,
+ 162, 163, 180, 285, 164, 165, 166, 181, 184, 160,
167, 186, 169, 188, 169, 172, 173, 185, 174, 189,
176, 177, 191, 179, 194, 200, 180, 181, 193, 195,
@@ -677,42 +674,40 @@ static const flex_int16_t yy_chk[795] =
218, 199, 201, 215, 216, 219, 206, 207, 217, 193,
204, 221, 222, 208, 223, 224, 227, 209, 231, 232,
211, 235, 212, 203, 218, 217, 215, 216, 230, 219,
- 278, 236, 237, 204, 221, 239, 222, 223, 224, 227,
- 241, 252, 232, 230, 235, 246, 231, 242, 244, 217,
-
- 245, 269, 247, 230, 236, 237, 267, 230, 248, 239,
- 249, 250, 251, 243, 241, 232, 253, 230, 246, 231,
- 252, 242, 244, 254, 245, 247, 230, 259, 261, 253,
- 230, 262, 248, 265, 249, 250, 251, 266, 268, 270,
- 272, 274, 277, 252, 276, 279, 254, 280, 281, 284,
- 259, 261, 289, 253, 262, 270, 265, 291, 293, 298,
- 266, 268, 280, 272, 289, 274, 277, 276, 290, 279,
- 300, 295, 280, 284, 296, 281, 280, 291, 302, 270,
- 220, 293, 298, 301, 303, 290, 280, 304, 289, 299,
- 311, 295, 305, 300, 315, 280, 295, 306, 281, 280,
-
- 303, 291, 302, 296, 299, 298, 301, 304, 305, 290,
- 307, 319, 304, 311, 299, 295, 312, 315, 299, 295,
- 320, 306, 321, 202, 303, 322, 296, 323, 299, 327,
- 321, 304, 305, 325, 307, 304, 326, 299, 187, 143,
- 312, 299, 324, 320, 142, 101, 319, 323, 322, 92,
- 324, 60, 323, 327, 42, 38, 325, 321, 15, 326,
- 11, 8, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 0, 0, 0, 323, 0, 324, 333, 333,
- 0, 333, 333, 333, 334, 334, 335, 335, 335, 336,
- 336, 336, 337, 0, 0, 337, 337, 338, 0, 0,
-
- 338, 339, 339, 339, 340, 0, 0, 340, 340, 341,
- 341, 341, 342, 0, 0, 342, 342, 343, 0, 0,
- 343, 344, 344, 344, 345, 0, 0, 345, 345, 346,
- 0, 346, 346, 346, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332
-
+ 275, 236, 237, 204, 221, 239, 222, 223, 224, 227,
+ 241, 251, 232, 230, 235, 245, 231, 242, 243, 217,
+
+ 244, 267, 246, 230, 236, 237, 265, 230, 247, 239,
+ 248, 249, 250, 202, 241, 232, 252, 230, 245, 231,
+ 251, 242, 243, 253, 244, 246, 230, 258, 259, 252,
+ 230, 260, 247, 263, 248, 249, 250, 264, 266, 268,
+ 270, 271, 274, 251, 273, 276, 253, 277, 278, 281,
+ 258, 259, 286, 252, 260, 268, 263, 288, 290, 295,
+ 264, 266, 277, 270, 286, 271, 274, 273, 287, 276,
+ 297, 292, 277, 281, 293, 278, 277, 288, 299, 268,
+ 187, 290, 295, 298, 300, 287, 277, 301, 286, 296,
+ 308, 292, 302, 297, 312, 277, 292, 303, 278, 277,
+
+ 300, 288, 299, 293, 296, 295, 298, 301, 302, 287,
+ 304, 316, 301, 308, 296, 292, 309, 312, 296, 292,
+ 317, 303, 318, 143, 300, 319, 293, 320, 296, 324,
+ 318, 301, 302, 322, 304, 301, 323, 296, 142, 101,
+ 309, 296, 321, 317, 92, 60, 316, 320, 319, 42,
+ 321, 38, 320, 324, 15, 11, 322, 318, 8, 323,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 320, 0, 0, 0, 320, 0, 321, 330, 330,
+ 0, 330, 330, 330, 331, 331, 332, 332, 332, 333,
+ 333, 333, 334, 0, 0, 334, 334, 335, 0, 0,
+
+ 335, 336, 336, 336, 337, 0, 0, 337, 337, 338,
+ 0, 0, 338, 339, 339, 339, 340, 0, 0, 340,
+ 340, 341, 0, 341, 341, 341, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329
} ;
static yy_state_type yy_last_accepting_state;
@@ -801,17 +796,6 @@ static void count() {
}
}
-static int checkImmediate(int token) {
- if (g_lingo->_immediateMode || g_lingo->_indef == kStateInArgs ||
- g_lingo->_methodVars->contains(yytext)) {
- yylval.s = new Common::String(yytext);
-
- return VARID;
- }
-
- return token;
-}
-
static Common::String *cleanupString(const char *s) {
Common::String *res = new Common::String;
@@ -828,18 +812,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-static int varCheck(int token, const char *name) {
- if (g_lingo->_indef == kStateInArgs || g_lingo->_methodVars->contains(name)) {
- yylval.s = new Common::String(name);
-
- return VARID;
- }
-
- return token;
-}
-
-#line 841 "engines/director/lingo/lingo-lex.cpp"
-#line 842 "engines/director/lingo/lingo-lex.cpp"
+#line 815 "engines/director/lingo/lingo-lex.cpp"
+#line 816 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -899,9 +873,9 @@ extern int yywrap ( void );
#endif
#ifndef YY_NO_UNPUT
-
+
static void yyunput ( int c, char *buf_ptr );
-
+
#endif
#ifndef yytext_ptr
@@ -1031,7 +1005,7 @@ YY_DECL
yy_state_type yy_current_state;
char *yy_cp, *yy_bp;
int yy_act;
-
+
if ( !(yy_init) )
{
(yy_init) = 1;
@@ -1059,10 +1033,10 @@ YY_DECL
}
{
-#line 126 "engines/director/lingo/lingo-lex.l"
+#line 105 "engines/director/lingo/lingo-lex.l"
-#line 1065 "engines/director/lingo/lingo-lex.cpp"
+#line 1039 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1090,13 +1064,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 >= 333 )
+ if ( yy_current_state >= 330 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 332 );
+ while ( yy_current_state != 329 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1118,67 +1092,67 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 128 "engines/director/lingo/lingo-lex.l"
+#line 107 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 130 "engines/director/lingo/lingo-lex.l"
+#line 109 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 132 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tAFTER, "after"); } // D3
+#line 111 "engines/director/lingo/lingo-lex.l"
+{ count(); return tAFTER; } // D3
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 133 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tAND, "and"); }
+#line 112 "engines/director/lingo/lingo-lex.l"
+{ count(); return tAND; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 134 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tBEFORE, "before"); } // D3
+#line 113 "engines/director/lingo/lingo-lex.l"
+{ count(); return tBEFORE; } // D3
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 135 "engines/director/lingo/lingo-lex.l"
+#line 114 "engines/director/lingo/lingo-lex.l"
{ count(); return tCAST; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 136 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tCHAR, "char"); } // D3
+#line 115 "engines/director/lingo/lingo-lex.l"
+{ count(); return tCHAR; } // D3
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 137 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tCONTAINS, "contains"); }
+#line 116 "engines/director/lingo/lingo-lex.l"
+{ count(); return tCONTAINS; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 138 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tDOWN, "down"); }
+#line 117 "engines/director/lingo/lingo-lex.l"
+{ count(); return tDOWN; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 139 "engines/director/lingo/lingo-lex.l"
+#line 118 "engines/director/lingo/lingo-lex.l"
{ count(); return tIF; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 140 "engines/director/lingo/lingo-lex.l"
+#line 119 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSIF; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 141 "engines/director/lingo/lingo-lex.l"
+#line 120 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSE; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 142 "engines/director/lingo/lingo-lex.l"
+#line 121 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1193,11 +1167,6 @@ YY_RULE_SETUP
else if (!scumm_stricmp(ptr, "tell"))
return tENDTELL;
- if (!*ptr) { // If it is stale "end", check it
- if (varCheck(ENDCLAUSE, "end") == VARID)
- return VARID;
- }
-
yylval.s = new Common::String(ptr);
return ENDCLAUSE;
@@ -1205,187 +1174,177 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 165 "engines/director/lingo/lingo-lex.l"
+#line 139 "engines/director/lingo/lingo-lex.l"
{ count(); return tFACTORY; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 166 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tEXIT, "exit"); }
+#line 140 "engines/director/lingo/lingo-lex.l"
+{ count(); return tEXIT; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 167 "engines/director/lingo/lingo-lex.l"
+#line 141 "engines/director/lingo/lingo-lex.l"
{ count(); return tFIELD; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 168 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tGLOBAL, "global"); }
+#line 142 "engines/director/lingo/lingo-lex.l"
+{ count(); return tGLOBAL; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 169 "engines/director/lingo/lingo-lex.l"
+#line 143 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 170 "engines/director/lingo/lingo-lex.l"
+#line 144 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 171 "engines/director/lingo/lingo-lex.l"
+#line 145 "engines/director/lingo/lingo-lex.l"
{ count(); return tGOLOOP; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 172 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tINSTANCE, "instance"); }
+#line 146 "engines/director/lingo/lingo-lex.l"
+{ count(); return tINSTANCE; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 173 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tINTERSECTS, "intersects"); }
+#line 147 "engines/director/lingo/lingo-lex.l"
+{ count(); return tINTERSECTS;}
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 174 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tINTO, "into"); }
+#line 148 "engines/director/lingo/lingo-lex.l"
+{ count(); return tINTO; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 175 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tIN, "in"); }
+#line 149 "engines/director/lingo/lingo-lex.l"
+{ count(); return tIN; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 176 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tITEM, "item"); }
+#line 150 "engines/director/lingo/lingo-lex.l"
+{ count(); return tITEM; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 177 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tLINE, "line"); }
+#line 151 "engines/director/lingo/lingo-lex.l"
+{ count(); return tLINE; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 178 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tMACRO, "macro"); }
+#line 152 "engines/director/lingo/lingo-lex.l"
+{ count(); return tMACRO;; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 179 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[6]; // Skip 'method '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- yylval.s = new Common::String(ptr);
-
- return tMETHOD;
- }
+#line 153 "engines/director/lingo/lingo-lex.l"
+{ count(); return tMETHOD; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 190 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tMOD, "mod"); }
+#line 154 "engines/director/lingo/lingo-lex.l"
+{ count(); return tMOD;}
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 191 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tMOVIE, "movie"); }
+#line 155 "engines/director/lingo/lingo-lex.l"
+{ count(); return tMOVIE; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 192 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tNEXT, "next"); }
+#line 156 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNEXT; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 193 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tNOT, "not"); }
+#line 157 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNOT; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 194 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tOF, "of"); }
+#line 158 "engines/director/lingo/lingo-lex.l"
+{ count(); return tOF; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 195 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tON, "on"); } // D3
+#line 159 "engines/director/lingo/lingo-lex.l"
+{ count(); return tON } // D3
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 196 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tOPEN, "open"); }
+#line 160 "engines/director/lingo/lingo-lex.l"
+{ count(); return tOPEN; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 197 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tOR, "or"); }
+#line 161 "engines/director/lingo/lingo-lex.l"
+{ count(); return tOR; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 198 "engines/director/lingo/lingo-lex.l"
+#line 162 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 199 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tPLAY, "play"); }
+#line 163 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPLAY; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 200 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; }
+#line 164 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPLAYACCEL; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 201 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tPREVIOUS, "previous"); }
+#line 165 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPREVIOUS; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 202 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tPROPERTY, "property"); } // D4
+#line 166 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPROPERTY; } // D4
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 203 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tPUT, "put"); }
+#line 167 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPUT; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 204 "engines/director/lingo/lingo-lex.l"
-{ count(); return checkImmediate(tREPEAT); }
+#line 168 "engines/director/lingo/lingo-lex.l"
+{ count(); return tREPEAT; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 205 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
{ count(); return tSCRIPT; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 206 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tSET, "set"); }
+#line 170 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSET; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 207 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tSTARTS, "starts"); }
+#line 171 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSTARTS; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 208 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tTELL, "tell"); }
+#line 172 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTELL; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 209 "engines/director/lingo/lingo-lex.l"
+#line 173 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1424,7 +1383,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 244 "engines/director/lingo/lingo-lex.l"
+#line 208 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1450,7 +1409,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 266 "engines/director/lingo/lingo-lex.l"
+#line 230 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1527,7 +1486,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 339 "engines/director/lingo/lingo-lex.l"
+#line 303 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1565,7 +1524,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 373 "engines/director/lingo/lingo-lex.l"
+#line 337 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1595,82 +1554,82 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 399 "engines/director/lingo/lingo-lex.l"
+#line 363 "engines/director/lingo/lingo-lex.l"
{ count(); return tTHEN; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 400 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tTO, "to"); }
+#line 364 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTO; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 401 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tASSERTERROR, "scummvmAssertError"); }
+#line 365 "engines/director/lingo/lingo-lex.l"
+{ count(); return tASSERTERROR; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 402 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tSPRITE, "sprite"); }
+#line 366 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSPRITE; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 403 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWITH, "with"); }
+#line 367 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWITH; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 404 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWITHIN, "within"); }
+#line 368 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWITHIN; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 405 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWHEN, "when"); }
+#line 369 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWHEN; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 406 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWHILE, "while"); }
+#line 370 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWHILE; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 407 "engines/director/lingo/lingo-lex.l"
+#line 371 "engines/director/lingo/lingo-lex.l"
{ count(); return tWINDOW; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 408 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWORD, "word"); }
+#line 372 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWORD; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 410 "engines/director/lingo/lingo-lex.l"
+#line 374 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEQ; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 411 "engines/director/lingo/lingo-lex.l"
+#line 375 "engines/director/lingo/lingo-lex.l"
{ count(); return tGE; }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 412 "engines/director/lingo/lingo-lex.l"
+#line 376 "engines/director/lingo/lingo-lex.l"
{ count(); return tLE; }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 413 "engines/director/lingo/lingo-lex.l"
+#line 377 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONCAT; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 414 "engines/director/lingo/lingo-lex.l"
+#line 378 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 416 "engines/director/lingo/lingo-lex.l"
+#line 380 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1680,41 +1639,41 @@ YY_RULE_SETUP
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 422 "engines/director/lingo/lingo-lex.l"
+#line 386 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.f = atof(yytext); return FLOAT; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 423 "engines/director/lingo/lingo-lex.l"
+#line 387 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 424 "engines/director/lingo/lingo-lex.l"
+#line 388 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
case 72:
/* rule 72 can match eol */
YY_RULE_SETUP
-#line 425 "engines/director/lingo/lingo-lex.l"
+#line 389 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 426 "engines/director/lingo/lingo-lex.l"
+#line 390 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 427 "engines/director/lingo/lingo-lex.l"
+#line 391 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 429 "engines/director/lingo/lingo-lex.l"
+#line 393 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1717 "engines/director/lingo/lingo-lex.cpp"
+#line 1676 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1998,7 +1957,7 @@ static int yy_get_next_buffer (void)
{
yy_state_type yy_current_state;
char *yy_cp;
-
+
yy_current_state = (yy_start);
yy_current_state += YY_AT_BOL();
@@ -2013,7 +1972,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 >= 333 )
+ if ( yy_current_state >= 330 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -2041,11 +2000,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 >= 333 )
+ if ( yy_current_state >= 330 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 332);
+ yy_is_jam = (yy_current_state == 329);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2055,7 +2014,7 @@ static int yy_get_next_buffer (void)
static void yyunput (int c, char * yy_bp )
{
char *yy_cp;
-
+
yy_cp = (yy_c_buf_p);
/* undo effects of setting up yytext */
@@ -2100,7 +2059,7 @@ static int yy_get_next_buffer (void)
{
int c;
-
+
*(yy_c_buf_p) = (yy_hold_char);
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -2169,12 +2128,12 @@ static int yy_get_next_buffer (void)
/** Immediately switch to a different input stream.
* @param input_file A readable stream.
- *
+ *
* @note This function does not reset the start condition to @c INITIAL .
*/
void yyrestart (FILE * input_file )
{
-
+
if ( ! YY_CURRENT_BUFFER ){
yyensure_buffer_stack ();
YY_CURRENT_BUFFER_LVALUE =
@@ -2187,11 +2146,11 @@ static int yy_get_next_buffer (void)
/** Switch to a different input buffer.
* @param new_buffer The new input buffer.
- *
+ *
*/
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
{
-
+
/* TODO. We should be able to replace this entire function body
* with
* yypop_buffer_state();
@@ -2231,13 +2190,13 @@ static void yy_load_buffer_state (void)
/** Allocate and initialize an input buffer state.
* @param file A readable stream.
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
+ *
* @return the allocated buffer state.
*/
YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
{
YY_BUFFER_STATE b;
-
+
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
@@ -2260,11 +2219,11 @@ static void yy_load_buffer_state (void)
/** Destroy the buffer.
* @param b a buffer created with yy_create_buffer()
- *
+ *
*/
void yy_delete_buffer (YY_BUFFER_STATE b )
{
-
+
if ( ! b )
return;
@@ -2285,7 +2244,7 @@ static void yy_load_buffer_state (void)
{
int oerrno = errno;
-
+
yy_flush_buffer( b );
b->yy_input_file = file;
@@ -2301,13 +2260,13 @@ static void yy_load_buffer_state (void)
}
b->yy_is_interactive = 0;
-
+
errno = oerrno;
}
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
+ *
*/
void yy_flush_buffer (YY_BUFFER_STATE b )
{
@@ -2336,7 +2295,7 @@ static void yy_load_buffer_state (void)
* the current state. This function will allocate the stack
* if necessary.
* @param new_buffer The new state.
- *
+ *
*/
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
@@ -2366,7 +2325,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
/** Removes and deletes the top of the stack, if present.
* The next element becomes the new top.
- *
+ *
*/
void yypop_buffer_state (void)
{
@@ -2390,7 +2349,7 @@ void yypop_buffer_state (void)
static void yyensure_buffer_stack (void)
{
yy_size_t num_to_alloc;
-
+
if (!(yy_buffer_stack)) {
/* First allocation is just for 2 elements, since we don't know if this
@@ -2433,13 +2392,13 @@ static void yyensure_buffer_stack (void)
/** Setup the input buffer state to scan directly from a user-specified character buffer.
* @param base the character buffer
* @param size the size in bytes of the character buffer
- *
+ *
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
{
YY_BUFFER_STATE b;
-
+
if ( size < 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -2468,14 +2427,14 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
* @param yystr a NUL-terminated string to scan
- *
+ *
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
* yy_scan_bytes() instead.
*/
YY_BUFFER_STATE yy_scan_string (const char * yystr )
{
-
+
return yy_scan_bytes( yystr, (int) strlen(yystr) );
}
@@ -2483,7 +2442,7 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr )
* scan from a @e copy of @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
+ *
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
@@ -2492,7 +2451,7 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
char *buf;
yy_size_t n;
int i;
-
+
/* Get memory for full buffer, including space for trailing EOB's. */
n = (yy_size_t) (_yybytes_len + 2);
buf = (char *) yyalloc( n );
@@ -2546,16 +2505,16 @@ static void yynoreturn yy_fatal_error (const char* msg )
/* Accessor methods (get/set functions) to struct members. */
/** Get the current line number.
- *
+ *
*/
int yyget_lineno (void)
{
-
+
return yylineno;
}
/** Get the input stream.
- *
+ *
*/
FILE *yyget_in (void)
{
@@ -2563,7 +2522,7 @@ FILE *yyget_in (void)
}
/** Get the output stream.
- *
+ *
*/
FILE *yyget_out (void)
{
@@ -2571,7 +2530,7 @@ FILE *yyget_out (void)
}
/** Get the length of the current token.
- *
+ *
*/
int yyget_leng (void)
{
@@ -2579,7 +2538,7 @@ int yyget_leng (void)
}
/** Get the current token.
- *
+ *
*/
char *yyget_text (void)
@@ -2589,18 +2548,18 @@ char *yyget_text (void)
/** Set the current line number.
* @param _line_number line number
- *
+ *
*/
void yyset_lineno (int _line_number )
{
-
+
yylineno = _line_number;
}
/** Set the input stream. This does not discard the current
* input buffer.
* @param _in_str A readable stream.
- *
+ *
* @see yy_switch_to_buffer
*/
void yyset_in (FILE * _in_str )
@@ -2654,7 +2613,7 @@ static int yy_init_globals (void)
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy (void)
{
-
+
/* Pop the buffer stack, destroying each element. */
while(YY_CURRENT_BUFFER){
yy_delete_buffer( YY_CURRENT_BUFFER );
@@ -2680,7 +2639,7 @@ int yylex_destroy (void)
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, const char * s2, int n )
{
-
+
int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
@@ -2705,7 +2664,7 @@ void *yyalloc (yy_size_t size )
void *yyrealloc (void * ptr, yy_size_t size )
{
-
+
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
@@ -2723,7 +2682,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 429 "engines/director/lingo/lingo-lex.l"
+#line 393 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index e50c2aab46..ea62b52f17 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -76,17 +76,6 @@ static void count() {
}
}
-static int checkImmediate(int token) {
- if (g_lingo->_immediateMode || g_lingo->_indef == kStateInArgs ||
- g_lingo->_methodVars->contains(yytext)) {
- yylval.s = new Common::String(yytext);
-
- return VARID;
- }
-
- return token;
-}
-
static Common::String *cleanupString(const char *s) {
Common::String *res = new Common::String;
@@ -103,16 +92,6 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-static int varCheck(int token, const char *name) {
- if (g_lingo->_indef == kStateInArgs || g_lingo->_methodVars->contains(name)) {
- yylval.s = new Common::String(name);
-
- return VARID;
- }
-
- return token;
-}
-
%}
identifier [_[:alpha:]][_[:alnum:]]*
@@ -129,13 +108,13 @@ spc [ \t\xC2]
[#]{identifier} { count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
-after { count(); return varCheck(tAFTER, "after"); } // D3
-and { count(); return varCheck(tAND, "and"); }
-before { count(); return varCheck(tBEFORE, "before"); } // D3
+after { count(); return tAFTER; } // D3
+and { count(); return tAND; }
+before { count(); return tBEFORE; } // D3
cast { count(); return tCAST; }
-char { count(); return varCheck(tCHAR, "char"); } // D3
-contains { count(); return varCheck(tCONTAINS, "contains"); }
-down { count(); return varCheck(tDOWN, "down"); }
+char { count(); return tCHAR; } // D3
+contains { count(); return tCONTAINS; }
+down { count(); return tDOWN; }
if { count(); return tIF; }
else{spc}+if { count(); return tELSIF; }
else { count(); return tELSE; }
@@ -153,59 +132,44 @@ end({spc}+{identifier})? {
else if (!scumm_stricmp(ptr, "tell"))
return tENDTELL;
- if (!*ptr) { // If it is stale "end", check it
- if (varCheck(ENDCLAUSE, "end") == VARID)
- return VARID;
- }
-
yylval.s = new Common::String(ptr);
return ENDCLAUSE;
}
^{spc}*factory { count(); return tFACTORY; }
-exit { count(); return varCheck(tEXIT, "exit"); }
+exit { count(); return tEXIT; }
field { count(); return tFIELD; }
-global { count(); return varCheck(tGLOBAL, "global"); }
+global { count(); return tGLOBAL; }
go{spc}+(to{spc}+)?frame { count(); return tGO; }
go{spc}+(to)? { count(); return tGO; }
go{spc}+loop { count(); return tGOLOOP; }
-instance { count(); return varCheck(tINSTANCE, "instance"); }
-intersects { count(); return varCheck(tINTERSECTS, "intersects"); }
-into { count(); return varCheck(tINTO, "into"); }
-in { count(); return varCheck(tIN, "in"); }
-item { count(); return varCheck(tITEM, "item"); }
-line { count(); return varCheck(tLINE, "line"); }
-macro { count(); return varCheck(tMACRO, "macro"); }
-method{spc}+{identifier} {
- count();
-
- const char *ptr = &yytext[6]; // Skip 'method '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- yylval.s = new Common::String(ptr);
-
- return tMETHOD;
- }
-mod { count(); return varCheck(tMOD, "mod"); }
-movie { count(); return varCheck(tMOVIE, "movie"); }
-next { count(); return varCheck(tNEXT, "next"); }
-not { count(); return varCheck(tNOT, "not"); }
-of { count(); return varCheck(tOF, "of"); }
-on { count(); return varCheck(tON, "on"); } // D3
-open { count(); return varCheck(tOPEN, "open"); }
-or { count(); return varCheck(tOR, "or"); }
+instance { count(); return tINSTANCE; }
+intersects { count(); return tINTERSECTS;}
+into { count(); return tINTO; }
+in { count(); return tIN; }
+item { count(); return tITEM; }
+line { count(); return tLINE; }
+macro { count(); return tMACRO;; }
+method { count(); return tMETHOD; }
+mod { count(); return tMOD;}
+movie { count(); return tMOVIE; }
+next { count(); return tNEXT; }
+not { count(); return tNOT; }
+of { count(); return tOF; }
+on { count(); return tON } // D3
+open { count(); return tOPEN; }
+or { count(); return tOR; }
play{spc}+frame { count(); return tPLAY; }
-play { count(); return varCheck(tPLAY, "play"); }
-playAccel { count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; }
-previous { count(); return varCheck(tPREVIOUS, "previous"); }
-property { count(); return varCheck(tPROPERTY, "property"); } // D4
-put { count(); return varCheck(tPUT, "put"); }
-repeat { count(); return checkImmediate(tREPEAT); }
+play { count(); return tPLAY; }
+playAccel { count(); return tPLAYACCEL; }
+previous { count(); return tPREVIOUS; }
+property { count(); return tPROPERTY; } // D4
+put { count(); return tPUT; }
+repeat { count(); return tREPEAT; }
script { count(); return tSCRIPT; }
-set { count(); return varCheck(tSET, "set"); }
-starts { count(); return varCheck(tSTARTS, "starts"); }
-tell { count(); return varCheck(tTELL, "tell"); }
+set { count(); return tSET; }
+starts { count(); return tSTARTS; }
+tell { count(); return tTELL; }
the{spc}+number{spc}+of{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
count();
@@ -397,15 +361,15 @@ the{spc}+[[:alpha:]]+ {
warning("LEXER: Unhandled the entity '%s'", ptr);
}
then { count(); return tTHEN; }
-to { count(); return varCheck(tTO, "to"); }
-scummvmAssertError { count(); return varCheck(tASSERTERROR, "scummvmAssertError"); }
-sprite { count(); return varCheck(tSPRITE, "sprite"); }
-with { count(); return varCheck(tWITH, "with"); }
-within { count(); return varCheck(tWITHIN, "within"); }
-when { count(); return varCheck(tWHEN, "when"); }
-while { count(); return varCheck(tWHILE, "while"); }
+to { count(); return tTO; }
+scummvmAssertError { count(); return tASSERTERROR; }
+sprite { count(); return tSPRITE; }
+with { count(); return tWITH; }
+within { count(); return tWITHIN; }
+when { count(); return tWHEN; }
+while { count(); return tWHILE; }
window { count(); return tWINDOW; }
-word { count(); return varCheck(tWORD, "word"); }
+word { count(); return tWORD; }
[<][>] { count(); return tNEQ; }
[>][=] { count(); return tGE; }
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index e23d638788..15086ddc98 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -155,7 +155,6 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_abort = false;
_indef = kStateNone;
_indef = kStateNone;
- _immediateMode = false;
_expectError = false;
_caughtError = false;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index a8f8edd6ed..5f68c6ec20 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -315,9 +315,6 @@ public:
return (l + instLen - 1) / instLen;
}
- int codeSetImmediate(bool state);
- // int codeMe(Common::String *method, int numpar);
-
inst readInst() { return getInst(_pc++); }
inst getInst(uint pc) { return (*_currentScript)[pc]; }
int readInt() { return getInt(_pc++); }
@@ -423,7 +420,6 @@ public:
Datum _currentMe;
bool _abort;
- bool _immediateMode;
bool _expectError;
bool _caughtError;
Commit: f54ebabe2332da6e794df9bc4e7955a8c4c15bf2
https://github.com/scummvm/scummvm/commit/f54ebabe2332da6e794df9bc4e7955a8c4c15bf2
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add TestScript type
Changed paths:
engines/director/cast.cpp
engines/director/lingo/lingo.cpp
engines/director/types.h
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index e36746108a..814884069e 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -47,7 +47,8 @@ const char *scriptTypes[] = {
"ScoreScript",
"CastScript",
"MovieScript",
- "EventScript"
+ "EventScript",
+ "TestScript"
};
const char *scriptType2str(ScriptType scr) {
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 15086ddc98..c4231e859a 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -1211,11 +1211,11 @@ void Lingo::runTests() {
debug(">> Compiling file %s of size %d, id: %d", fileList[i].c_str(), size, counter);
_hadError = false;
- mainArchive->addCode(script, kMovieScript, counter);
+ mainArchive->addCode(script, kTestScript, counter);
if (!debugChannelSet(-1, kDebugCompileOnly)) {
if (!_hadError)
- executeScript(kMovieScript, counter);
+ executeScript(kTestScript, counter);
else
debug(">> Skipping execution");
}
diff --git a/engines/director/types.h b/engines/director/types.h
index a3ac33e517..93ee1a69c6 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -51,7 +51,8 @@ enum ScriptType {
kCastScript = 1,
kMovieScript = 2,
kEventScript = 3,
- kMaxScriptType = 3 // Sync with score-loading.cpp:45, array scriptTypes[]
+ kTestScript = 4,
+ kMaxScriptType = 4 // Sync with score-loading.cpp:45, array scriptTypes[]
};
enum ScriptFlag {
Commit: 688ca6b2999eb3e143d87eb5de9ae90a9ec1a3be
https://github.com/scummvm/scummvm/commit/688ca6b2999eb3e143d87eb5de9ae90a9ec1a3be
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Update comment
Changed paths:
engines/director/types.h
diff --git a/engines/director/types.h b/engines/director/types.h
index 93ee1a69c6..bb2a152bed 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -52,7 +52,7 @@ enum ScriptType {
kMovieScript = 2,
kEventScript = 3,
kTestScript = 4,
- kMaxScriptType = 4 // Sync with score-loading.cpp:45, array scriptTypes[]
+ kMaxScriptType = 4 // Sync with cast.cpp:46, array scriptTypes[]
};
enum ScriptFlag {
Commit: 34d8aabc4bb81ac1f8d2685b97d53a4920ec34c2
https://github.com/scummvm/scummvm/commit/34d8aabc4bb81ac1f8d2685b97d53a4920ec34c2
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add DatumType enum
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-funcs.cpp
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-object.h
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.h
engines/director/types.h
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 18bd0bd21a..fab803cedf 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -46,7 +46,6 @@
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
@@ -339,7 +338,7 @@ void Lingo::printSTUBWithArglist(const char *funcname, int nargs, const char *pr
}
void Lingo::convertVOIDtoString(int arg, int nargs) {
- if (_stack[_stack.size() - nargs + arg].type == VOIDSYM) {
+ if (_stack[_stack.size() - nargs + arg].type == VOID) {
if (_stack[_stack.size() - nargs + arg].u.s != NULL)
g_lingo->_stack[_stack.size() - nargs + arg].type = STRING;
else
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index a926583a39..3f413dece7 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -35,7 +35,6 @@
#include "director/lingo/lingo-bytecode.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-the.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 20da9aa978..27170e2193 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -56,7 +56,6 @@
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-the.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index a3883eaba3..2d6056dd9d 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -49,7 +49,6 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index 5f03dd1936..3a70aaa044 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -38,7 +38,6 @@
#include "director/util.h"
#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index d74b2d8139..5329984914 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -32,7 +32,6 @@
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-the.h"
-#include "director/lingo/lingo-gr.h"
#include "director/lingo/xlibs/fileio.h"
#include "director/lingo/xlibs/palxobj.h"
#include "director/lingo/xlibs/flushxobj.h"
diff --git a/engines/director/lingo/lingo-object.h b/engines/director/lingo/lingo-object.h
index 197e9e431f..f2c36387d7 100644
--- a/engines/director/lingo/lingo-object.h
+++ b/engines/director/lingo/lingo-object.h
@@ -23,9 +23,8 @@
#ifndef DIRECTOR_LINGO_OBJECT_H
#define DIRECTOR_LINGO_OBJECT_H
-// FIXME: Basic Lingo types like Datum should probably be in a separate, smaller header
+#include "director/director.h"
#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 5e3cd1d4d6..21ddecabc2 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -37,7 +37,6 @@
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-object.h"
#include "director/lingo/lingo-the.h"
-#include "director/lingo/lingo-gr.h"
namespace Director {
class Sprite;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 5f68c6ec20..71a1dbcbca 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -25,6 +25,7 @@
#include "common/hash-ptr.h"
#include "common/hash-str.h"
+#include "common/str-array.h"
#include "director/types.h"
@@ -44,6 +45,7 @@ struct LingoArchive;
struct LingoV4Bytecode;
struct LingoV4TheEntity;
class AbstractObject;
+class Cast;
class ScriptContext;
class DirectorEngine;
class Frame;
@@ -109,7 +111,7 @@ struct Symbol { /* symbol table entry */
};
struct Datum { /* interpreter stack type */
- int type;
+ DatumType type;
union {
int i; /* INT, ARGC, ARGCNORET */
diff --git a/engines/director/types.h b/engines/director/types.h
index bb2a152bed..b5d6a6c2c9 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -332,6 +332,25 @@ enum FileVersion {
kFileVer1201 = 0x79F
};
+enum DatumType {
+ ARRAY,
+ ARGC,
+ ARGCNORET,
+ CASTREF,
+ CHUNKREF,
+ FIELDREF,
+ FLOAT,
+ INT,
+ OBJECT,
+ PARRAY,
+ POINT,
+ STRING,
+ SYMBOL,
+ VAR,
+ VOID,
+ RECT
+};
+
struct Datum;
struct PCell;
typedef Common::Array<Datum> DatumArray;
Commit: f726a6ed89c47088f219ba7af1beb4ab256a87c7
https://github.com/scummvm/scummvm/commit/f726a6ed89c47088f219ba7af1beb4ab256a87c7
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Rewrite grammar to build AST
Changed paths:
A engines/director/lingo/lingo-ast.cpp
A engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
engines/director/module.mk
diff --git a/engines/director/lingo/lingo-ast.cpp b/engines/director/lingo/lingo-ast.cpp
new file mode 100644
index 0000000000..a81ce4ba74
--- /dev/null
+++ b/engines/director/lingo/lingo-ast.cpp
@@ -0,0 +1,191 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
+#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-object.h"
+
+namespace Director {
+
+/* ScriptNode */
+
+void ScriptNode::compile() {
+ for (uint i = 0; i < nodes->size(); i++) {
+ (*nodes)[i]->compile();
+ }
+}
+
+/* FactoryNode */
+
+void FactoryNode::compile() {
+ g_lingo->_inFactory = true;
+ ScriptContext *mainContext = g_lingo->_assemblyContext;
+ g_lingo->_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
+
+ g_lingo->codeFactory(*name);
+ for (uint i = 0; i < methods->size(); i++) {
+ (*methods)[i]->compile();
+ }
+
+ g_lingo->_inFactory = false;
+ g_lingo->_assemblyContext = mainContext;
+}
+
+/* HandlerNode */
+
+void HandlerNode::compile() {
+ g_lingo->_indef = true;
+ VarTypeHash *mainMethodVars = g_lingo->_methodVars;
+ g_lingo->_methodVars = new VarTypeHash;
+
+ for (VarTypeHash::iterator i = mainMethodVars->begin(); i != mainMethodVars->end(); ++i) {
+ if (i->_value == kVarGlobal || i->_value == kVarProperty)
+ (*g_lingo->_methodVars)[i->_key] = i->_value;
+ }
+ if (g_lingo->_inFactory) {
+ for (DatumHash::iterator i = g_lingo->_assemblyContext->_properties.begin(); i != g_lingo->_assemblyContext->_properties.end(); ++i) {
+ (*g_lingo->_methodVars)[i->_key] = kVarInstance;
+ }
+ }
+
+ for (uint i = 0; i < args->size(); i++) { // TODO: eliminate argstack
+ g_lingo->codeArg((*args)[i]);
+ }
+
+ uint start = g_lingo->_currentAssembly->size(); // TODO: should always be zero
+ for (uint i = 0; i < stmts->size(); i++) {
+ (*stmts)[i]->compile();
+ }
+
+ g_lingo->code1(LC::c_procret);
+ g_lingo->codeDefine(*name, start, args->size());
+
+ g_lingo->clearArgStack();
+ g_lingo->_indef = false;
+ delete g_lingo->_methodVars;
+ g_lingo->_methodVars = mainMethodVars;
+}
+
+/* CmdNode */
+
+void CmdNode::compile() {
+ for (uint i = 0; i < args->size(); i++) {
+ (*args)[i]->compile();
+ }
+ g_lingo->codeCmd(name, args->size());
+}
+
+/* GlobalNode */
+
+void GlobalNode::compile() {
+ for (uint i = 0; i < names->size(); i++) {
+ g_lingo->registerMethodVar(*(*names)[i], kVarGlobal);
+ }
+}
+
+/* PropertyNode */
+
+void PropertyNode::compile() {
+ for (uint i = 0; i < names->size(); i++) {
+ g_lingo->registerMethodVar(*(*names)[i], kVarProperty);
+ }
+}
+
+/* InstanceNode */
+
+void InstanceNode::compile() {
+ for (uint i = 0; i < names->size(); i++) {
+ g_lingo->registerMethodVar(*(*names)[i], kVarInstance);
+ }
+}
+
+/* IntNode */
+
+void IntNode::compile() {
+ g_lingo->code1(LC::c_intpush);
+ g_lingo->codeInt(val);
+}
+
+/* FloatNode */
+
+void FloatNode::compile() {
+ g_lingo->code1(LC::c_floatpush);
+ g_lingo->codeFloat(val);
+}
+
+/* SymbolNode */
+
+void SymbolNode::compile() {
+ g_lingo->code1(LC::c_symbolpush);
+ g_lingo->codeString(val->c_str());
+}
+
+/* StringNode */
+
+void StringNode::compile() {
+ g_lingo->code1(LC::c_stringpush);
+ g_lingo->codeString(val->c_str());
+}
+
+/* FuncNode */
+
+void FuncNode::compile() {
+ for (uint i = 0; i < args->size(); i++) {
+ (*args)[i]->compile();
+ }
+ g_lingo->codeFunc(name, args->size());
+}
+
+/* VarNode */
+
+void VarNode::compile() {
+ if (g_lingo->_builtinConsts.contains(*name)) {
+ g_lingo->code1(LC::c_constpush);
+ } else {
+ g_lingo->code1(LC::c_eval);
+ }
+ g_lingo->codeString(name->c_str());
+}
+
+/* ParensNode */
+
+void ParensNode::compile() {
+ expr->compile();
+}
+
+/* UnaryOpNode */
+
+void UnaryOpNode::compile() {
+ arg->compile();
+ g_lingo->code1(op);
+}
+
+/* BinaryOpNode */
+
+void BinaryOpNode::compile() {
+ a->compile();
+ b->compile();
+ g_lingo->code1(op);
+}
+
+} // End of namespace Director
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
new file mode 100644
index 0000000000..742dcef6eb
--- /dev/null
+++ b/engines/director/lingo/lingo-ast.h
@@ -0,0 +1,300 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef DIRECTOR_LINGO_LINGO_AST_H
+#define DIRECTOR_LINGO_LINGO_AST_H
+
+namespace Director {
+
+struct Node;
+
+typedef Common::Array<Node *> NodeList;
+typedef Common::Array<Common::String *> IDList;
+
+typedef void (*inst)(void);
+
+template <typename T>
+void deleteList(Common::Array<T> *list) {
+ for (uint i = 0; i < list->size(); i++) {
+ delete (*list)[i];
+ }
+ delete list;
+}
+
+enum NodeType {
+ kScriptNode,
+ kFactoryNode,
+ kHandlerNode,
+ kCmdNode,
+ kGlobalNode,
+ kPropertyNode,
+ kInstanceNode,
+ kIntNode,
+ kFloatNode,
+ kSymbolNode,
+ kStringNode,
+ kFuncNode,
+ kVarNode,
+ kParensNode,
+ kUnaryOpNode,
+ kBinaryOpNode
+};
+
+/* Node */
+
+struct Node {
+ NodeType type;
+ bool isExpression;
+ bool isStatement;
+
+ Node(NodeType t) : type(t), isExpression(false), isStatement(false) {}
+ virtual ~Node() = default;
+ virtual void compile() {}
+};
+
+/* ExprNode */
+
+struct ExprNode : Node {
+ ExprNode(NodeType t) : Node(t) {
+ isExpression = true;
+ }
+ virtual ~ExprNode() = default;
+};
+
+/* StmtNode */
+
+struct StmtNode : Node {
+ StmtNode(NodeType t) : Node(t) {
+ isStatement = true;
+ }
+ virtual ~StmtNode() = default;
+};
+
+/* ScriptNode */
+
+struct ScriptNode : Node {
+ NodeList *nodes;
+
+ ScriptNode(NodeList *nodesIn): Node(kScriptNode), nodes(nodesIn) {}
+ virtual ~ScriptNode() {
+ deleteList(nodes);
+ }
+ virtual void compile();
+};
+
+/* FactoryNode */
+
+struct FactoryNode : Node {
+ Common::String *name;
+ NodeList *methods;
+
+ FactoryNode(Common::String *nameIn, NodeList *methodsIn)
+ : Node(kFactoryNode), name(nameIn), methods(methodsIn) {}
+ virtual ~FactoryNode() {
+ delete name;
+ deleteList(methods);
+ }
+ virtual void compile();
+};
+
+/* HandlerNode */
+
+struct HandlerNode : Node {
+ Common::String *name;
+ IDList *args;
+ NodeList *stmts;
+
+ HandlerNode(Common::String *nameIn, IDList *argsIn, NodeList *stmtsIn)
+ : Node(kHandlerNode), name(nameIn), args(argsIn), stmts(stmtsIn) {}
+ virtual ~HandlerNode() {
+ delete name;
+ deleteList(args);
+ deleteList(stmts);
+ }
+ virtual void compile();
+};
+
+/* CmdNode */
+
+struct CmdNode : StmtNode {
+ Common::String *name;
+ NodeList *args;
+
+ CmdNode(Common::String *nameIn, NodeList *argsIn)
+ : StmtNode(kCmdNode), name(nameIn), args(argsIn) {}
+ virtual ~CmdNode() {
+ delete name;
+ deleteList(args);
+ }
+ virtual void compile();
+};
+
+/* GlobalNode */
+
+struct GlobalNode : StmtNode {
+ IDList *names;
+
+ GlobalNode(IDList *namesIn) : StmtNode(kGlobalNode), names(namesIn) {}
+ virtual ~GlobalNode() {
+ delete names;
+ }
+ virtual void compile();
+};
+
+/* PropertyNode */
+
+struct PropertyNode : StmtNode {
+ IDList *names;
+
+ PropertyNode(IDList *namesIn) : StmtNode(kPropertyNode), names(namesIn) {}
+ virtual ~PropertyNode() {
+ delete names;
+ }
+ virtual void compile();
+};
+
+/* InstanceNode */
+
+struct InstanceNode : StmtNode {
+ IDList *names;
+
+ InstanceNode(IDList *namesIn) : StmtNode(kInstanceNode), names(namesIn) {}
+ virtual ~InstanceNode() {
+ delete names;
+ }
+ virtual void compile();
+};
+
+/* IntNode */
+
+struct IntNode : ExprNode {
+ int val;
+
+ IntNode(int valIn) : ExprNode(kIntNode), val(valIn) {}
+ virtual ~IntNode() = default;
+ virtual void compile();
+};
+
+/* FloatNode */
+
+struct FloatNode : ExprNode {
+ double val;
+
+ FloatNode(double valIn) : ExprNode(kFloatNode), val(valIn) {}
+ virtual ~FloatNode() = default;
+ virtual void compile();
+};
+
+/* SymbolNode */
+
+struct SymbolNode : ExprNode {
+ Common::String *val;
+
+ SymbolNode(Common::String *valIn) : ExprNode(kSymbolNode), val(valIn) {}
+ virtual ~SymbolNode() {
+ delete val;
+ }
+ virtual void compile();
+};
+
+/* StringNode */
+
+struct StringNode : ExprNode {
+ Common::String *val;
+
+ StringNode(Common::String *valIn) : ExprNode(kStringNode), val(valIn) {}
+ virtual ~StringNode() {
+ delete val;
+ }
+ virtual void compile();
+};
+
+/* FuncNode */
+
+struct FuncNode : StmtNode {
+ Common::String *name;
+ NodeList *args;
+
+ FuncNode(Common::String *nameIn, NodeList *argsIn)
+ : StmtNode(kFuncNode), name(nameIn), args(argsIn) {}
+ virtual ~FuncNode() {
+ delete name;
+ deleteList(args);
+ }
+ virtual void compile();
+};
+
+/* VarNode */
+
+struct VarNode : ExprNode {
+ Common::String *name;
+
+ VarNode(Common::String *nameIn) : ExprNode(kVarNode), name(nameIn) {}
+ virtual ~VarNode() {
+ delete name;
+ }
+ virtual void compile();
+};
+
+/* ParensNode */
+
+struct ParensNode : ExprNode {
+ Node *expr;
+
+ ParensNode(Node *exprIn) : ExprNode(kParensNode), expr(exprIn) {}
+ virtual ~ParensNode() {
+ delete expr;
+ }
+ virtual void compile();
+};
+
+/* UnaryOpNode */
+
+struct UnaryOpNode : ExprNode {
+ inst op;
+ Node *arg;
+
+ UnaryOpNode(inst opIn, Node *argIn) : ExprNode(kUnaryOpNode), op(opIn), arg(argIn) {}
+ virtual ~UnaryOpNode() {
+ delete arg;
+ }
+ virtual void compile();
+};
+
+/* BinaryOpNode */
+
+struct BinaryOpNode : ExprNode {
+ inst op;
+ Node *a;
+ Node *b;
+
+ BinaryOpNode(inst opIn, Node *aIn, Node *bIn) : ExprNode(kBinaryOpNode), op(opIn), a(aIn), b(bIn) {}
+ virtual ~BinaryOpNode() {
+ delete a;
+ delete b;
+ }
+ virtual void compile();
+};
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 2d6056dd9d..7e9ace6234 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -264,6 +264,17 @@ void Lingo::processIf(int toplabel, int endlabel) {
}
}
+void Lingo::registerMethodVar(const Common::String &name, VarType type) {
+ if (!g_lingo->_methodVars->contains(name)) {
+ (*g_lingo->_methodVars)[name] = type;
+ if (type == kVarProperty || type == kVarInstance) {
+ g_lingo->_assemblyContext->_properties[name] = Datum();
+ } else if (type == kVarGlobal) {
+ g_lingo->varCreate(name, true);
+ }
+ }
+}
+
void Lingo::varCreate(const Common::String &name, bool global, DatumHash *localvars) {
if (localvars == nullptr) {
localvars = _localvars;
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 9ff550f179..11d6da5b0b 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.1. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -45,11 +45,11 @@
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-/* Identify Bison output. */
-#define YYBISON 1
+/* Identify Bison output, and Bison version. */
+#define YYBISON 30706
-/* Bison version. */
-#define YYBISON_VERSION "3.7.1"
+/* Bison version string. */
+#define YYBISON_VERSION "3.7.6"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -77,6 +77,7 @@
#include "director/director.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -111,89 +112,17 @@ static void yyerror(const char *s) {
warning("# %s^ about here", arrow.c_str());
}
-static void checkEnd(Common::String *token, const char *expect, bool required) {
+static void checkEnd(Common::String *token, Common::String *expect, bool required) {
if (required) {
- if (token->compareToIgnoreCase(expect)) {
- Common::String err = Common::String::format("end mismatch. Expected %s but got %s", expect, token->c_str());
+ if (token->compareToIgnoreCase(*expect)) {
+ Common::String err = Common::String::format("end mismatch. Expected %s but got %s", expect->c_str(), token->c_str());
yyerror(err.c_str());
}
}
}
-static void inArgs() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateInArgs; }
-static void inDef() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateInDef; }
-static void inNone() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateNone; }
-static void inLast() { g_lingo->_indef = g_lingo->_indefStore; }
-static void startDef() {
- inArgs();
- g_lingo->_methodVarsStash = g_lingo->_methodVars;
- g_lingo->_methodVars = new VarTypeHash;
-
- for (VarTypeHash::iterator i = g_lingo->_methodVarsStash->begin(); i != g_lingo->_methodVarsStash->end(); ++i) {
- if (i->_value == kVarGlobal || i->_value == kVarProperty)
- (*g_lingo->_methodVars)[i->_key] = i->_value;
- }
- if (g_lingo->_inFactory) {
- for (DatumHash::iterator i = g_lingo->_assemblyContext->_properties.begin(); i != g_lingo->_assemblyContext->_properties.end(); ++i) {
- (*g_lingo->_methodVars)[i->_key] = kVarInstance;
- }
- }
-}
-
-static void endDef() {
- g_lingo->clearArgStack();
- inNone();
-
- delete g_lingo->_methodVars;
- g_lingo->_methodVars = g_lingo->_methodVarsStash;
- g_lingo->_methodVarsStash = nullptr;
-}
-
-static void startRepeat() {
- g_lingo->_repeatStack.push_back(new RepeatBlock);
-}
-
-static void endRepeat(uint exitPos, uint nextPos) {
- RepeatBlock *block = g_lingo->_repeatStack.back();
- g_lingo->_repeatStack.pop_back();
- for (uint i = 0; i < block->exits.size(); i++) {
- uint32 pos = block->exits[i];
- inst exit = 0;
- WRITE_UINT32(&exit, exitPos - (pos - 1));
- (*g_lingo->_currentAssembly)[pos] = exit;
- }
- for (uint i = 0; i < block->nexts.size(); i++) {
- uint32 pos = block->nexts[i];
- inst next = 0;
- WRITE_UINT32(&next, nextPos - (pos - 1));
- (*g_lingo->_currentAssembly)[pos] = next;
- }
- delete block;
-}
-
-static VarType globalCheck() {
- // If in a definition, assume variables are local unless
- // they were declared global with `global varname`
- if (g_lingo->_indef == kStateInDef) {
- return kVarLocal;
- }
- return kVarGlobal;
-}
-
-static void mVar(Common::String *s, VarType type) {
- if (!g_lingo->_methodVars->contains(*s)) {
- (*g_lingo->_methodVars)[*s] = type;
- if (type == kVarProperty || type == kVarInstance) {
- g_lingo->_assemblyContext->_properties[*s] = Datum();
- } else if (type == kVarGlobal) {
- g_lingo->varCreate(*s, true);
- }
- }
-}
-
-
-#line 197 "engines/director/lingo/lingo-gr.cpp"
+#line 126 "engines/director/lingo/lingo-gr.cpp"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -224,171 +153,120 @@ enum yysymbol_kind_t
YYSYMBOL_YYEOF = 0, /* "end of file" */
YYSYMBOL_YYerror = 1, /* error */
YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
- YYSYMBOL_UNARY = 3, /* UNARY */
- YYSYMBOL_VOID = 4, /* VOID */
- YYSYMBOL_VAR = 5, /* VAR */
- YYSYMBOL_POINT = 6, /* POINT */
- YYSYMBOL_RECT = 7, /* RECT */
- YYSYMBOL_ARRAY = 8, /* ARRAY */
- YYSYMBOL_OBJECT = 9, /* OBJECT */
- YYSYMBOL_LEXERROR = 10, /* LEXERROR */
- YYSYMBOL_PARRAY = 11, /* PARRAY */
- YYSYMBOL_CASTREF = 12, /* CASTREF */
- YYSYMBOL_FIELDREF = 13, /* FIELDREF */
- YYSYMBOL_CHUNKREF = 14, /* CHUNKREF */
- YYSYMBOL_INT = 15, /* INT */
- YYSYMBOL_ARGC = 16, /* ARGC */
- YYSYMBOL_ARGCNORET = 17, /* ARGCNORET */
- YYSYMBOL_THEENTITY = 18, /* THEENTITY */
- YYSYMBOL_THEENTITYWITHID = 19, /* THEENTITYWITHID */
- YYSYMBOL_THEMENUITEMENTITY = 20, /* THEMENUITEMENTITY */
- YYSYMBOL_THEMENUITEMSENTITY = 21, /* THEMENUITEMSENTITY */
- YYSYMBOL_FLOAT = 22, /* FLOAT */
- YYSYMBOL_THEFUNC = 23, /* THEFUNC */
- YYSYMBOL_THEFUNCINOF = 24, /* THEFUNCINOF */
- YYSYMBOL_VARID = 25, /* VARID */
- YYSYMBOL_STRING = 26, /* STRING */
- YYSYMBOL_SYMBOL = 27, /* SYMBOL */
- YYSYMBOL_ENDCLAUSE = 28, /* ENDCLAUSE */
- YYSYMBOL_tPLAYACCEL = 29, /* tPLAYACCEL */
- YYSYMBOL_tMETHOD = 30, /* tMETHOD */
- YYSYMBOL_THEOBJECTPROP = 31, /* THEOBJECTPROP */
- YYSYMBOL_tCAST = 32, /* tCAST */
- YYSYMBOL_tFIELD = 33, /* tFIELD */
- YYSYMBOL_tSCRIPT = 34, /* tSCRIPT */
- YYSYMBOL_tWINDOW = 35, /* tWINDOW */
- YYSYMBOL_tDOWN = 36, /* tDOWN */
- YYSYMBOL_tELSE = 37, /* tELSE */
- YYSYMBOL_tELSIF = 38, /* tELSIF */
- YYSYMBOL_tEXIT = 39, /* tEXIT */
- YYSYMBOL_tGLOBAL = 40, /* tGLOBAL */
- YYSYMBOL_tGO = 41, /* tGO */
- YYSYMBOL_tGOLOOP = 42, /* tGOLOOP */
- YYSYMBOL_tIF = 43, /* tIF */
- YYSYMBOL_tIN = 44, /* tIN */
- YYSYMBOL_tINTO = 45, /* tINTO */
- YYSYMBOL_tMACRO = 46, /* tMACRO */
- YYSYMBOL_tMOVIE = 47, /* tMOVIE */
- YYSYMBOL_tNEXT = 48, /* tNEXT */
- YYSYMBOL_tOF = 49, /* tOF */
- YYSYMBOL_tPREVIOUS = 50, /* tPREVIOUS */
- YYSYMBOL_tPUT = 51, /* tPUT */
- YYSYMBOL_tREPEAT = 52, /* tREPEAT */
- YYSYMBOL_tSET = 53, /* tSET */
- YYSYMBOL_tTHEN = 54, /* tTHEN */
- YYSYMBOL_tTO = 55, /* tTO */
- YYSYMBOL_tWHEN = 56, /* tWHEN */
- YYSYMBOL_tWITH = 57, /* tWITH */
- YYSYMBOL_tWHILE = 58, /* tWHILE */
- YYSYMBOL_tFACTORY = 59, /* tFACTORY */
- YYSYMBOL_tOPEN = 60, /* tOPEN */
- YYSYMBOL_tPLAY = 61, /* tPLAY */
- YYSYMBOL_tINSTANCE = 62, /* tINSTANCE */
- YYSYMBOL_tGE = 63, /* tGE */
- YYSYMBOL_tLE = 64, /* tLE */
- YYSYMBOL_tEQ = 65, /* tEQ */
- YYSYMBOL_tNEQ = 66, /* tNEQ */
- YYSYMBOL_tAND = 67, /* tAND */
- YYSYMBOL_tOR = 68, /* tOR */
- YYSYMBOL_tNOT = 69, /* tNOT */
- YYSYMBOL_tMOD = 70, /* tMOD */
- YYSYMBOL_tAFTER = 71, /* tAFTER */
- YYSYMBOL_tBEFORE = 72, /* tBEFORE */
- YYSYMBOL_tCONCAT = 73, /* tCONCAT */
- YYSYMBOL_tCONTAINS = 74, /* tCONTAINS */
- YYSYMBOL_tSTARTS = 75, /* tSTARTS */
- YYSYMBOL_tCHAR = 76, /* tCHAR */
- YYSYMBOL_tITEM = 77, /* tITEM */
- YYSYMBOL_tLINE = 78, /* tLINE */
- YYSYMBOL_tWORD = 79, /* tWORD */
- YYSYMBOL_tSPRITE = 80, /* tSPRITE */
- YYSYMBOL_tINTERSECTS = 81, /* tINTERSECTS */
- YYSYMBOL_tWITHIN = 82, /* tWITHIN */
- YYSYMBOL_tTELL = 83, /* tTELL */
- YYSYMBOL_tPROPERTY = 84, /* tPROPERTY */
- YYSYMBOL_tON = 85, /* tON */
- YYSYMBOL_tENDIF = 86, /* tENDIF */
- YYSYMBOL_tENDREPEAT = 87, /* tENDREPEAT */
- YYSYMBOL_tENDTELL = 88, /* tENDTELL */
- YYSYMBOL_tASSERTERROR = 89, /* tASSERTERROR */
- YYSYMBOL_90_ = 90, /* '<' */
- YYSYMBOL_91_ = 91, /* '>' */
- YYSYMBOL_92_ = 92, /* '&' */
- YYSYMBOL_93_ = 93, /* '+' */
- YYSYMBOL_94_ = 94, /* '-' */
- YYSYMBOL_95_ = 95, /* '*' */
- YYSYMBOL_96_ = 96, /* '/' */
- YYSYMBOL_97_ = 97, /* '%' */
- YYSYMBOL_98_n_ = 98, /* '\n' */
- YYSYMBOL_99_ = 99, /* '(' */
- YYSYMBOL_100_ = 100, /* ')' */
- YYSYMBOL_101_ = 101, /* ',' */
- YYSYMBOL_102_ = 102, /* '[' */
- YYSYMBOL_103_ = 103, /* ']' */
- YYSYMBOL_104_ = 104, /* ':' */
- YYSYMBOL_YYACCEPT = 105, /* $accept */
- YYSYMBOL_program = 106, /* program */
- YYSYMBOL_programline = 107, /* programline */
- YYSYMBOL_ID = 108, /* ID */
- YYSYMBOL_asgn = 109, /* asgn */
- YYSYMBOL_stmtoneliner = 110, /* stmtoneliner */
- YYSYMBOL_stmt = 111, /* stmt */
- YYSYMBOL_112_1 = 112, /* $@1 */
- YYSYMBOL_113_2 = 113, /* $@2 */
- YYSYMBOL_114_3 = 114, /* $@3 */
- YYSYMBOL_115_4 = 115, /* $@4 */
- YYSYMBOL_116_5 = 116, /* $@5 */
- YYSYMBOL_117_6 = 117, /* $@6 */
- YYSYMBOL_118_7 = 118, /* $@7 */
- YYSYMBOL_119_8 = 119, /* $@8 */
- YYSYMBOL_120_9 = 120, /* $@9 */
- YYSYMBOL_startrepeat = 121, /* startrepeat */
- YYSYMBOL_tellstart = 122, /* tellstart */
- YYSYMBOL_asserterrorstart = 123, /* asserterrorstart */
- YYSYMBOL_ifstmt = 124, /* ifstmt */
- YYSYMBOL_elseifstmtlist = 125, /* elseifstmtlist */
- YYSYMBOL_elseifstmt = 126, /* elseifstmt */
- YYSYMBOL_jumpifz = 127, /* jumpifz */
- YYSYMBOL_jump = 128, /* jump */
- YYSYMBOL_varassign = 129, /* varassign */
- YYSYMBOL_if = 130, /* if */
- YYSYMBOL_lbl = 131, /* lbl */
- YYSYMBOL_stmtlist = 132, /* stmtlist */
- YYSYMBOL_stmtlistline = 133, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 134, /* simpleexprnoparens */
- YYSYMBOL_135_10 = 135, /* $@10 */
- YYSYMBOL_simpleexpr = 136, /* simpleexpr */
- YYSYMBOL_expr = 137, /* expr */
- YYSYMBOL_chunkexpr = 138, /* chunkexpr */
- YYSYMBOL_reference = 139, /* reference */
- YYSYMBOL_proc = 140, /* proc */
- YYSYMBOL_141_11 = 141, /* $@11 */
- YYSYMBOL_142_12 = 142, /* $@12 */
- YYSYMBOL_143_13 = 143, /* $@13 */
- YYSYMBOL_144_14 = 144, /* $@14 */
- YYSYMBOL_globallist = 145, /* globallist */
- YYSYMBOL_propertylist = 146, /* propertylist */
- YYSYMBOL_instancelist = 147, /* instancelist */
- YYSYMBOL_gotofunc = 148, /* gotofunc */
- YYSYMBOL_gotomovie = 149, /* gotomovie */
- YYSYMBOL_playfunc = 150, /* playfunc */
- YYSYMBOL_151_15 = 151, /* $@15 */
- YYSYMBOL_defn = 152, /* defn */
- YYSYMBOL_153_16 = 153, /* $@16 */
- YYSYMBOL_154_17 = 154, /* $@17 */
- YYSYMBOL_on = 155, /* on */
- YYSYMBOL_156_18 = 156, /* $@18 */
- YYSYMBOL_argname = 157, /* argname */
- YYSYMBOL_argdef = 158, /* argdef */
- YYSYMBOL_endargdef = 159, /* endargdef */
- YYSYMBOL_argstore = 160, /* argstore */
- YYSYMBOL_arglist = 161, /* arglist */
- YYSYMBOL_nonemptyarglist = 162, /* nonemptyarglist */
- YYSYMBOL_list = 163, /* list */
- YYSYMBOL_valuelist = 164, /* valuelist */
- YYSYMBOL_linearlist = 165, /* linearlist */
- YYSYMBOL_proplist = 166, /* proplist */
- YYSYMBOL_proppair = 167 /* proppair */
+ YYSYMBOL_tUNARY = 3, /* tUNARY */
+ YYSYMBOL_tLEXERROR = 4, /* tLEXERROR */
+ YYSYMBOL_tINT = 5, /* tINT */
+ YYSYMBOL_tTHEENTITY = 6, /* tTHEENTITY */
+ YYSYMBOL_tTHEENTITYWITHID = 7, /* tTHEENTITYWITHID */
+ YYSYMBOL_tTHEMENUITEMENTITY = 8, /* tTHEMENUITEMENTITY */
+ YYSYMBOL_tTHEMENUITEMSENTITY = 9, /* tTHEMENUITEMSENTITY */
+ YYSYMBOL_tFLOAT = 10, /* tFLOAT */
+ YYSYMBOL_tTHEFUNC = 11, /* tTHEFUNC */
+ YYSYMBOL_tTHEFUNCINOF = 12, /* tTHEFUNCINOF */
+ YYSYMBOL_tVARID = 13, /* tVARID */
+ YYSYMBOL_tSTRING = 14, /* tSTRING */
+ YYSYMBOL_tSYMBOL = 15, /* tSYMBOL */
+ YYSYMBOL_tENDCLAUSE = 16, /* tENDCLAUSE */
+ YYSYMBOL_tPLAYACCEL = 17, /* tPLAYACCEL */
+ YYSYMBOL_tTHEOBJECTPROP = 18, /* tTHEOBJECTPROP */
+ YYSYMBOL_tCAST = 19, /* tCAST */
+ YYSYMBOL_tFIELD = 20, /* tFIELD */
+ YYSYMBOL_tSCRIPT = 21, /* tSCRIPT */
+ YYSYMBOL_tWINDOW = 22, /* tWINDOW */
+ YYSYMBOL_tDOWN = 23, /* tDOWN */
+ YYSYMBOL_tELSE = 24, /* tELSE */
+ YYSYMBOL_tELSIF = 25, /* tELSIF */
+ YYSYMBOL_tEXIT = 26, /* tEXIT */
+ YYSYMBOL_tGLOBAL = 27, /* tGLOBAL */
+ YYSYMBOL_tGO = 28, /* tGO */
+ YYSYMBOL_tGOLOOP = 29, /* tGOLOOP */
+ YYSYMBOL_tIF = 30, /* tIF */
+ YYSYMBOL_tIN = 31, /* tIN */
+ YYSYMBOL_tINTO = 32, /* tINTO */
+ YYSYMBOL_tMACRO = 33, /* tMACRO */
+ YYSYMBOL_tMOVIE = 34, /* tMOVIE */
+ YYSYMBOL_tNEXT = 35, /* tNEXT */
+ YYSYMBOL_tOF = 36, /* tOF */
+ YYSYMBOL_tPREVIOUS = 37, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 38, /* tPUT */
+ YYSYMBOL_tREPEAT = 39, /* tREPEAT */
+ YYSYMBOL_tSET = 40, /* tSET */
+ YYSYMBOL_tTHEN = 41, /* tTHEN */
+ YYSYMBOL_tTO = 42, /* tTO */
+ YYSYMBOL_tWHEN = 43, /* tWHEN */
+ YYSYMBOL_tWITH = 44, /* tWITH */
+ YYSYMBOL_tWHILE = 45, /* tWHILE */
+ YYSYMBOL_tFACTORY = 46, /* tFACTORY */
+ YYSYMBOL_tOPEN = 47, /* tOPEN */
+ YYSYMBOL_tPLAY = 48, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 49, /* tINSTANCE */
+ YYSYMBOL_tGE = 50, /* tGE */
+ YYSYMBOL_tLE = 51, /* tLE */
+ YYSYMBOL_tEQ = 52, /* tEQ */
+ YYSYMBOL_tNEQ = 53, /* tNEQ */
+ YYSYMBOL_tAND = 54, /* tAND */
+ YYSYMBOL_tOR = 55, /* tOR */
+ YYSYMBOL_tNOT = 56, /* tNOT */
+ YYSYMBOL_tMOD = 57, /* tMOD */
+ YYSYMBOL_tAFTER = 58, /* tAFTER */
+ YYSYMBOL_tBEFORE = 59, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 60, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 61, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 62, /* tSTARTS */
+ YYSYMBOL_tCHAR = 63, /* tCHAR */
+ YYSYMBOL_tITEM = 64, /* tITEM */
+ YYSYMBOL_tLINE = 65, /* tLINE */
+ YYSYMBOL_tWORD = 66, /* tWORD */
+ YYSYMBOL_tSPRITE = 67, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 68, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 69, /* tWITHIN */
+ YYSYMBOL_tTELL = 70, /* tTELL */
+ YYSYMBOL_tPROPERTY = 71, /* tPROPERTY */
+ YYSYMBOL_tON = 72, /* tON */
+ YYSYMBOL_tMETHOD = 73, /* tMETHOD */
+ YYSYMBOL_tENDIF = 74, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 75, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 76, /* tENDTELL */
+ YYSYMBOL_tASSERTERROR = 77, /* tASSERTERROR */
+ YYSYMBOL_78_ = 78, /* '<' */
+ YYSYMBOL_79_ = 79, /* '>' */
+ YYSYMBOL_80_ = 80, /* '&' */
+ YYSYMBOL_81_ = 81, /* '+' */
+ YYSYMBOL_82_ = 82, /* '-' */
+ YYSYMBOL_83_ = 83, /* '*' */
+ YYSYMBOL_84_ = 84, /* '/' */
+ YYSYMBOL_85_ = 85, /* '%' */
+ YYSYMBOL_86_n_ = 86, /* '\n' */
+ YYSYMBOL_87_ = 87, /* ',' */
+ YYSYMBOL_88_ = 88, /* '(' */
+ YYSYMBOL_89_ = 89, /* ')' */
+ YYSYMBOL_YYACCEPT = 90, /* $accept */
+ YYSYMBOL_script = 91, /* script */
+ YYSYMBOL_scriptpartlist = 92, /* scriptpartlist */
+ YYSYMBOL_scriptpart = 93, /* scriptpart */
+ YYSYMBOL_macro = 94, /* macro */
+ YYSYMBOL_factory = 95, /* factory */
+ YYSYMBOL_method = 96, /* method */
+ YYSYMBOL_methodlist = 97, /* methodlist */
+ YYSYMBOL_nonemptymethodlist = 98, /* nonemptymethodlist */
+ YYSYMBOL_methodlistline = 99, /* methodlistline */
+ YYSYMBOL_handler = 100, /* handler */
+ YYSYMBOL_endargdef = 101, /* endargdef */
+ YYSYMBOL_ID = 102, /* ID */
+ YYSYMBOL_idlist = 103, /* idlist */
+ YYSYMBOL_nonemptyidlist = 104, /* nonemptyidlist */
+ YYSYMBOL_stmt = 105, /* stmt */
+ YYSYMBOL_stmtoneliner = 106, /* stmtoneliner */
+ YYSYMBOL_proc = 107, /* proc */
+ YYSYMBOL_definevars = 108, /* definevars */
+ YYSYMBOL_stmtlist = 109, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 110, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 111, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 112, /* simpleexprnoparens */
+ YYSYMBOL_simpleexpr = 113, /* simpleexpr */
+ YYSYMBOL_expr = 114, /* expr */
+ YYSYMBOL_exprlist = 115, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 116 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -432,6 +310,18 @@ typedef int_least16_t yytype_int16;
typedef short yytype_int16;
#endif
+/* Work around bug in HP-UX 11.23, which defines these macros
+ incorrectly for preprocessor constants. This workaround can likely
+ be removed in 2023, as HPE has promised support for HP-UX 11.23
+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -493,7 +383,7 @@ typedef int yytype_uint16;
/* Stored state numbers (used for stacks). */
-typedef yytype_int16 yy_state_t;
+typedef yytype_uint8 yy_state_t;
/* State numbers in computations. */
typedef int yy_state_fast_t;
@@ -529,9 +419,9 @@ typedef int yy_state_fast_t;
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
#else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
#endif
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
@@ -696,21 +586,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 102
+#define YYFINAL 66
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2006
+#define YYLAST 567
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 105
+#define YYNTOKENS 90
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 63
+#define YYNNTS 27
/* YYNRULES -- Number of rules. */
-#define YYNRULES 197
+#define YYNRULES 113
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 394
+#define YYNSTATES 164
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 344
+#define YYMAXUTOK 332
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -725,15 +615,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 98, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 86, 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, 85, 80, 2,
+ 88, 89, 83, 81, 87, 82, 2, 84, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 78, 2, 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, 97, 92, 2,
- 99, 100, 95, 93, 101, 94, 2, 96, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 104, 2,
- 90, 2, 91, 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, 102, 2, 103, 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,
@@ -757,34 +647,25 @@ static const yytype_int8 yytranslate[] =
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89
+ 75, 76, 77
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 236, 236, 237, 239, 240, 241, 243, 244, 245,
- 246, 247, 249, 256, 260, 271, 278, 281, 288, 291,
- 298, 305, 312, 319, 325, 332, 343, 354, 361, 369,
- 370, 372, 373, 378, 391, 395, 398, 390, 425, 429,
- 432, 424, 459, 466, 472, 458, 502, 510, 513, 514,
- 515, 516, 518, 520, 522, 524, 531, 539, 540, 542,
- 548, 552, 556, 560, 563, 565, 566, 568, 569, 571,
- 574, 577, 581, 585, 586, 587, 588, 589, 597, 603,
- 606, 609, 615, 616, 617, 618, 624, 624, 629, 632,
- 641, 642, 644, 645, 646, 647, 648, 649, 650, 651,
- 652, 653, 654, 655, 656, 657, 658, 659, 660, 661,
- 663, 666, 669, 670, 671, 672, 673, 674, 675, 676,
- 678, 679, 682, 686, 689, 690, 691, 699, 700, 700,
- 701, 701, 702, 702, 703, 706, 709, 715, 715, 720,
- 723, 727, 728, 731, 735, 736, 739, 743, 744, 747,
- 758, 759, 760, 761, 765, 769, 774, 775, 777, 781,
- 785, 789, 789, 819, 819, 825, 826, 826, 836, 844,
- 850, 850, 852, 854, 855, 856, 858, 859, 860, 862,
- 864, 865, 866, 868, 869, 870, 872, 874, 875, 876,
- 877, 879, 880, 882, 883, 885, 889, 893
+ 0, 188, 188, 190, 196, 203, 204, 205, 206, 207,
+ 236, 240, 242, 244, 245, 248, 254, 261, 262, 267,
+ 271, 275, 276, 277, 282, 283, 284, 285, 286, 287,
+ 288, 291, 293, 296, 298, 299, 300, 301, 304, 305,
+ 306, 307, 308, 310, 311, 312, 313, 314, 316, 317,
+ 318, 319, 320, 321, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 334, 335, 338, 342, 349, 351, 352,
+ 355, 356, 359, 360, 361, 364, 365, 369, 375, 382,
+ 383, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 399, 400, 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 423, 424, 427, 431
};
#endif
@@ -801,32 +682,25 @@ yysymbol_name (yysymbol_kind_t yysymbol)
{
static const char *const yy_sname[] =
{
- "end of file", "error", "invalid token", "UNARY", "VOID", "VAR",
- "POINT", "RECT", "ARRAY", "OBJECT", "LEXERROR", "PARRAY", "CASTREF",
- "FIELDREF", "CHUNKREF", "INT", "ARGC", "ARGCNORET", "THEENTITY",
- "THEENTITYWITHID", "THEMENUITEMENTITY", "THEMENUITEMSENTITY", "FLOAT",
- "THEFUNC", "THEFUNCINOF", "VARID", "STRING", "SYMBOL", "ENDCLAUSE",
- "tPLAYACCEL", "tMETHOD", "THEOBJECTPROP", "tCAST", "tFIELD", "tSCRIPT",
- "tWINDOW", "tDOWN", "tELSE", "tELSIF", "tEXIT", "tGLOBAL", "tGO",
- "tGOLOOP", "tIF", "tIN", "tINTO", "tMACRO", "tMOVIE", "tNEXT", "tOF",
- "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH",
- "tWHILE", "tFACTORY", "tOPEN", "tPLAY", "tINSTANCE", "tGE", "tLE", "tEQ",
- "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT",
- "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
- "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tENDIF",
- "tENDREPEAT", "tENDTELL", "tASSERTERROR", "'<'", "'>'", "'&'", "'+'",
- "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "','", "'['", "']'",
- "':'", "$accept", "program", "programline", "ID", "asgn", "stmtoneliner",
- "stmt", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9",
- "startrepeat", "tellstart", "asserterrorstart", "ifstmt",
- "elseifstmtlist", "elseifstmt", "jumpifz", "jump", "varassign", "if",
- "lbl", "stmtlist", "stmtlistline", "simpleexprnoparens", "$@10",
- "simpleexpr", "expr", "chunkexpr", "reference", "proc", "$@11", "$@12",
- "$@13", "$@14", "globallist", "propertylist", "instancelist", "gotofunc",
- "gotomovie", "playfunc", "$@15", "defn", "$@16", "$@17", "on", "$@18",
- "argname", "argdef", "endargdef", "argstore", "arglist",
- "nonemptyarglist", "list", "valuelist", "linearlist", "proplist",
- "proppair", YY_NULLPTR
+ "end of file", "error", "invalid token", "tUNARY", "tLEXERROR", "tINT",
+ "tTHEENTITY", "tTHEENTITYWITHID", "tTHEMENUITEMENTITY",
+ "tTHEMENUITEMSENTITY", "tFLOAT", "tTHEFUNC", "tTHEFUNCINOF", "tVARID",
+ "tSTRING", "tSYMBOL", "tENDCLAUSE", "tPLAYACCEL", "tTHEOBJECTPROP",
+ "tCAST", "tFIELD", "tSCRIPT", "tWINDOW", "tDOWN", "tELSE", "tELSIF",
+ "tEXIT", "tGLOBAL", "tGO", "tGOLOOP", "tIF", "tIN", "tINTO", "tMACRO",
+ "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET",
+ "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN", "tPLAY",
+ "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD",
+ "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM",
+ "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
+ "tPROPERTY", "tON", "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL",
+ "tASSERTERROR", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'",
+ "'\\n'", "','", "'('", "')'", "$accept", "script", "scriptpartlist",
+ "scriptpart", "macro", "factory", "method", "methodlist",
+ "nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
+ "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "definevars",
+ "stmtlist", "nonemptystmtlist", "stmtlistline", "simpleexprnoparens",
+ "simpleexpr", "expr", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -844,19 +718,17 @@ static const yytype_int16 yytoknum[] =
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, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 60, 62, 38, 43, 45, 42, 47, 37, 10, 40,
- 41, 44, 91, 93, 58
+ 325, 326, 327, 328, 329, 330, 331, 332, 60, 62,
+ 38, 43, 45, 42, 47, 37, 10, 44, 40, 41
};
#endif
-#define YYPACT_NINF (-359)
+#define YYPACT_NINF (-140)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-68)
+#define YYTABLE_NINF (-1)
#define yytable_value_is_error(Yyn) \
0
@@ -865,626 +737,245 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 585, -72, -359, -359, -359, -359, -359, -359, -359, -30,
- -359, 1079, -359, -359, -359, -8, 1200, -42, 261, 54,
- 54, 1282, 1161, -359, 1282, -359, -359, -359, 13, -359,
- 1309, -359, -359, -359, -359, 1282, -359, -359, -359, -359,
- -359, -359, 1282, -359, -359, 54, -359, -359, 1282, -359,
- -10, 1282, -359, -359, -359, 1391, 1391, 1391, 1391, 1282,
- -359, -1, -359, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
- 1282, 1282, 1040, -40, -359, -359, 1382, -359, -359, -359,
- -359, 54, -359, 54, 507, 54, -359, -24, 1282, 1282,
- -12, 5, 17, -359, 1739, 1382, -359, 54, 1683, 54,
- 54, 405, -359, 585, 1282, 1786, -359, 1910, 54, -359,
- 54, -17, -359, -359, 1282, -359, -359, -359, -359, -359,
- 1910, 1282, -359, 1431, 1465, 1499, 1533, 1876, -359, -359,
- 1838, -14, -6, -359, -76, 1910, -37, -9, 1, -359,
- 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
- 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, -359, -359,
- 1282, 159, 159, 159, -27, 1282, 1282, 1282, 1725, 63,
- 1282, 1282, 1282, 1282, 1282, 1282, -359, 23, -359, -359,
- -359, 25, -359, -359, -359, -359, -26, 1773, 14, 1282,
- 80, -359, 31, 38, 40, 54, -359, 1910, 1282, 1282,
- 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, -359, 1282,
- 1282, 1282, -359, 1282, 96, -5, 42, -59, -59, -59,
- -59, 267, 267, -359, -38, -59, -59, -59, -59, -38,
- -45, -45, -359, -359, 54, 99, -359, -359, -359, -359,
- -359, -359, 1282, 1282, 1910, 1910, 1910, 1282, 1282, 54,
- 1910, 1910, 1910, 1910, 1910, 1910, 54, 405, 834, 54,
- -359, -359, -359, -359, 772, 54, -359, -359, -359, -359,
- 1567, -359, 1601, -359, 1635, -359, 1669, -359, -359, 1910,
- 1910, 1910, 1910, -14, -6, 41, -359, -359, -359, -359,
- 48, 1282, 1910, 133, -359, 1910, 78, 1282, -359, -359,
- -359, -359, 51, -359, 1282, -359, -359, 652, 719, 1282,
- 1282, 1282, 1282, 1282, -359, 1910, -359, -359, -359, 896,
- 12, -359, 62, 478, 1825, 52, -359, 125, -359, -359,
- -359, -359, -359, 55, 719, -359, -359, -359, -359, 1282,
- 1282, -359, -359, 1282, -359, 24, 54, -359, -359, -359,
- 101, 123, 73, 1910, 1910, -359, 963, 1282, -359, 81,
- -359, 67, -359, 1282, 120, -359, -359, 1910, -359, 54,
- -359, 1910, 1282, 92, 126, -359, 896, -359, 1910, -359,
- 772, 95, -359, -359, -359, -359, 896, -359, -359, 115,
- 896, -359, 117, -359
+ 293, -140, -140, -140, -140, -140, -140, -140, -140, 414,
+ -140, -140, 414, -140, -140, -140, -140, -140, -140, -140,
+ -140, -140, -140, -140, 414, -140, -140, 414, -140, -140,
+ -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+ -140, -140, -140, 414, 414, -140, -140, 16, 293, -140,
+ -140, -140, -140, 153, -66, -140, -140, -140, -140, -140,
+ -62, 414, -60, -140, -140, 414, -140, -140, -140, -140,
+ -140, -140, 223, 223, 223, 223, -51, -140, -140, 448,
+ -140, -49, -140, 414, -45, -63, -44, 223, -140, -140,
+ -140, 435, -53, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, -140, 32, 414, -140, -140, -40, -140, -140,
+ 32, 435, -140, -140, -42, -52, -52, -52, -52, 483,
+ 483, -140, 60, -52, -52, -52, -52, 60, -50, -50,
+ -140, -140, 448, -140, -30, 32, -140, -140, 414, -63,
+ 355, -140, -140, -140, -29, -140, 414, 32, -68, -140,
+ 32, -140, 414, -140
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
-static const yytype_uint8 yydefact[] =
+static const yytype_int8 yydefact[] =
{
- 0, 0, 7, 161, 166, 8, 9, 10, 11, 127,
- 128, 0, 150, 63, 163, 0, 0, 0, 0, 0,
- 0, 0, 0, 132, 0, 130, 170, 54, 0, 2,
- 180, 29, 31, 6, 32, 0, 30, 124, 125, 5,
- 64, 51, 180, 64, 126, 141, 69, 77, 0, 70,
- 0, 0, 72, 71, 81, 8, 9, 10, 11, 0,
- 151, 0, 152, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 187, 89, 90, 92, 153, 120, 76, 155,
- 84, 0, 46, 0, 123, 0, 64, 0, 0, 0,
- 0, 0, 0, 165, 135, 158, 160, 147, 0, 144,
- 0, 0, 1, 0, 180, 181, 140, 60, 173, 162,
- 173, 142, 129, 78, 0, 79, 111, 110, 121, 122,
- 157, 0, 75, 0, 0, 0, 0, 0, 73, 74,
- 0, 72, 71, 188, 89, 191, 0, 190, 189, 193,
- 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 154, 64,
+ 0, 24, 46, 28, 32, 50, 59, 30, 31, 63,
+ 33, 35, 0, 39, 40, 42, 47, 48, 49, 51,
+ 54, 57, 60, 58, 0, 43, 45, 63, 26, 44,
+ 41, 38, 25, 27, 52, 29, 36, 37, 62, 56,
+ 34, 61, 53, 63, 0, 55, 5, 0, 2, 3,
+ 6, 7, 8, 110, 0, 67, 68, 69, 65, 72,
+ 64, 63, 0, 74, 73, 63, 1, 4, 81, 82,
+ 84, 83, 41, 0, 0, 110, 89, 90, 92, 112,
+ 71, 111, 9, 0, 0, 13, 0, 0, 87, 85,
+ 86, 112, 0, 110, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 159, 148, 133, 53,
- 53, 145, 131, 171, 50, 3, 89, 0, 0, 180,
- 0, 172, 174, 0, 0, 141, 80, 156, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
- 0, 0, 186, 0, 0, 89, 0, 102, 103, 100,
- 101, 104, 105, 97, 107, 108, 109, 99, 98, 106,
- 93, 94, 95, 96, 173, 0, 12, 13, 15, 16,
- 17, 18, 0, 0, 60, 22, 20, 0, 0, 0,
- 27, 28, 21, 19, 47, 134, 147, 0, 0, 144,
- 136, 137, 139, 182, 0, 173, 179, 179, 143, 112,
- 0, 114, 0, 116, 0, 118, 0, 82, 83, 196,
- 195, 197, 192, 0, 0, 0, 194, 85, 86, 88,
- 0, 0, 42, 34, 52, 23, 100, 0, 149, 64,
- 68, 64, 65, 146, 0, 61, 175, 0, 0, 0,
- 0, 0, 0, 0, 179, 14, 64, 62, 62, 0,
- 0, 49, 0, 0, 183, 0, 57, 169, 167, 113,
- 115, 117, 119, 0, 0, 43, 35, 39, 61, 0,
- 0, 48, 66, 184, 138, 64, 176, 87, 164, 60,
- 0, 0, 0, 25, 26, 185, 0, 0, 58, 0,
- 177, 168, 44, 0, 0, 33, 64, 60, 55, 0,
- 52, 36, 0, 0, 0, 178, 0, 60, 40, 56,
- 0, 0, 52, 60, 61, 45, 0, 52, 59, 0,
- 0, 37, 0, 41
+ 0, 0, 66, 75, 0, 17, 18, 11, 14, 15,
+ 75, 0, 91, 70, 0, 102, 103, 100, 101, 104,
+ 105, 97, 107, 108, 109, 99, 98, 106, 93, 94,
+ 95, 96, 113, 79, 0, 10, 76, 77, 63, 0,
+ 20, 88, 80, 78, 0, 16, 21, 75, 0, 22,
+ 12, 19, 0, 23
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -359, -359, 102, 0, -359, -100, 6, -359, -359, -359,
- -359, -359, -359, -359, -359, -359, -358, 29, -359, -359,
- -359, -359, -242, -330, -108, -359, -39, -243, -359, 132,
- -359, -21, 250, -44, -359, -359, -359, -359, -359, -359,
- 16, -47, -43, -359, -13, -359, -359, -359, -359, -359,
- -359, -359, -359, -107, -359, -262, -35, -303, -359, -359,
- -359, -359, 2
+ -140, -140, -140, 12, -140, -140, -140, -140, -140, -87,
+ -140, -140, 0, -26, -140, 2, -140, -140, -140, -117,
+ -140, -139, -140, -59, 29, -71, -140
};
/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
+static const yytype_uint8 yydefgoto[] =
{
- -1, 28, 29, 73, 31, 32, 300, 317, 350, 377,
- 318, 351, 383, 316, 349, 370, 319, 257, 101, 34,
- 345, 358, 190, 326, 336, 35, 108, 301, 302, 74,
- 313, 75, 105, 77, 78, 36, 45, 99, 97, 304,
- 112, 182, 178, 37, 79, 38, 42, 39, 81, 43,
- 40, 100, 192, 193, 361, 307, 106, 325, 80, 136,
- 137, 138, 139
+ 0, 47, 48, 49, 50, 51, 116, 117, 118, 119,
+ 52, 158, 76, 59, 60, 144, 55, 56, 57, 145,
+ 146, 147, 77, 78, 79, 80, 81
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_int16 yytable[] =
+static const yytype_uint8 yytable[] =
{
- 30, 184, 294, 194, 110, 308, 33, 109, 352, 96,
- 333, 147, 376, 102, 148, 85, 86, 242, 91, 92,
- 93, 305, 44, 140, 386, 147, 41, 113, 211, 390,
- 115, 166, 147, 153, 154, 155, 156, 157, 243, 114,
- 355, 167, 122, 170, 82, 111, 121, 165, 128, 129,
- 156, 157, 334, 171, 388, 154, 155, 156, 157, 140,
- 172, 356, 357, 158, 327, 328, 212, 339, 169, 188,
- 173, 174, 134, 140, 260, 261, 338, 340, -24, 2,
- 342, 159, 176, 160, 195, 164, 5, 6, 7, 8,
- 209, 348, 213, 196, 140, 287, 288, 177, 210, 181,
- 183, 30, 214, 30, 186, 216, -24, 362, 191, 33,
- 191, 103, 249, 366, 262, -24, -24, 237, 239, 241,
- 234, 2, 283, 284, 256, 374, 259, 290, 5, 6,
- 7, 8, 265, 381, 264, 382, 266, 384, 267, 235,
- 215, 387, 289, 389, 291, 211, 314, 392, 147, 323,
- 341, 148, 344, 346, 263, 347, 363, 299, 306, 364,
- 365, 236, 238, 240, -24, -24, -24, 368, 369, -38,
- 153, 154, 155, 156, 157, 372, -24, 269, 379, 271,
- 380, 273, 385, 275, 2, 277, 278, 116, 117, 118,
- 119, 55, 56, 7, 8, 111, 141, 142, 143, 144,
- 145, 146, 391, 147, 393, 185, 148, 149, 150, 258,
- 337, 268, 303, 298, 285, 0, 286, 0, 0, 0,
- 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
- 0, 0, 0, 0, 191, 64, 65, 66, 67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 0, 0, 0, 0, 0, 177, 30, 30, 181,
- 321, 76, 322, 0, 30, 191, 84, 0, 0, 0,
- 0, 94, 95, 0, 98, 0, 320, 335, 0, 87,
- 88, 89, 0, 0, 0, 107, 2, 0, 329, 330,
- 331, 332, 90, 5, 6, 7, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 359, 30, 30, 120,
- 0, 0, 0, 0, 123, 124, 125, 126, 127, 30,
- 0, 130, 135, 30, 0, 0, 0, 373, 0, 0,
- 141, 142, 143, 144, 30, 0, 0, 147, 168, 0,
- 148, 149, 150, 0, 0, 0, 360, 0, 0, 0,
- 0, 0, 0, 0, 187, 0, 30, 151, 152, 153,
- 154, 155, 156, 157, 0, 0, 0, 0, 0, 375,
- 0, 197, 0, 0, 0, 0, 30, 0, 0, 0,
- 30, 0, 0, 0, 0, 0, 30, 0, 0, 0,
- 30, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233, 0, 0,
- 0, 0, 0, 0, 0, 244, 245, 246, 0, 0,
- 250, 251, 252, 253, 254, 255, 0, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, 0, 5, 6, 7,
- 8, 0, 0, 0, 9, 10, 11, 12, 0, 270,
- 0, 272, 0, 274, 0, 276, 16, 0, 18, 279,
- 280, 281, 0, 282, 0, 21, 22, 23, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -67, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
- 0, 0, 292, 293, 0, 0, 0, 295, 296, 0,
- 0, 0, 0, 2, 0, 0, -67, 3, 0, 0,
- 5, 6, 7, 8, 0, -67, -67, 9, 10, 11,
- 12, 13, 0, 0, 0, 0, 15, 0, 0, 16,
- 17, 18, 0, 0, 19, 0, 0, 0, 21, 22,
- 23, 315, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 161, 0, 324, 0, 0, 0, 0, 0,
- 0, 24, 25, 324, -67, -67, -67, 27, 0, 0,
- 141, 142, 143, 144, 145, 146, -67, 147, 162, 163,
- 148, 149, 150, 0, 0, -4, 1, 0, 0, 353,
- 354, 0, 0, 324, 0, 0, 0, 151, 152, 153,
- 154, 155, 156, 157, 0, 0, 0, 367, 0, 0,
- 2, 0, 0, 371, 3, 4, 0, 5, 6, 7,
- 8, 0, 378, 0, 9, 10, 11, 12, 13, 0,
- 0, 14, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 20, 21, 22, 23, 0, 0,
- 0, 0, -67, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
- 26, 0, 0, 0, 27, 0, 0, 2, 0, 0,
- -67, 3, 0, -4, 5, 6, 7, 8, 0, 0,
- 0, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 15, 0, 0, 16, 17, 18, 0, 0, 19, 0,
- 0, 0, 21, 22, 23, 0, 0, 0, 0, -67,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 24, 25, 0, 0, 0,
- 0, 27, 0, 0, 2, 0, 0, 0, 3, 0,
- -67, 5, 6, 7, 8, 0, 0, 0, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 15, 0, 0,
- 16, 17, 18, 1, 0, 19, 0, 0, 0, 21,
- 22, 23, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 3, 24, 25, 5, 6, 7, 8, 27, -67,
- -67, 9, 10, 11, 12, 13, 0, -67, 0, 0,
- 15, 0, 0, 16, 17, 18, 0, 0, 19, 0,
- 0, 0, 21, 22, 23, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 24, 25, 0, -67, 2,
- 0, 27, 0, 3, 0, 0, 5, 6, 7, 8,
- -67, 0, 0, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 15, 0, 0, 16, 17, 18, 0, 0,
- 19, 0, 0, 0, 21, 22, 23, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 24, 25, 0,
- 0, 2, -67, 27, 0, 3, 0, 0, 5, 6,
- 7, 8, -67, 0, 0, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 15, 0, 0, 16, 17, 18,
- 0, 0, 19, 0, 0, 0, 21, 22, 23, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
- 25, 0, 0, -67, 0, 27, 0, 0, 2, 0,
- 0, 0, 3, 0, -67, 5, 6, 7, 8, 0,
- 0, 0, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 15, 0, 0, 16, 17, 18, 0, 0, 19,
- 0, 0, 0, 21, 22, 23, 0, 0, 0, 0,
+ 53, 63, 54, 150, 92, 100, 153, 100, 101, 58,
+ 114, 153, 61, 88, 89, 90, 66, 64, 161, 162,
+ 82, 153, 124, 115, 62, 83, 85, 58, 106, 107,
+ 108, 109, 110, 109, 110, 84, 123, 93, 111, 86,
+ 160, 113, 120, 58, 65, 1, 149, 151, 53, 2,
+ 54, 3, 4, 5, 6, 7, 152, 157, 8, 9,
+ 67, 58, 155, 10, 11, 58, 13, 14, 15, 16,
+ 17, 18, 19, 0, 20, 21, 22, 23, 0, 25,
+ 26, 27, 0, 112, 0, 0, 28, 29, 30, 31,
+ 32, 33, 0, 0, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 91, 0, 0, 0, 0, 45,
+ 0, 0, 0, 53, 148, 0, 121, 100, 143, 0,
+ 53, 0, 154, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 107, 108, 109, 110, 53, 0, 0, 58, 0,
+ 53, 0, 0, 0, 0, 0, 159, 53, 68, 0,
+ 53, 0, 163, 69, 0, 0, 1, 70, 71, 0,
+ 2, 0, 3, 4, 5, 6, 7, 0, 0, 8,
+ 0, 0, 0, 0, 10, 11, 0, 13, 14, 15,
+ 16, 17, 18, 19, 0, 20, 21, 22, 23, 0,
+ 25, 26, 0, 0, 0, 0, 0, 28, 29, 72,
+ 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 0, 0, 0, 0, 68, 0,
+ 45, 0, 0, 69, 73, 74, 1, 70, 71, 0,
+ 2, 75, 3, 4, 5, 6, 7, 0, 0, 8,
+ 0, 0, 0, 0, 10, 11, 0, 13, 14, 15,
+ 16, 17, 18, 19, 0, 20, 21, 22, 23, 0,
+ 25, 26, 0, 0, 0, 0, 0, 28, 29, 72,
+ 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 0, 0, 0, 0, 0, 0,
+ 45, 0, 0, 0, 73, 74, 1, 0, 0, 0,
+ 2, 87, 3, 4, 5, 6, 7, 0, 0, 8,
+ 9, 0, 0, 0, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 0, 20, 21, 22, 23, 24,
+ 25, 26, 27, 0, 0, 0, 0, 28, 29, 30,
+ 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
+ 45, 156, 2, 0, 3, 4, 5, 6, 7, 46,
+ 0, 8, 9, 0, 0, 0, 10, 11, 0, 13,
+ 14, 15, 16, 17, 18, 19, 0, 20, 21, 22,
+ 23, 0, 25, 26, 27, 0, 0, 0, 0, 28,
+ 29, 30, 31, 32, 33, 0, 0, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 1, 0, 0,
+ 0, 2, 45, 3, 4, 5, 6, 7, 0, 0,
+ 8, 143, 0, 0, 0, 10, 11, 0, 13, 14,
+ 15, 16, 17, 18, 19, 0, 20, 21, 22, 23,
+ 0, 25, 26, 0, 0, 0, 0, 0, 28, 29,
+ 30, 31, 32, 33, 0, 0, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 94, 95, 96, 97, 98,
+ 99, 45, 100, 0, 0, 101, 102, 103, 94, 95,
+ 96, 97, 98, 99, 0, 100, 0, 0, 101, 102,
+ 103, 0, 0, 104, 105, 106, 107, 108, 109, 110,
+ 0, 0, 0, 0, 122, 0, 104, 105, 106, 107,
+ 108, 109, 110, 94, 95, 96, 97, 0, 0, 0,
+ 100, 0, 0, 101, 102, 103, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 24, 25, 0, -67,
- 0, 0, 27, 0, 0, 46, 0, 0, 47, 48,
- 0, -67, 49, 50, 51, 2, 131, 132, 0, 0,
- 0, 54, 55, 56, 57, 58, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 0, 0, 47, 48, 0,
- 0, 49, 50, 51, 2, 52, 53, 0, 0, 63,
- 54, 55, 56, 57, 58, 0, 64, 65, 66, 67,
- 68, 0, 0, 0, 0, 0, 59, 60, 61, 62,
- 0, 0, 0, 69, 70, 0, 0, 0, 0, 71,
- 0, 0, 72, 0, 133, 0, 0, 0, 63, 0,
- 0, 0, 0, 0, 0, 64, 65, 66, 67, 68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 69, 70, 0, 0, 46, 0, 71, 47,
- 48, 72, 0, 49, 50, 51, 2, 52, 53, 0,
- 0, 0, 54, 55, 56, 57, 58, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 59, 0,
- 61, 0, 0, 0, 0, 46, 0, 0, 47, 48,
- 0, 83, 49, 50, 51, 2, 52, 53, 0, 0,
- 63, 54, 55, 56, 57, 58, 0, 64, 65, 66,
- 67, 68, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 69, 70, 0, 0, 0, 0,
- 71, 0, 0, 72, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 64, 65, 66, 67,
- 68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 69, 70, 0, 0, 46, 0, 71,
- 47, 48, 72, 0, 49, 50, 51, 2, 52, 53,
- 0, 0, 0, 54, 55, 56, 57, 58, 0, 0,
- 0, 0, 0, 0, 46, 0, 0, 47, 48, 0,
- 0, 49, 50, 51, 2, 52, 53, 0, 0, 0,
- 54, 55, 56, 57, 58, 0, 0, 0, 0, 0,
- 0, 63, 0, 0, 0, 0, 0, 0, 64, 65,
- 66, 67, 68, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 69, 70, 0, 63, 0,
- 0, 71, 0, 0, 72, 64, 65, 66, 67, 68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 69, 70, 0, 0, 46, 0, 104, 47,
- 48, 72, 0, 49, 50, 51, 2, 52, 53, 0,
- 0, 0, 54, 55, 56, 57, 58, 0, 0, 59,
- 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 141, 142, 143, 144, 145,
- 146, 0, 147, 0, 0, 148, 149, 150, 0, 0,
- 63, 0, 0, 0, 0, 0, 0, 64, 65, 66,
- 67, 68, 151, 152, 153, 154, 155, 156, 157, 0,
- 198, 0, 0, 0, 0, 0, 199, 0, 0, 0,
- 0, 0, 0, 72, 141, 142, 143, 144, 145, 146,
- 0, 147, 0, 0, 148, 149, 150, 0, 0, 0,
- 0, 0, 0, 0, 200, 0, 0, 0, 0, 0,
- 201, 151, 152, 153, 154, 155, 156, 157, 141, 142,
- 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
- 150, 0, 0, 0, 0, 0, 0, 0, 202, 0,
- 0, 0, 0, 0, 203, 151, 152, 153, 154, 155,
- 156, 157, 141, 142, 143, 144, 145, 146, 0, 147,
- 0, 0, 148, 149, 150, 0, 0, 0, 0, 0,
- 0, 0, 204, 0, 0, 0, 0, 0, 205, 151,
- 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
- 145, 146, 0, 147, 0, 0, 148, 149, 150, 0,
- 0, 0, 0, 0, 0, 0, 309, 0, 0, 0,
- 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
- 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
- 148, 149, 150, 0, 0, 0, 0, 0, 0, 0,
- 310, 0, 0, 0, 0, 0, 0, 151, 152, 153,
- 154, 155, 156, 157, 141, 142, 143, 144, 145, 146,
- 0, 147, 0, 0, 148, 149, 150, 0, 0, 0,
- 0, 0, 0, 0, 311, 0, 0, 0, 0, 0,
- 0, 151, 152, 153, 154, 155, 156, 157, 141, 142,
- 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
- 150, 0, 0, 0, 0, 0, 0, 0, 312, 0,
- 0, 0, 0, 0, 0, 151, 152, 153, 154, 155,
- 156, 157, 141, 142, 143, 144, 145, 146, 179, 147,
- 0, 0, 148, 149, 150, 0, 141, 142, 143, 144,
- 145, 146, 0, 147, 0, 0, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
- 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
- 247, 180, 0, 0, 0, 0, 0, 0, 141, 142,
- 248, 144, 145, 146, 0, 147, 175, 0, 148, 149,
- 150, 0, 141, 142, 143, 144, 145, 146, 0, 147,
- 0, 0, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 0, 0, 0, 0, 0, 0, 0, 151,
- 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
- 145, 146, 0, 147, 0, 0, 148, 149, 150, 141,
- 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
- 149, 150, 0, 151, 152, 153, 154, 155, 156, 157,
- 0, 0, 0, 208, 189, 0, 151, 152, 153, 154,
- 155, 156, 157, 0, 0, 0, 0, 189, 141, 142,
- 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
- 150, 141, 142, 143, 144, 145, 146, 0, 147, 0,
- 0, 148, 149, 150, 0, 151, 152, 153, 154, 155,
- 156, 157, 0, 0, 0, 0, 343, 0, 151, 152,
- 153, 154, 155, 156, 157, 0, 0, 0, 208, 141,
- 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
- 149, 150, 0, 0, 0, 0, 0, 206, 207, 0,
- 0, 0, 0, 0, 0, 0, 151, 152, 153, 154,
- 155, 156, 157, 141, 142, 143, 144, 145, 146, 0,
- 147, 0, 0, 148, 149, 150, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 151, 152, 153, 154, 155, 156, 157
+ 0, 104, 105, 106, 107, 108, 109, 110
};
static const yytype_int16 yycheck[] =
{
- 0, 101, 244, 110, 43, 267, 0, 42, 338, 22,
- 313, 70, 370, 0, 73, 57, 58, 44, 18, 19,
- 20, 264, 52, 99, 382, 70, 98, 48, 104, 387,
- 51, 55, 70, 92, 93, 94, 95, 96, 65, 49,
- 343, 65, 63, 55, 52, 45, 47, 86, 69, 70,
- 95, 96, 314, 65, 384, 93, 94, 95, 96, 99,
- 55, 37, 38, 76, 307, 308, 103, 55, 89, 104,
- 65, 54, 72, 99, 100, 101, 319, 65, 0, 25,
- 323, 81, 95, 83, 101, 85, 32, 33, 34, 35,
- 104, 334, 101, 114, 99, 100, 101, 97, 104, 99,
- 100, 101, 101, 103, 104, 140, 28, 349, 108, 103,
- 110, 98, 49, 356, 100, 37, 38, 161, 162, 163,
- 159, 25, 26, 27, 101, 367, 101, 234, 32, 33,
- 34, 35, 101, 376, 54, 377, 98, 380, 98, 160,
- 140, 383, 100, 386, 45, 104, 98, 390, 70, 98,
- 88, 73, 100, 28, 189, 100, 55, 257, 265, 36,
- 87, 161, 162, 163, 86, 87, 88, 86, 101, 36,
- 92, 93, 94, 95, 96, 55, 98, 198, 86, 200,
- 54, 202, 87, 204, 25, 206, 207, 55, 56, 57,
- 58, 32, 33, 34, 35, 195, 63, 64, 65, 66,
- 67, 68, 87, 70, 87, 103, 73, 74, 75, 180,
- 318, 195, 259, 256, 214, -1, 214, -1, -1, -1,
- -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
- -1, -1, -1, -1, 234, 76, 77, 78, 79, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 249,
- -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
- 299, 11, 301, -1, 264, 265, 16, -1, -1, -1,
- -1, 21, 22, -1, 24, -1, 297, 316, -1, 18,
- 19, 20, -1, -1, -1, 35, 25, -1, 309, 310,
- 311, 312, 31, 32, 33, 34, 35, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 345, 307, 308, 59,
- -1, -1, -1, -1, 64, 65, 66, 67, 68, 319,
- -1, 71, 72, 323, -1, -1, -1, 366, -1, -1,
- 63, 64, 65, 66, 334, -1, -1, 70, 88, -1,
- 73, 74, 75, -1, -1, -1, 346, -1, -1, -1,
- -1, -1, -1, -1, 104, -1, 356, 90, 91, 92,
- 93, 94, 95, 96, -1, -1, -1, -1, -1, 369,
- -1, 121, -1, -1, -1, -1, 376, -1, -1, -1,
- 380, -1, -1, -1, -1, -1, 386, -1, -1, -1,
- 390, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, -1, -1,
- -1, -1, -1, -1, -1, 165, 166, 167, -1, -1,
- 170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
- 25, -1, -1, -1, 29, -1, -1, 32, 33, 34,
- 35, -1, -1, -1, 39, 40, 41, 42, -1, 199,
- -1, 201, -1, 203, -1, 205, 51, -1, 53, 209,
- 210, 211, -1, 213, -1, 60, 61, 62, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 0, 1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- -1, -1, 242, 243, -1, -1, -1, 247, 248, -1,
- -1, -1, -1, 25, -1, -1, 28, 29, -1, -1,
- 32, 33, 34, 35, -1, 37, 38, 39, 40, 41,
- 42, 43, -1, -1, -1, -1, 48, -1, -1, 51,
- 52, 53, -1, -1, 56, -1, -1, -1, 60, 61,
- 62, 291, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 45, -1, 304, -1, -1, -1, -1, -1,
- -1, 83, 84, 313, 86, 87, 88, 89, -1, -1,
- 63, 64, 65, 66, 67, 68, 98, 70, 71, 72,
- 73, 74, 75, -1, -1, 0, 1, -1, -1, 339,
- 340, -1, -1, 343, -1, -1, -1, 90, 91, 92,
- 93, 94, 95, 96, -1, -1, -1, 357, -1, -1,
- 25, -1, -1, 363, 29, 30, -1, 32, 33, 34,
- 35, -1, 372, -1, 39, 40, 41, 42, 43, -1,
- -1, 46, -1, 48, -1, -1, 51, 52, 53, -1,
- -1, 56, -1, -1, 59, 60, 61, 62, -1, -1,
- -1, -1, 0, 1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 83, 84,
- 85, -1, -1, -1, 89, -1, -1, 25, -1, -1,
- 28, 29, -1, 98, 32, 33, 34, 35, -1, -1,
- -1, 39, 40, 41, 42, 43, -1, -1, -1, -1,
- 48, -1, -1, 51, 52, 53, -1, -1, 56, -1,
- -1, -1, 60, 61, 62, -1, -1, -1, -1, 0,
- 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 83, 84, -1, -1, -1,
- -1, 89, -1, -1, 25, -1, -1, -1, 29, -1,
- 98, 32, 33, 34, 35, -1, -1, -1, 39, 40,
- 41, 42, 43, -1, -1, -1, -1, 48, -1, -1,
- 51, 52, 53, 1, -1, 56, -1, -1, -1, 60,
- 61, 62, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 25, -1, -1,
- -1, 29, 83, 84, 32, 33, 34, 35, 89, 37,
- 38, 39, 40, 41, 42, 43, -1, 98, -1, -1,
- 48, -1, -1, 51, 52, 53, -1, -1, 56, -1,
- -1, -1, 60, 61, 62, 1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 83, 84, -1, 86, 25,
- -1, 89, -1, 29, -1, -1, 32, 33, 34, 35,
- 98, -1, -1, 39, 40, 41, 42, 43, -1, -1,
- -1, -1, 48, -1, -1, 51, 52, 53, -1, -1,
- 56, -1, -1, -1, 60, 61, 62, 1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 83, 84, -1,
- -1, 25, 88, 89, -1, 29, -1, -1, 32, 33,
- 34, 35, 98, -1, -1, 39, 40, 41, 42, 43,
- -1, -1, -1, -1, 48, -1, -1, 51, 52, 53,
- -1, -1, 56, -1, -1, -1, 60, 61, 62, -1,
- -1, -1, -1, -1, 1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
- 84, -1, -1, 87, -1, 89, -1, -1, 25, -1,
- -1, -1, 29, -1, 98, 32, 33, 34, 35, -1,
- -1, -1, 39, 40, 41, 42, 43, -1, -1, -1,
- -1, 48, -1, -1, 51, 52, 53, -1, -1, 56,
- -1, -1, -1, 60, 61, 62, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 83, 84, -1, 86,
- -1, -1, 89, -1, -1, 15, -1, -1, 18, 19,
- -1, 98, 22, 23, 24, 25, 26, 27, -1, -1,
- -1, 31, 32, 33, 34, 35, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 15, -1, -1, 18, 19, -1,
- -1, 22, 23, 24, 25, 26, 27, -1, -1, 69,
- 31, 32, 33, 34, 35, -1, 76, 77, 78, 79,
- 80, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- -1, -1, -1, 93, 94, -1, -1, -1, -1, 99,
- -1, -1, 102, -1, 104, -1, -1, -1, 69, -1,
- -1, -1, -1, -1, -1, 76, 77, 78, 79, 80,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, 94, -1, -1, 15, -1, 99, 18,
- 19, 102, -1, 22, 23, 24, 25, 26, 27, -1,
- -1, -1, 31, 32, 33, 34, 35, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 47, -1,
- 49, -1, -1, -1, -1, 15, -1, -1, 18, 19,
- -1, 21, 22, 23, 24, 25, 26, 27, -1, -1,
- 69, 31, 32, 33, 34, 35, -1, 76, 77, 78,
- 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
- 99, -1, -1, 102, -1, -1, -1, -1, -1, 69,
- -1, -1, -1, -1, -1, -1, 76, 77, 78, 79,
- 80, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, 94, -1, -1, 15, -1, 99,
- 18, 19, 102, -1, 22, 23, 24, 25, 26, 27,
- -1, -1, -1, 31, 32, 33, 34, 35, -1, -1,
- -1, -1, -1, -1, 15, -1, -1, 18, 19, -1,
- -1, 22, 23, 24, 25, 26, 27, -1, -1, -1,
- 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
- -1, 69, -1, -1, -1, -1, -1, -1, 76, 77,
- 78, 79, 80, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, -1, 69, -1,
- -1, 99, -1, -1, 102, 76, 77, 78, 79, 80,
+ 0, 27, 0, 120, 75, 57, 145, 57, 60, 9,
+ 73, 150, 12, 72, 73, 74, 0, 43, 86, 87,
+ 86, 160, 93, 86, 24, 87, 86, 27, 80, 81,
+ 82, 83, 84, 83, 84, 61, 89, 88, 87, 65,
+ 157, 86, 86, 43, 44, 13, 86, 89, 48, 17,
+ 48, 19, 20, 21, 22, 23, 86, 86, 26, 27,
+ 48, 61, 149, 31, 32, 65, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, 83, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 75, -1, -1, -1, -1, 77,
+ -1, -1, -1, 113, 114, -1, 87, 57, 86, -1,
+ 120, -1, 148, 94, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 81, 82, 83, 84, 145, -1, -1, 148, -1,
+ 150, -1, -1, -1, -1, -1, 156, 157, 5, -1,
+ 160, -1, 162, 10, -1, -1, 13, 14, 15, -1,
+ 17, -1, 19, 20, 21, 22, 23, -1, -1, 26,
+ -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, 5, -1,
+ 77, -1, -1, 10, 81, 82, 13, 14, 15, -1,
+ 17, 88, 19, 20, 21, 22, 23, -1, -1, 26,
+ -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, 81, 82, 13, -1, -1, -1,
+ 17, 88, 19, 20, 21, 22, 23, -1, -1, 26,
+ 27, -1, -1, -1, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, -1, -1, 13, -1,
+ 77, 16, 17, -1, 19, 20, 21, 22, 23, 86,
+ -1, 26, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 13, -1, -1,
+ -1, 17, 77, 19, 20, 21, 22, 23, -1, -1,
+ 26, 86, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 50, 51, 52, 53, 54,
+ 55, 77, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
+ 82, 83, 84, 50, 51, 52, 53, -1, -1, -1,
+ 57, -1, -1, 60, 61, 62, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, 94, -1, -1, 15, -1, 99, 18,
- 19, 102, -1, 22, 23, 24, 25, 26, 27, -1,
- -1, -1, 31, 32, 33, 34, 35, -1, -1, 47,
- -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 63, 64, 65, 66, 67,
- 68, -1, 70, -1, -1, 73, 74, 75, -1, -1,
- 69, -1, -1, -1, -1, -1, -1, 76, 77, 78,
- 79, 80, 90, 91, 92, 93, 94, 95, 96, -1,
- 49, -1, -1, -1, -1, -1, 55, -1, -1, -1,
- -1, -1, -1, 102, 63, 64, 65, 66, 67, 68,
- -1, 70, -1, -1, 73, 74, 75, -1, -1, -1,
- -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
- 55, 90, 91, 92, 93, 94, 95, 96, 63, 64,
- 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
- 75, -1, -1, -1, -1, -1, -1, -1, 49, -1,
- -1, -1, -1, -1, 55, 90, 91, 92, 93, 94,
- 95, 96, 63, 64, 65, 66, 67, 68, -1, 70,
- -1, -1, 73, 74, 75, -1, -1, -1, -1, -1,
- -1, -1, 49, -1, -1, -1, -1, -1, 55, 90,
- 91, 92, 93, 94, 95, 96, 63, 64, 65, 66,
- 67, 68, -1, 70, -1, -1, 73, 74, 75, -1,
- -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
- -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
- 63, 64, 65, 66, 67, 68, -1, 70, -1, -1,
- 73, 74, 75, -1, -1, -1, -1, -1, -1, -1,
- 49, -1, -1, -1, -1, -1, -1, 90, 91, 92,
- 93, 94, 95, 96, 63, 64, 65, 66, 67, 68,
- -1, 70, -1, -1, 73, 74, 75, -1, -1, -1,
- -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
- -1, 90, 91, 92, 93, 94, 95, 96, 63, 64,
- 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
- 75, -1, -1, -1, -1, -1, -1, -1, 49, -1,
- -1, -1, -1, -1, -1, 90, 91, 92, 93, 94,
- 95, 96, 63, 64, 65, 66, 67, 68, 55, 70,
- -1, -1, 73, 74, 75, -1, 63, 64, 65, 66,
- 67, 68, -1, 70, -1, -1, 73, 74, 75, 90,
- 91, 92, 93, 94, 95, 96, -1, -1, -1, -1,
- -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
- 55, 98, -1, -1, -1, -1, -1, -1, 63, 64,
- 65, 66, 67, 68, -1, 70, 57, -1, 73, 74,
- 75, -1, 63, 64, 65, 66, 67, 68, -1, 70,
- -1, -1, 73, 74, 75, 90, 91, 92, 93, 94,
- 95, 96, -1, -1, -1, -1, -1, -1, -1, 90,
- 91, 92, 93, 94, 95, 96, 63, 64, 65, 66,
- 67, 68, -1, 70, -1, -1, 73, 74, 75, 63,
- 64, 65, 66, 67, 68, -1, 70, -1, -1, 73,
- 74, 75, -1, 90, 91, 92, 93, 94, 95, 96,
- -1, -1, -1, 100, 101, -1, 90, 91, 92, 93,
- 94, 95, 96, -1, -1, -1, -1, 101, 63, 64,
- 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
- 75, 63, 64, 65, 66, 67, 68, -1, 70, -1,
- -1, 73, 74, 75, -1, 90, 91, 92, 93, 94,
- 95, 96, -1, -1, -1, -1, 101, -1, 90, 91,
- 92, 93, 94, 95, 96, -1, -1, -1, 100, 63,
- 64, 65, 66, 67, 68, -1, 70, -1, -1, 73,
- 74, 75, -1, -1, -1, -1, -1, 81, 82, -1,
- -1, -1, -1, -1, -1, -1, 90, 91, 92, 93,
- 94, 95, 96, 63, 64, 65, 66, 67, 68, -1,
- 70, -1, -1, 73, 74, 75, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 90, 91, 92, 93, 94, 95, 96
+ -1, 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
+static const yytype_int8 yystos[] =
{
- 0, 1, 25, 29, 30, 32, 33, 34, 35, 39,
- 40, 41, 42, 43, 46, 48, 51, 52, 53, 56,
- 59, 60, 61, 62, 83, 84, 85, 89, 106, 107,
- 108, 109, 110, 111, 124, 130, 140, 148, 150, 152,
- 155, 98, 151, 154, 52, 141, 15, 18, 19, 22,
- 23, 24, 26, 27, 31, 32, 33, 34, 35, 47,
- 48, 49, 50, 69, 76, 77, 78, 79, 80, 93,
- 94, 99, 102, 108, 134, 136, 137, 138, 139, 149,
- 163, 153, 52, 21, 137, 57, 58, 18, 19, 20,
- 31, 108, 108, 108, 137, 137, 149, 143, 137, 142,
- 156, 123, 0, 98, 99, 137, 161, 137, 131, 161,
- 131, 108, 145, 136, 49, 136, 134, 134, 134, 134,
- 137, 47, 136, 137, 137, 137, 137, 137, 136, 136,
- 137, 26, 27, 104, 108, 137, 164, 165, 166, 167,
- 99, 63, 64, 65, 66, 67, 68, 70, 73, 74,
- 75, 90, 91, 92, 93, 94, 95, 96, 149, 108,
- 108, 45, 71, 72, 108, 131, 55, 65, 137, 136,
- 55, 65, 55, 65, 54, 57, 149, 108, 147, 55,
- 98, 108, 146, 108, 110, 107, 108, 137, 161, 101,
- 127, 108, 157, 158, 158, 101, 136, 137, 49, 55,
- 49, 55, 49, 55, 49, 55, 81, 82, 100, 104,
- 104, 104, 103, 101, 101, 108, 161, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 131, 136, 108, 138, 108, 138,
- 108, 138, 44, 65, 137, 137, 137, 55, 65, 49,
- 137, 137, 137, 137, 137, 137, 101, 122, 122, 101,
- 100, 101, 100, 161, 54, 101, 98, 98, 145, 136,
- 137, 136, 137, 136, 137, 136, 137, 136, 136, 137,
- 137, 137, 137, 26, 27, 108, 167, 100, 101, 100,
- 158, 45, 137, 137, 127, 137, 137, 108, 147, 110,
- 111, 132, 133, 146, 144, 132, 158, 160, 160, 49,
- 49, 49, 49, 135, 98, 137, 118, 112, 115, 121,
- 136, 131, 131, 98, 137, 162, 128, 132, 132, 136,
- 136, 136, 136, 162, 160, 131, 129, 129, 132, 55,
- 65, 88, 132, 101, 100, 125, 28, 100, 132, 119,
- 113, 116, 128, 137, 137, 162, 37, 38, 126, 131,
- 108, 159, 127, 55, 36, 87, 132, 137, 86, 101,
- 120, 137, 55, 131, 127, 108, 121, 114, 137, 86,
- 54, 132, 127, 117, 132, 87, 121, 127, 128, 132,
- 121, 87, 132, 87
+ 0, 13, 17, 19, 20, 21, 22, 23, 26, 27,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 42, 43, 44, 45, 46, 47, 48, 49, 54, 55,
+ 56, 57, 58, 59, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 77, 86, 91, 92, 93,
+ 94, 95, 100, 102, 105, 106, 107, 108, 102, 103,
+ 104, 102, 102, 103, 103, 102, 0, 93, 5, 10,
+ 14, 15, 56, 81, 82, 88, 102, 112, 113, 114,
+ 115, 116, 86, 87, 103, 86, 103, 88, 113, 113,
+ 113, 114, 115, 88, 50, 51, 52, 53, 54, 55,
+ 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
+ 84, 87, 102, 86, 73, 86, 96, 97, 98, 99,
+ 86, 114, 89, 89, 115, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 86, 105, 109, 110, 111, 102, 86,
+ 109, 89, 86, 111, 103, 99, 16, 86, 101, 102,
+ 109, 86, 87, 102
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
+static const yytype_int8 yyr1[] =
{
- 0, 105, 106, 106, 107, 107, 107, 108, 108, 108,
- 108, 108, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 110,
- 110, 111, 111, 111, 112, 113, 114, 111, 115, 116,
- 117, 111, 118, 119, 120, 111, 111, 111, 111, 111,
- 111, 111, 121, 122, 123, 124, 124, 125, 125, 126,
- 127, 128, 129, 130, 131, 132, 132, 133, 133, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 135, 134, 134, 134,
- 136, 136, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 139, 139, 139, 140, 140, 140, 140, 140, 141, 140,
- 142, 140, 143, 140, 140, 140, 140, 144, 140, 140,
- 140, 145, 145, 145, 146, 146, 146, 147, 147, 147,
- 148, 148, 148, 148, 148, 148, 149, 149, 150, 150,
- 150, 151, 150, 153, 152, 152, 154, 152, 152, 152,
- 156, 155, 157, 158, 158, 158, 159, 159, 159, 160,
- 161, 161, 161, 162, 162, 162, 163, 164, 164, 164,
- 164, 165, 165, 166, 166, 167, 167, 167
+ 0, 90, 91, 92, 92, 93, 93, 93, 93, 93,
+ 94, 95, 96, 97, 97, 98, 98, 99, 99, 100,
+ 100, 101, 101, 101, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 102, 102, 103, 103, 104, 104, 105, 106, 106,
+ 107, 107, 108, 108, 108, 109, 109, 110, 110, 111,
+ 111, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+ 115, 115, 116, 116
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_int8 yyr2[] =
{
- 0, 2, 1, 3, 0, 1, 1, 1, 1, 1,
- 1, 1, 4, 4, 6, 4, 4, 4, 4, 4,
- 4, 4, 4, 5, 5, 8, 8, 4, 4, 1,
- 1, 1, 1, 9, 0, 0, 0, 15, 0, 0,
- 0, 16, 0, 0, 0, 13, 2, 4, 7, 6,
- 3, 2, 0, 0, 0, 9, 11, 0, 2, 6,
- 0, 0, 0, 1, 0, 1, 3, 0, 1, 1,
- 1, 1, 1, 2, 2, 2, 1, 1, 2, 2,
- 3, 1, 4, 4, 1, 4, 0, 7, 4, 1,
+ 0, 2, 1, 1, 2, 1, 1, 1, 1, 2,
+ 5, 4, 5, 0, 1, 1, 3, 1, 1, 8,
+ 5, 0, 1, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 1, 1, 3, 1, 1, 1,
+ 4, 2, 2, 2, 2, 0, 1, 1, 2, 1,
+ 2, 1, 1, 1, 1, 2, 2, 2, 4, 1,
1, 3, 1, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 2, 4, 6, 4, 6, 4, 6, 4, 6,
- 1, 2, 2, 2, 1, 1, 2, 1, 0, 3,
- 0, 3, 0, 3, 4, 2, 4, 0, 7, 4,
- 2, 0, 1, 3, 0, 1, 3, 0, 1, 3,
- 1, 2, 2, 2, 3, 2, 3, 2, 2, 3,
- 2, 0, 3, 0, 8, 2, 0, 7, 8, 6,
- 0, 3, 1, 0, 1, 3, 0, 1, 3, 0,
- 0, 1, 3, 1, 2, 3, 3, 0, 1, 1,
- 1, 1, 3, 1, 3, 3, 3, 3
+ 0, 1, 1, 3
};
@@ -1563,7 +1054,7 @@ yy_symbol_value_print (FILE *yyo,
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
FILE *yyoutput = yyo;
- YYUSE (yyoutput);
+ YY_USE (yyoutput);
if (!yyvaluep)
return;
# ifdef YYPRINT
@@ -1571,7 +1062,7 @@ yy_symbol_value_print (FILE *yyo,
YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yykind);
+ YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
@@ -1747,7 +1238,7 @@ static void
yydestruct (const char *yymsg,
yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{
- YYUSE (yyvaluep);
+ YY_USE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
@@ -1755,64 +1246,52 @@ yydestruct (const char *yymsg,
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
switch (yykind)
{
- case YYSYMBOL_THEFUNC: /* THEFUNC */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1762 "engines/director/lingo/lingo-gr.cpp"
+#line 1253 "engines/director/lingo/lingo-gr.cpp"
break;
- case YYSYMBOL_THEFUNCINOF: /* THEFUNCINOF */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1768 "engines/director/lingo/lingo-gr.cpp"
+#line 1259 "engines/director/lingo/lingo-gr.cpp"
break;
- case YYSYMBOL_VARID: /* VARID */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tVARID: /* tVARID */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1774 "engines/director/lingo/lingo-gr.cpp"
+#line 1265 "engines/director/lingo/lingo-gr.cpp"
break;
- case YYSYMBOL_STRING: /* STRING */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tSTRING: /* tSTRING */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1780 "engines/director/lingo/lingo-gr.cpp"
+#line 1271 "engines/director/lingo/lingo-gr.cpp"
break;
- case YYSYMBOL_SYMBOL: /* SYMBOL */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tSYMBOL: /* tSYMBOL */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1786 "engines/director/lingo/lingo-gr.cpp"
+#line 1277 "engines/director/lingo/lingo-gr.cpp"
break;
- case YYSYMBOL_ENDCLAUSE: /* ENDCLAUSE */
-#line 232 "engines/director/lingo/lingo-gr.y"
+ case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1792 "engines/director/lingo/lingo-gr.cpp"
+#line 1283 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 232 "engines/director/lingo/lingo-gr.y"
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1798 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case YYSYMBOL_tMETHOD: /* tMETHOD */
-#line 232 "engines/director/lingo/lingo-gr.y"
- { delete ((*yyvaluep).s); }
-#line 1804 "engines/director/lingo/lingo-gr.cpp"
+#line 1289 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 232 "engines/director/lingo/lingo-gr.y"
- { delete ((*yyvaluep).s); }
-#line 1810 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case YYSYMBOL_on: /* on */
-#line 232 "engines/director/lingo/lingo-gr.y"
+#line 182 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1816 "engines/director/lingo/lingo-gr.cpp"
+#line 1295 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2077,1381 +1556,625 @@ yyreduce:
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 8: /* ID: tCAST */
-#line 244 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("cast"); }
-#line 2084 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 9: /* ID: tFIELD */
-#line 245 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("field"); }
-#line 2090 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 10: /* ID: tSCRIPT */
-#line 246 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("script"); }
-#line 2096 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 11: /* ID: tWINDOW */
-#line 247 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("window"); }
-#line 2102 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 12: /* asgn: tPUT expr tINTO ID */
-#line 249 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[0].s)->c_str());
- mVar((yyvsp[0].s), globalCheck());
- g_lingo->code1(LC::c_assign);
- (yyval.code) = (yyvsp[-2].code);
- delete (yyvsp[0].s); }
-#line 2114 "engines/director/lingo/lingo-gr.cpp"
+ case 2: /* script: scriptpartlist */
+#line 188 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
+#line 1563 "engines/director/lingo/lingo-gr.cpp"
break;
- case 13: /* asgn: tPUT expr tINTO chunkexpr */
-#line 256 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_assign);
- (yyval.code) = (yyvsp[-2].code); }
-#line 2122 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 14: /* asgn: tPUT THEMENUITEMSENTITY ID simpleexpr tINTO expr */
-#line 260 "engines/director/lingo/lingo-gr.y"
+ case 3: /* scriptpartlist: scriptpart */
+#line 190 "engines/director/lingo/lingo-gr.y"
{
- if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
+ NodeList *list = new NodeList;
+ if ((yyvsp[0].node)) {
+ list->push_back((yyvsp[0].node));
}
-
- g_lingo->code1(LC::c_themenuentitypush);
- g_lingo->codeInt((yyvsp[-4].e)[0]);
- g_lingo->codeInt((yyvsp[-4].e)[1]);
- g_lingo->code1(LC::c_assign);
- (yyval.code) = (yyvsp[0].code); }
-#line 2138 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 15: /* asgn: tPUT expr tAFTER ID */
-#line 271 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[0].s)->c_str());
- mVar((yyvsp[0].s), globalCheck());
- g_lingo->code1(LC::c_putafter);
- (yyval.code) = (yyvsp[-2].code);
- delete (yyvsp[0].s); }
-#line 2150 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 16: /* asgn: tPUT expr tAFTER chunkexpr */
-#line 278 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_putafter);
- (yyval.code) = (yyvsp[-2].code); }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 17: /* asgn: tPUT expr tBEFORE ID */
-#line 281 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[0].s)->c_str());
- mVar((yyvsp[0].s), globalCheck());
- g_lingo->code1(LC::c_putbefore);
- (yyval.code) = (yyvsp[-2].code);
- delete (yyvsp[0].s); }
-#line 2170 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 18: /* asgn: tPUT expr tBEFORE chunkexpr */
-#line 288 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_putbefore);
- (yyval.code) = (yyvsp[-2].code); }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 19: /* asgn: tSET ID tEQ expr */
-#line 291 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- mVar((yyvsp[-2].s), globalCheck());
- g_lingo->code1(LC::c_assign);
- (yyval.code) = (yyvsp[0].code);
- delete (yyvsp[-2].s); }
-#line 2190 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 20: /* asgn: tSET THEENTITY tEQ expr */
-#line 298 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt((yyvsp[-2].e)[0]);
- g_lingo->codeInt((yyvsp[-2].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2202 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.nodelist) = list; }
+#line 1574 "engines/director/lingo/lingo-gr.cpp"
break;
- case 21: /* asgn: tSET ID tTO expr */
-#line 305 "engines/director/lingo/lingo-gr.y"
+ case 4: /* scriptpartlist: scriptpartlist scriptpart */
+#line 196 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- mVar((yyvsp[-2].s), globalCheck());
- g_lingo->code1(LC::c_assign);
- (yyval.code) = (yyvsp[0].code);
- delete (yyvsp[-2].s); }
-#line 2214 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 22: /* asgn: tSET THEENTITY tTO expr */
-#line 312 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt((yyvsp[-2].e)[0]);
- g_lingo->codeInt((yyvsp[-2].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2226 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 23: /* asgn: tSET THEENTITYWITHID expr tTO expr */
-#line 319 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_swap);
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt((yyvsp[-3].e)[0]);
- g_lingo->codeInt((yyvsp[-3].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 24: /* asgn: tSET THEENTITYWITHID expr tEQ expr */
-#line 325 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_swap);
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt((yyvsp[-3].e)[0]);
- g_lingo->codeInt((yyvsp[-3].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2248 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 25: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr */
-#line 332 "engines/director/lingo/lingo-gr.y"
- {
- if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
- }
-
- warning("STUB: menuItem entity");
- g_lingo->code1(LC::c_themenuitementityassign);
- g_lingo->codeInt((yyvsp[-6].e)[0]);
- g_lingo->codeInt((yyvsp[-6].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 26: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tEQ expr */
-#line 343 "engines/director/lingo/lingo-gr.y"
- {
- if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
+ if ((yyvsp[0].node)) {
+ (yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
-
- warning("STUB: menuItem entity");
- g_lingo->code1(LC::c_themenuitementityassign);
- g_lingo->codeInt((yyvsp[-6].e)[0]);
- g_lingo->codeInt((yyvsp[-6].e)[1]);
- (yyval.code) = (yyvsp[0].code); }
-#line 2280 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 27: /* asgn: tSET THEOBJECTPROP tTO expr */
-#line 354 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_objectpropassign);
- g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
- g_lingo->codeString((yyvsp[-2].objectprop).prop->c_str());
- delete (yyvsp[-2].objectprop).obj;
- delete (yyvsp[-2].objectprop).prop;
- (yyval.code) = (yyvsp[0].code); }
-#line 2292 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 28: /* asgn: tSET THEOBJECTPROP tEQ expr */
-#line 361 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_objectpropassign);
- g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
- g_lingo->codeString((yyvsp[-2].objectprop).prop->c_str());
- delete (yyvsp[-2].objectprop).obj;
- delete (yyvsp[-2].objectprop).prop;
- (yyval.code) = (yyvsp[0].code); }
-#line 2304 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 33: /* stmt: tREPEAT tWHILE lbl expr jumpifz startrepeat stmtlist jump tENDREPEAT */
-#line 378 "engines/director/lingo/lingo-gr.y"
- {
- inst start = 0, end = 0;
- WRITE_UINT32(&start, (yyvsp[-6].code) - (yyvsp[-1].code) + 1);
- WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-4].code) + 2);
- (*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end; /* end, if cond fails */
- (*g_lingo->_currentAssembly)[(yyvsp[-1].code)] = start; /* looping back */
- endRepeat((yyvsp[-1].code) + 1, (yyvsp[-6].code)); }
-#line 2316 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 34: /* $@1: %empty */
-#line 391 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- mVar((yyvsp[-2].s), globalCheck()); }
-#line 2324 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 35: /* $@2: %empty */
-#line 395 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_eval);
- g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2331 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 1584 "engines/director/lingo/lingo-gr.cpp"
break;
- case 36: /* $@3: %empty */
-#line 398 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_le); }
-#line 2337 "engines/director/lingo/lingo-gr.cpp"
+ case 5: /* scriptpart: '\n' */
+#line 203 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = nullptr; }
+#line 1590 "engines/director/lingo/lingo-gr.cpp"
break;
- case 37: /* stmt: tREPEAT tWITH ID tEQ expr $@1 varassign $@2 tTO expr $@3 jumpifz startrepeat stmtlist tENDREPEAT */
-#line 398 "engines/director/lingo/lingo-gr.y"
- {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_eval);
- g_lingo->codeString((yyvsp[-12].s)->c_str());
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_add);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-12].s)->c_str());
- g_lingo->code1(LC::c_assign);
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, (yyvsp[-8].code) - pos + 2);
- WRITE_UINT32(&end, pos - (yyvsp[-3].code) + 2);
- (*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
- endRepeat(pos + 1, nextPos); }
-#line 2362 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 38: /* $@4: %empty */
-#line 425 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- mVar((yyvsp[-2].s), globalCheck()); }
-#line 2370 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 39: /* $@5: %empty */
-#line 429 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_eval);
- g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2377 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 40: /* $@6: %empty */
-#line 432 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_ge); }
-#line 2383 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 41: /* stmt: tREPEAT tWITH ID tEQ expr $@4 varassign $@5 tDOWN tTO expr $@6 jumpifz startrepeat stmtlist tENDREPEAT */
-#line 433 "engines/director/lingo/lingo-gr.y"
- {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_eval);
- g_lingo->codeString((yyvsp[-13].s)->c_str());
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_sub);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-13].s)->c_str());
- g_lingo->code1(LC::c_assign);
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, (yyvsp[-9].code) - pos + 2);
- WRITE_UINT32(&end, pos - (yyvsp[-3].code) + 2);
- (*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
- endRepeat(pos + 1, nextPos); }
-#line 2408 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 42: /* $@7: %empty */
-#line 459 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_stackpeek);
- g_lingo->codeInt(0);
- Common::String count("count");
- g_lingo->codeFunc(&count, 1);
- g_lingo->code1(LC::c_intpush); // start counter
- g_lingo->codeInt(1); }
-#line 2419 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 43: /* $@8: %empty */
-#line 466 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_stackpeek); // get counter
- g_lingo->codeInt(0);
- g_lingo->code1(LC::c_stackpeek); // get array size
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_le); }
-#line 2429 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 44: /* $@9: %empty */
-#line 472 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_stackpeek); // get list
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_stackpeek); // get counter
- g_lingo->codeInt(1);
- Common::String getAt("getAt");
- g_lingo->codeFunc(&getAt, 2);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-6].s)->c_str());
- mVar((yyvsp[-6].s), globalCheck());
- g_lingo->code1(LC::c_assign); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 45: /* stmt: tREPEAT tWITH ID tIN expr $@7 lbl $@8 jumpifz $@9 startrepeat stmtlist tENDREPEAT */
-#line 482 "engines/director/lingo/lingo-gr.y"
- {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_add); // Increment counter
-
- int jump = g_lingo->code2(LC::c_jump, 0);
-
- int end2 = g_lingo->code1(LC::c_stackdrop); // remove list, size, counter
- g_lingo->codeInt(3);
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, (yyvsp[-6].code) - jump);
- WRITE_UINT32(&end, end2 - (yyvsp[-4].code) + 1);
-
- (*g_lingo->_currentAssembly)[jump + 1] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end; /* end, if cond fails */
- endRepeat(end2, nextPos); }
-#line 2468 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 46: /* stmt: tNEXT tREPEAT */
-#line 502 "engines/director/lingo/lingo-gr.y"
- {
- if (g_lingo->_repeatStack.size()) {
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
- g_lingo->_repeatStack.back()->nexts.push_back(pos);
- } else {
- warning("# LINGO: next repeat not inside repeat block");
- } }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 47: /* stmt: tWHEN ID tTHEN expr */
-#line 510 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_whencode);
- g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2489 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 48: /* stmt: tTELL expr '\n' tellstart stmtlist lbl tENDTELL */
-#line 513 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_telldone); }
-#line 2495 "engines/director/lingo/lingo-gr.cpp"
+ case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
+#line 236 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
+#line 1596 "engines/director/lingo/lingo-gr.cpp"
break;
- case 49: /* stmt: tTELL expr tTO tellstart stmtoneliner lbl */
-#line 514 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_telldone); }
-#line 2501 "engines/director/lingo/lingo-gr.cpp"
+ case 11: /* factory: tFACTORY ID '\n' methodlist */
+#line 240 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
+#line 1602 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* stmt: tASSERTERROR asserterrorstart stmtoneliner */
-#line 515 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_asserterrordone); }
-#line 2507 "engines/director/lingo/lingo-gr.cpp"
+ case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
+#line 242 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
+#line 1608 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* stmt: error '\n' */
-#line 516 "engines/director/lingo/lingo-gr.y"
- { yyerrok; }
-#line 2513 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 52: /* startrepeat: %empty */
-#line 518 "engines/director/lingo/lingo-gr.y"
- { startRepeat(); }
-#line 2519 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 53: /* tellstart: %empty */
-#line 520 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_tell); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 54: /* asserterrorstart: %empty */
-#line 522 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_asserterror); }
-#line 2531 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 55: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist lbl tENDIF */
-#line 524 "engines/director/lingo/lingo-gr.y"
- {
- inst else1 = 0, end3 = 0;
- WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
- WRITE_UINT32(&end3, (yyvsp[-1].code) - (yyvsp[-3].code) + 1);
- (*g_lingo->_currentAssembly)[(yyvsp[-6].code)] = else1; /* elsepart */
- (*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end3; /* end, if cond fails */
- g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2543 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 56: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist tELSE stmtlist lbl tENDIF */
-#line 531 "engines/director/lingo/lingo-gr.y"
- {
- inst else1 = 0, end = 0;
- WRITE_UINT32(&else1, (yyvsp[-5].code) + 1 - (yyvsp[-8].code) + 1);
- WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].code) + 1);
- (*g_lingo->_currentAssembly)[(yyvsp[-8].code)] = else1; /* elsepart */
- (*g_lingo->_currentAssembly)[(yyvsp[-5].code)] = end; /* end, if cond fails */
- g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
-#line 2555 "engines/director/lingo/lingo-gr.cpp"
+ case 13: /* methodlist: %empty */
+#line 244 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 1614 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* elseifstmt: tELSIF expr jumpifz tTHEN stmtlist jump */
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 15: /* nonemptymethodlist: methodlistline */
+#line 248 "engines/director/lingo/lingo-gr.y"
{
- inst else1 = 0;
- WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
- (*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = else1; /* end, if cond fails */
- g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 60: /* jumpifz: %empty */
-#line 548 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code2(LC::c_jumpifz, 0);
- (yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 61: /* jump: %empty */
-#line 552 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code2(LC::c_jump, 0);
- (yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2581 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 62: /* varassign: %empty */
-#line 556 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_assign);
- (yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 63: /* if: tIF */
-#line 560 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeLabel(0); }
-#line 2596 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 64: /* lbl: %empty */
-#line 563 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 69: /* simpleexprnoparens: INT */
-#line 571 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt((yyvsp[0].i)); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 70: /* simpleexprnoparens: FLOAT */
-#line 574 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->code1(LC::c_floatpush);
- g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2618 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 71: /* simpleexprnoparens: SYMBOL */
-#line 577 "engines/director/lingo/lingo-gr.y"
- { // D3
- (yyval.code) = g_lingo->code1(LC::c_symbolpush);
- g_lingo->codeString((yyvsp[0].s)->c_str());
- delete (yyvsp[0].s); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 72: /* simpleexprnoparens: STRING */
-#line 581 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString((yyvsp[0].s)->c_str());
- delete (yyvsp[0].s); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 73: /* simpleexprnoparens: '+' simpleexpr */
-#line 585 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[0].code); }
-#line 2642 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 74: /* simpleexprnoparens: '-' simpleexpr */
-#line 586 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 75: /* simpleexprnoparens: tNOT simpleexpr */
-#line 587 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_not); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 77: /* simpleexprnoparens: THEENTITY */
-#line 589 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentitypush);
- inst e = 0, f = 0;
- WRITE_UINT32(&e, (yyvsp[0].e)[0]);
- WRITE_UINT32(&f, (yyvsp[0].e)[1]);
- g_lingo->code2(e, f); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 78: /* simpleexprnoparens: THEENTITYWITHID simpleexpr */
-#line 597 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->code1(LC::c_theentitypush);
- inst e = 0, f = 0;
- WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
- WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
- g_lingo->code2(e, f); }
-#line 2678 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 79: /* simpleexprnoparens: THEFUNCINOF simpleexpr */
-#line 603 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->codeFunc((yyvsp[-1].s), 1);
- delete (yyvsp[-1].s); }
-#line 2686 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 80: /* simpleexprnoparens: THEFUNC tOF simpleexpr */
-#line 606 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
- delete (yyvsp[-2].s); }
-#line 2694 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 81: /* simpleexprnoparens: THEOBJECTPROP */
-#line 609 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_objectproppush);
- g_lingo->codeString((yyvsp[0].objectprop).obj->c_str());
- g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
- delete (yyvsp[0].objectprop).obj;
- delete (yyvsp[0].objectprop).prop; }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 82: /* simpleexprnoparens: tSPRITE expr tINTERSECTS simpleexpr */
-#line 615 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_intersects); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 83: /* simpleexprnoparens: tSPRITE expr tWITHIN simpleexpr */
-#line 616 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_within); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 85: /* simpleexprnoparens: ID '(' ID ')' */
-#line 618 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-1].s)->c_str());
- g_lingo->codeFunc((yyvsp[-3].s), 1);
- delete (yyvsp[-3].s);
- delete (yyvsp[-1].s); }
-#line 2728 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 86: /* $@10: %empty */
-#line 624 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2734 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 87: /* simpleexprnoparens: ID '(' ID ',' $@10 nonemptyarglist ')' */
-#line 625 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
- delete (yyvsp[-6].s);
- delete (yyvsp[-4].s); }
-#line 2743 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 88: /* simpleexprnoparens: ID '(' arglist ')' */
-#line 629 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
- delete (yyvsp[-3].s); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+ NodeList *list = new NodeList;
+ if ((yyvsp[0].node)) {
+ list->push_back((yyvsp[0].node));
+ }
+ (yyval.nodelist) = list; }
+#line 1625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* simpleexprnoparens: ID */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
+#line 254 "engines/director/lingo/lingo-gr.y"
{
- if (g_lingo->_builtinConsts.contains(*(yyvsp[0].s))) {
- (yyval.code) = g_lingo->code1(LC::c_constpush);
- } else {
- (yyval.code) = g_lingo->code1(LC::c_eval);
+ if ((yyvsp[0].node)) {
+ (yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
- g_lingo->codeString((yyvsp[0].s)->c_str());
- delete (yyvsp[0].s); }
-#line 2764 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 91: /* simpleexpr: '(' expr ')' */
-#line 642 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[-1].code); }
-#line 2770 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 92: /* expr: simpleexpr */
-#line 644 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[0].code); }
-#line 2776 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 93: /* expr: expr '+' expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_add); }
-#line 2782 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 94: /* expr: expr '-' expr */
-#line 646 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_sub); }
-#line 2788 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 95: /* expr: expr '*' expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_mul); }
-#line 2794 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 1635 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* expr: expr '/' expr */
-#line 648 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_div); }
-#line 2800 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 97: /* expr: expr tMOD expr */
-#line 649 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_mod); }
-#line 2806 "engines/director/lingo/lingo-gr.cpp"
+ case 17: /* methodlistline: '\n' */
+#line 261 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = nullptr; }
+#line 1641 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* expr: expr '>' expr */
-#line 650 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_gt); }
-#line 2812 "engines/director/lingo/lingo-gr.cpp"
+ case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
+#line 267 "engines/director/lingo/lingo-gr.y"
+ { // D3
+ (yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
+ checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
+ delete (yyvsp[-2].s); }
+#line 1650 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* expr: expr '<' expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_lt); }
-#line 2818 "engines/director/lingo/lingo-gr.cpp"
+ case 20: /* handler: tON ID idlist '\n' stmtlist */
+#line 271 "engines/director/lingo/lingo-gr.y"
+ { // D4. No 'end' clause
+ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
+#line 1657 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* expr: expr tEQ expr */
-#line 652 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_eq); }
-#line 2824 "engines/director/lingo/lingo-gr.cpp"
+ case 22: /* endargdef: ID */
+#line 276 "engines/director/lingo/lingo-gr.y"
+ { delete (yyvsp[0].s); }
+#line 1663 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* expr: expr tNEQ expr */
-#line 653 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_neq); }
-#line 2830 "engines/director/lingo/lingo-gr.cpp"
+ case 23: /* endargdef: endargdef ',' ID */
+#line 277 "engines/director/lingo/lingo-gr.y"
+ { delete (yyvsp[0].s); }
+#line 1669 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* expr: expr tGE expr */
-#line 654 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_ge); }
-#line 2836 "engines/director/lingo/lingo-gr.cpp"
+ case 25: /* ID: tAFTER */
+#line 283 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("after"); }
+#line 1675 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* expr: expr tLE expr */
-#line 655 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_le); }
-#line 2842 "engines/director/lingo/lingo-gr.cpp"
+ case 26: /* ID: tAND */
+#line 284 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("and"); }
+#line 1681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* expr: expr tAND expr */
-#line 656 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_and); }
-#line 2848 "engines/director/lingo/lingo-gr.cpp"
+ case 27: /* ID: tBEFORE */
+#line 285 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("before"); }
+#line 1687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* expr: expr tOR expr */
-#line 657 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_or); }
-#line 2854 "engines/director/lingo/lingo-gr.cpp"
+ case 28: /* ID: tCAST */
+#line 286 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("cast"); }
+#line 1693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* expr: expr '&' expr */
-#line 658 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_ampersand); }
-#line 2860 "engines/director/lingo/lingo-gr.cpp"
+ case 29: /* ID: tCHAR */
+#line 287 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("char"); }
+#line 1699 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* expr: expr tCONCAT expr */
-#line 659 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_concat); }
-#line 2866 "engines/director/lingo/lingo-gr.cpp"
+ case 30: /* ID: tDOWN */
+#line 288 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("down"); }
+#line 1705 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* expr: expr tCONTAINS expr */
-#line 660 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_contains); }
-#line 2872 "engines/director/lingo/lingo-gr.cpp"
+ case 31: /* ID: tEXIT */
+#line 291 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("exit"); }
+#line 1711 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* expr: expr tSTARTS expr */
-#line 661 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_starts); }
-#line 2878 "engines/director/lingo/lingo-gr.cpp"
+ case 32: /* ID: tFIELD */
+#line 293 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("field"); }
+#line 1717 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* chunkexpr: tFIELD simpleexprnoparens */
-#line 663 "engines/director/lingo/lingo-gr.y"
- {
- Common::String field("field");
- g_lingo->codeFunc(&field, 1); }
-#line 2886 "engines/director/lingo/lingo-gr.cpp"
+ case 33: /* ID: tIN */
+#line 296 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("in"); }
+#line 1723 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* chunkexpr: tCAST simpleexprnoparens */
-#line 666 "engines/director/lingo/lingo-gr.y"
- {
- Common::String cast("cast");
- g_lingo->codeFunc(&cast, 1); }
-#line 2894 "engines/director/lingo/lingo-gr.cpp"
+ case 34: /* ID: tINTERSECTS */
+#line 298 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("intersects"); }
+#line 1729 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* chunkexpr: tCHAR expr tOF simpleexpr */
-#line 669 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_charOf); }
-#line 2900 "engines/director/lingo/lingo-gr.cpp"
+ case 35: /* ID: tINTO */
+#line 299 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("into"); }
+#line 1735 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* chunkexpr: tCHAR expr tTO expr tOF simpleexpr */
-#line 670 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_charToOf); }
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+ case 36: /* ID: tITEM */
+#line 300 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("item"); }
+#line 1741 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* chunkexpr: tITEM expr tOF simpleexpr */
-#line 671 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_itemOf); }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+ case 37: /* ID: tLINE */
+#line 301 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("line"); }
+#line 1747 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* chunkexpr: tITEM expr tTO expr tOF simpleexpr */
-#line 672 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_itemToOf); }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+ case 38: /* ID: tMOD */
+#line 304 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("mod"); }
+#line 1753 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* chunkexpr: tLINE expr tOF simpleexpr */
-#line 673 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_lineOf); }
-#line 2924 "engines/director/lingo/lingo-gr.cpp"
+ case 39: /* ID: tMOVIE */
+#line 305 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("movie"); }
+#line 1759 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* chunkexpr: tLINE expr tTO expr tOF simpleexpr */
-#line 674 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_lineToOf); }
-#line 2930 "engines/director/lingo/lingo-gr.cpp"
+ case 40: /* ID: tNEXT */
+#line 306 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("next"); }
+#line 1765 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* chunkexpr: tWORD expr tOF simpleexpr */
-#line 675 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_wordOf); }
-#line 2936 "engines/director/lingo/lingo-gr.cpp"
+ case 41: /* ID: tNOT */
+#line 307 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("not"); }
+#line 1771 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* chunkexpr: tWORD expr tTO expr tOF simpleexpr */
-#line 676 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_wordToOf); }
-#line 2942 "engines/director/lingo/lingo-gr.cpp"
+ case 42: /* ID: tOF */
+#line 308 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("of"); }
+#line 1777 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* reference: tSCRIPT simpleexprnoparens */
-#line 679 "engines/director/lingo/lingo-gr.y"
- {
- Common::String script("script");
- g_lingo->codeFunc(&script, 1); }
-#line 2950 "engines/director/lingo/lingo-gr.cpp"
+ case 43: /* ID: tOPEN */
+#line 310 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("open"); }
+#line 1783 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* reference: tWINDOW simpleexprnoparens */
-#line 682 "engines/director/lingo/lingo-gr.y"
- {
- Common::String window("window");
- g_lingo->codeFunc(&window, 1); }
-#line 2958 "engines/director/lingo/lingo-gr.cpp"
+ case 44: /* ID: tOR */
+#line 311 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("or"); }
+#line 1789 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* proc: tPUT expr */
-#line 686 "engines/director/lingo/lingo-gr.y"
- {
- Common::String put("put");
- g_lingo->codeCmd(&put, 1); }
-#line 2966 "engines/director/lingo/lingo-gr.cpp"
+ case 45: /* ID: tPLAY */
+#line 312 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("play"); }
+#line 1795 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* proc: tEXIT tREPEAT */
-#line 691 "engines/director/lingo/lingo-gr.y"
- {
- if (g_lingo->_repeatStack.size()) {
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
- g_lingo->_repeatStack.back()->exits.push_back(pos);
- } else {
- warning("# LINGO: exit repeat not inside repeat block");
- } }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+ case 46: /* ID: tPLAYACCEL */
+#line 313 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("playAccel"); }
+#line 1801 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* proc: tEXIT */
-#line 699 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_procret); }
-#line 2985 "engines/director/lingo/lingo-gr.cpp"
+ case 47: /* ID: tPREVIOUS */
+#line 314 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("previous"); }
+#line 1807 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* $@11: %empty */
-#line 700 "engines/director/lingo/lingo-gr.y"
- { inArgs(); }
-#line 2991 "engines/director/lingo/lingo-gr.cpp"
+ case 48: /* ID: tPUT */
+#line 316 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("put"); }
+#line 1813 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* proc: tGLOBAL $@11 globallist */
-#line 700 "engines/director/lingo/lingo-gr.y"
- { inLast(); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+ case 49: /* ID: tREPEAT */
+#line 317 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("repeat"); }
+#line 1819 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* $@12: %empty */
-#line 701 "engines/director/lingo/lingo-gr.y"
- { inArgs(); }
-#line 3003 "engines/director/lingo/lingo-gr.cpp"
+ case 50: /* ID: tSCRIPT */
+#line 318 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("script"); }
+#line 1825 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proc: tPROPERTY $@12 propertylist */
-#line 701 "engines/director/lingo/lingo-gr.y"
- { inLast(); }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+ case 51: /* ID: tSET */
+#line 319 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("set"); }
+#line 1831 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* $@13: %empty */
-#line 702 "engines/director/lingo/lingo-gr.y"
- { inArgs(); }
-#line 3015 "engines/director/lingo/lingo-gr.cpp"
+ case 52: /* ID: tSTARTS */
+#line 320 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("starts"); }
+#line 1837 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* proc: tINSTANCE $@13 instancelist */
-#line 702 "engines/director/lingo/lingo-gr.y"
- { inLast(); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+ case 53: /* ID: tTELL */
+#line 321 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("tell"); }
+#line 1843 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* proc: tOPEN expr tWITH expr */
-#line 703 "engines/director/lingo/lingo-gr.y"
- {
- Common::String open("open");
- g_lingo->codeCmd(&open, 2); }
-#line 3029 "engines/director/lingo/lingo-gr.cpp"
+ case 54: /* ID: tTO */
+#line 323 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("to"); }
+#line 1849 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* proc: tOPEN expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
- {
- Common::String open("open");
- g_lingo->codeCmd(&open, 1); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+ case 55: /* ID: tASSERTERROR */
+#line 324 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("scummvmAssertError"); }
+#line 1855 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* proc: ID '(' ID ')' */
-#line 709 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString((yyvsp[-1].s)->c_str());
- g_lingo->codeCmd((yyvsp[-3].s), 1);
- delete (yyvsp[-3].s);
- delete (yyvsp[-1].s); }
-#line 3048 "engines/director/lingo/lingo-gr.cpp"
+ case 56: /* ID: tSPRITE */
+#line 325 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("sprite"); }
+#line 1861 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* $@14: %empty */
-#line 715 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 3054 "engines/director/lingo/lingo-gr.cpp"
+ case 57: /* ID: tWHEN */
+#line 326 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("when"); }
+#line 1867 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* proc: ID '(' ID ',' $@14 nonemptyarglist ')' */
-#line 716 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeCmd((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
- delete (yyvsp[-6].s);
- delete (yyvsp[-4].s); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+ case 58: /* ID: tWHILE */
+#line 327 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("while"); }
+#line 1873 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* proc: ID '(' arglist ')' */
-#line 720 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeCmd((yyvsp[-3].s), (yyvsp[-1].narg));
- delete (yyvsp[-3].s); }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+ case 59: /* ID: tWINDOW */
+#line 328 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("window"); }
+#line 1879 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* proc: ID arglist */
-#line 723 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeCmd((yyvsp[-1].s), (yyvsp[0].narg));
- delete (yyvsp[-1].s); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+ case 60: /* ID: tWITH */
+#line 329 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("with"); }
+#line 1885 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* globallist: ID */
-#line 728 "engines/director/lingo/lingo-gr.y"
- {
- mVar((yyvsp[0].s), kVarGlobal);
- delete (yyvsp[0].s); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+ case 61: /* ID: tWITHIN */
+#line 330 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("within"); }
+#line 1891 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* globallist: ID ',' globallist */
-#line 731 "engines/director/lingo/lingo-gr.y"
- {
- mVar((yyvsp[-2].s), kVarGlobal);
- delete (yyvsp[-2].s); }
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+ case 62: /* ID: tWORD */
+#line 331 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("word"); }
+#line 1897 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* propertylist: ID */
-#line 736 "engines/director/lingo/lingo-gr.y"
- {
- mVar((yyvsp[0].s), kVarProperty);
- delete (yyvsp[0].s); }
-#line 3103 "engines/director/lingo/lingo-gr.cpp"
+ case 63: /* idlist: %empty */
+#line 334 "engines/director/lingo/lingo-gr.y"
+ { (yyval.idlist) = new IDList; }
+#line 1903 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* propertylist: ID ',' propertylist */
-#line 739 "engines/director/lingo/lingo-gr.y"
- {
- mVar((yyvsp[-2].s), kVarProperty);
- delete (yyvsp[-2].s); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+ case 65: /* nonemptyidlist: ID */
+#line 338 "engines/director/lingo/lingo-gr.y"
+ {
+ Common::Array<Common::String *> *list = new IDList;
+ list->push_back((yyvsp[0].s));
+ (yyval.idlist) = list; }
+#line 1912 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* instancelist: ID */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 66: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 342 "engines/director/lingo/lingo-gr.y"
{
- mVar((yyvsp[0].s), kVarInstance);
- delete (yyvsp[0].s); }
-#line 3119 "engines/director/lingo/lingo-gr.cpp"
+ (yyvsp[-2].idlist)->push_back((yyvsp[0].s));
+ (yyval.idlist) = (yyvsp[-2].idlist); }
+#line 1920 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* instancelist: ID ',' instancelist */
-#line 747 "engines/director/lingo/lingo-gr.y"
- {
- mVar((yyvsp[-2].s), kVarInstance);
- delete (yyvsp[-2].s); }
-#line 3127 "engines/director/lingo/lingo-gr.cpp"
+ case 70: /* proc: ID '(' exprlist ')' */
+#line 355 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
+#line 1926 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* gotofunc: tGOLOOP */
-#line 758 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_gotoloop); }
-#line 3133 "engines/director/lingo/lingo-gr.cpp"
+ case 71: /* proc: ID exprlist */
+#line 356 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode((yyvsp[-1].s), (yyvsp[0].nodelist)); }
+#line 1932 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* gotofunc: tGO tNEXT */
-#line 759 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_gotonext); }
-#line 3139 "engines/director/lingo/lingo-gr.cpp"
+ case 72: /* definevars: tGLOBAL idlist */
+#line 359 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new GlobalNode((yyvsp[0].idlist)); }
+#line 1938 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* gotofunc: tGO tPREVIOUS */
-#line 760 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_gotoprevious); }
-#line 3145 "engines/director/lingo/lingo-gr.cpp"
+ case 73: /* definevars: tPROPERTY idlist */
+#line 360 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropertyNode((yyvsp[0].idlist)); }
+#line 1944 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* gotofunc: tGO expr */
-#line 761 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_goto); }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 154: /* gotofunc: tGO expr gotomovie */
-#line 765 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(3);
- g_lingo->code1(LC::c_goto); }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 155: /* gotofunc: tGO gotomovie */
-#line 769 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_goto); }
-#line 3172 "engines/director/lingo/lingo-gr.cpp"
+ case 74: /* definevars: tINSTANCE idlist */
+#line 361 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new InstanceNode((yyvsp[0].idlist)); }
+#line 1950 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* playfunc: tPLAY expr */
-#line 777 "engines/director/lingo/lingo-gr.y"
- { // "play #done" is also caught by this
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_play); }
-#line 3181 "engines/director/lingo/lingo-gr.cpp"
+ case 75: /* stmtlist: %empty */
+#line 364 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 1956 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* playfunc: tPLAY expr gotomovie */
-#line 781 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(3);
- g_lingo->code1(LC::c_play); }
-#line 3190 "engines/director/lingo/lingo-gr.cpp"
+ case 77: /* nonemptystmtlist: stmtlistline */
+#line 369 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *list = new NodeList;
+ if ((yyvsp[0].node)) {
+ list->push_back((yyvsp[0].node));
+ }
+ (yyval.nodelist) = list; }
+#line 1967 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* playfunc: tPLAY gotomovie */
-#line 785 "engines/director/lingo/lingo-gr.y"
+ case 78: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 375 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_play); }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 161: /* $@15: %empty */
-#line 789 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeSetImmediate(true); }
-#line 3205 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 162: /* playfunc: tPLAYACCEL $@15 arglist */
-#line 789 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->codeSetImmediate(false);
- g_lingo->codeCmd((yyvsp[-2].s), (yyvsp[0].narg));
- delete (yyvsp[-2].s); }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 163: /* $@16: %empty */
-#line 819 "engines/director/lingo/lingo-gr.y"
- { startDef(); }
-#line 3220 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 164: /* defn: tMACRO $@16 ID lbl argdef '\n' argstore stmtlist */
-#line 820 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
- endDef();
- delete (yyvsp[-5].s); }
-#line 3230 "engines/director/lingo/lingo-gr.cpp"
+ if ((yyvsp[0].node)) {
+ (yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
+ }
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 1977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* defn: tFACTORY ID */
-#line 825 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3236 "engines/director/lingo/lingo-gr.cpp"
+ case 79: /* stmtlistline: '\n' */
+#line 382 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = nullptr; }
+#line 1983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* $@17: %empty */
-#line 826 "engines/director/lingo/lingo-gr.y"
- {
- startDef();
- Common::String me("me");
- g_lingo->codeArg(&me);
- mVar(&me, kVarArgument);
- }
-#line 3247 "engines/director/lingo/lingo-gr.cpp"
+ case 81: /* simpleexprnoparens: tINT */
+#line 388 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new IntNode((yyvsp[0].i)); }
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* defn: tMETHOD $@17 lbl argdef '\n' argstore stmtlist */
-#line 831 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
- endDef();
- delete (yyvsp[-6].s); }
-#line 3257 "engines/director/lingo/lingo-gr.cpp"
+ case 82: /* simpleexprnoparens: tFLOAT */
+#line 389 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FloatNode((yyvsp[0].f)); }
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* defn: on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef */
-#line 836 "engines/director/lingo/lingo-gr.y"
- { // D3
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
- endDef();
-
- checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
- delete (yyvsp[-7].s);
- delete (yyvsp[-1].s); }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+ case 83: /* simpleexprnoparens: tSYMBOL */
+#line 390 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* defn: on lbl argdef '\n' argstore stmtlist */
-#line 844 "engines/director/lingo/lingo-gr.y"
- { // D4. No 'end' clause
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
- endDef();
- delete (yyvsp[-5].s); }
-#line 3280 "engines/director/lingo/lingo-gr.cpp"
+ case 84: /* simpleexprnoparens: tSTRING */
+#line 391 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new StringNode((yyvsp[0].s)); }
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* $@18: %empty */
-#line 850 "engines/director/lingo/lingo-gr.y"
- { startDef(); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+ case 85: /* simpleexprnoparens: '+' simpleexpr */
+#line 392 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* on: tON $@18 ID */
-#line 850 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = (yyvsp[0].s); }
-#line 3292 "engines/director/lingo/lingo-gr.cpp"
+ case 86: /* simpleexprnoparens: '-' simpleexpr */
+#line 393 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
+#line 2019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* argname: ID */
-#line 852 "engines/director/lingo/lingo-gr.y"
- { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); delete (yyvsp[0].s); }
-#line 3298 "engines/director/lingo/lingo-gr.cpp"
+ case 87: /* simpleexprnoparens: tNOT simpleexpr */
+#line 394 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
+#line 2025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* argdef: %empty */
-#line 854 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 0; }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+ case 88: /* simpleexprnoparens: ID '(' exprlist ')' */
+#line 395 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
+#line 2031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* argdef: argname */
-#line 855 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3310 "engines/director/lingo/lingo-gr.cpp"
+ case 89: /* simpleexprnoparens: ID */
+#line 396 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new VarNode((yyvsp[0].s)); }
+#line 2037 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* argdef: argname ',' argdef */
-#line 856 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3316 "engines/director/lingo/lingo-gr.cpp"
+ case 91: /* simpleexpr: '(' expr ')' */
+#line 400 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* endargdef: ID */
-#line 859 "engines/director/lingo/lingo-gr.y"
- { delete (yyvsp[0].s); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+ case 92: /* expr: simpleexpr */
+#line 403 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 2049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* endargdef: endargdef ',' ID */
-#line 860 "engines/director/lingo/lingo-gr.y"
- { delete (yyvsp[0].s); }
-#line 3328 "engines/director/lingo/lingo-gr.cpp"
+ case 93: /* expr: expr '+' expr */
+#line 404 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* argstore: %empty */
-#line 862 "engines/director/lingo/lingo-gr.y"
- { inDef(); }
-#line 3334 "engines/director/lingo/lingo-gr.cpp"
+ case 94: /* expr: expr '-' expr */
+#line 405 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* arglist: %empty */
-#line 864 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 0; }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+ case 95: /* expr: expr '*' expr */
+#line 406 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2067 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* arglist: expr */
-#line 865 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3346 "engines/director/lingo/lingo-gr.cpp"
+ case 96: /* expr: expr '/' expr */
+#line 407 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2073 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* arglist: expr ',' arglist */
-#line 866 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3352 "engines/director/lingo/lingo-gr.cpp"
+ case 97: /* expr: expr tMOD expr */
+#line 408 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2079 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* nonemptyarglist: expr */
-#line 868 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3358 "engines/director/lingo/lingo-gr.cpp"
+ case 98: /* expr: expr '>' expr */
+#line 409 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2085 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* nonemptyarglist: expr ',' */
-#line 869 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+ case 99: /* expr: expr '<' expr */
+#line 410 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2091 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* nonemptyarglist: expr ',' nonemptyarglist */
-#line 870 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3370 "engines/director/lingo/lingo-gr.cpp"
+ case 100: /* expr: expr tEQ expr */
+#line 411 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2097 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* list: '[' valuelist ']' */
-#line 872 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[-1].code); }
-#line 3376 "engines/director/lingo/lingo-gr.cpp"
+ case 101: /* expr: expr tNEQ expr */
+#line 412 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2103 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* valuelist: %empty */
-#line 874 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3382 "engines/director/lingo/lingo-gr.cpp"
+ case 102: /* expr: expr tGE expr */
+#line 413 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2109 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* valuelist: ':' */
-#line 875 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3388 "engines/director/lingo/lingo-gr.cpp"
+ case 103: /* expr: expr tLE expr */
+#line 414 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2115 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* valuelist: proplist */
-#line 876 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3394 "engines/director/lingo/lingo-gr.cpp"
+ case 104: /* expr: expr tAND expr */
+#line 415 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2121 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* valuelist: linearlist */
-#line 877 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3400 "engines/director/lingo/lingo-gr.cpp"
+ case 105: /* expr: expr tOR expr */
+#line 416 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2127 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* linearlist: expr */
-#line 879 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3406 "engines/director/lingo/lingo-gr.cpp"
+ case 106: /* expr: expr '&' expr */
+#line 417 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* linearlist: linearlist ',' expr */
-#line 880 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3412 "engines/director/lingo/lingo-gr.cpp"
+ case 107: /* expr: expr tCONCAT expr */
+#line 418 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2139 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* proplist: proppair */
-#line 882 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = 1; }
-#line 3418 "engines/director/lingo/lingo-gr.cpp"
+ case 108: /* expr: expr tCONTAINS expr */
+#line 419 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2145 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* proplist: proplist ',' proppair */
-#line 883 "engines/director/lingo/lingo-gr.y"
- { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+ case 109: /* expr: expr tSTARTS expr */
+#line 420 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2151 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* proppair: SYMBOL ':' expr */
-#line 885 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_symbolpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- delete (yyvsp[-2].s); }
-#line 3433 "engines/director/lingo/lingo-gr.cpp"
+ case 110: /* exprlist: %empty */
+#line 423 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 2157 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* proppair: STRING ':' expr */
-#line 889 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- delete (yyvsp[-2].s); }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+ case 112: /* nonemptyexprlist: expr */
+#line 427 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *list = new NodeList;
+ list->push_back((yyvsp[0].node));
+ (yyval.nodelist) = list; }
+#line 2166 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* proppair: ID ':' expr */
-#line 893 "engines/director/lingo/lingo-gr.y"
- {
- g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString((yyvsp[-2].s)->c_str());
- delete (yyvsp[-2].s); }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+ case 113: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 431 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
+ (yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 2174 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3455 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3650,7 +2373,7 @@ yyreturn:
return yyresult;
}
-#line 899 "engines/director/lingo/lingo-gr.y"
+#line 436 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 73b6a236b5..711e188b77 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.1. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -54,93 +54,81 @@ extern int yydebug;
YYEOF = 0, /* "end of file" */
YYerror = 256, /* error */
YYUNDEF = 257, /* "invalid token" */
- UNARY = 258, /* UNARY */
- VOID = 259, /* VOID */
- VAR = 260, /* VAR */
- POINT = 261, /* POINT */
- RECT = 262, /* RECT */
- ARRAY = 263, /* ARRAY */
- OBJECT = 264, /* OBJECT */
- LEXERROR = 265, /* LEXERROR */
- PARRAY = 266, /* PARRAY */
- CASTREF = 267, /* CASTREF */
- FIELDREF = 268, /* FIELDREF */
- CHUNKREF = 269, /* CHUNKREF */
- INT = 270, /* INT */
- ARGC = 271, /* ARGC */
- ARGCNORET = 272, /* ARGCNORET */
- THEENTITY = 273, /* THEENTITY */
- THEENTITYWITHID = 274, /* THEENTITYWITHID */
- THEMENUITEMENTITY = 275, /* THEMENUITEMENTITY */
- THEMENUITEMSENTITY = 276, /* THEMENUITEMSENTITY */
- FLOAT = 277, /* FLOAT */
- THEFUNC = 278, /* THEFUNC */
- THEFUNCINOF = 279, /* THEFUNCINOF */
- VARID = 280, /* VARID */
- STRING = 281, /* STRING */
- SYMBOL = 282, /* SYMBOL */
- ENDCLAUSE = 283, /* ENDCLAUSE */
- tPLAYACCEL = 284, /* tPLAYACCEL */
- tMETHOD = 285, /* tMETHOD */
- THEOBJECTPROP = 286, /* THEOBJECTPROP */
- tCAST = 287, /* tCAST */
- tFIELD = 288, /* tFIELD */
- tSCRIPT = 289, /* tSCRIPT */
- tWINDOW = 290, /* tWINDOW */
- tDOWN = 291, /* tDOWN */
- tELSE = 292, /* tELSE */
- tELSIF = 293, /* tELSIF */
- tEXIT = 294, /* tEXIT */
- tGLOBAL = 295, /* tGLOBAL */
- tGO = 296, /* tGO */
- tGOLOOP = 297, /* tGOLOOP */
- tIF = 298, /* tIF */
- tIN = 299, /* tIN */
- tINTO = 300, /* tINTO */
- tMACRO = 301, /* tMACRO */
- tMOVIE = 302, /* tMOVIE */
- tNEXT = 303, /* tNEXT */
- tOF = 304, /* tOF */
- tPREVIOUS = 305, /* tPREVIOUS */
- tPUT = 306, /* tPUT */
- tREPEAT = 307, /* tREPEAT */
- tSET = 308, /* tSET */
- tTHEN = 309, /* tTHEN */
- tTO = 310, /* tTO */
- tWHEN = 311, /* tWHEN */
- tWITH = 312, /* tWITH */
- tWHILE = 313, /* tWHILE */
- tFACTORY = 314, /* tFACTORY */
- tOPEN = 315, /* tOPEN */
- tPLAY = 316, /* tPLAY */
- tINSTANCE = 317, /* tINSTANCE */
- tGE = 318, /* tGE */
- tLE = 319, /* tLE */
- tEQ = 320, /* tEQ */
- tNEQ = 321, /* tNEQ */
- tAND = 322, /* tAND */
- tOR = 323, /* tOR */
- tNOT = 324, /* tNOT */
- tMOD = 325, /* tMOD */
- tAFTER = 326, /* tAFTER */
- tBEFORE = 327, /* tBEFORE */
- tCONCAT = 328, /* tCONCAT */
- tCONTAINS = 329, /* tCONTAINS */
- tSTARTS = 330, /* tSTARTS */
- tCHAR = 331, /* tCHAR */
- tITEM = 332, /* tITEM */
- tLINE = 333, /* tLINE */
- tWORD = 334, /* tWORD */
- tSPRITE = 335, /* tSPRITE */
- tINTERSECTS = 336, /* tINTERSECTS */
- tWITHIN = 337, /* tWITHIN */
- tTELL = 338, /* tTELL */
- tPROPERTY = 339, /* tPROPERTY */
- tON = 340, /* tON */
- tENDIF = 341, /* tENDIF */
- tENDREPEAT = 342, /* tENDREPEAT */
- tENDTELL = 343, /* tENDTELL */
- tASSERTERROR = 344 /* tASSERTERROR */
+ tUNARY = 258, /* tUNARY */
+ tLEXERROR = 259, /* tLEXERROR */
+ tINT = 260, /* tINT */
+ tTHEENTITY = 261, /* tTHEENTITY */
+ tTHEENTITYWITHID = 262, /* tTHEENTITYWITHID */
+ tTHEMENUITEMENTITY = 263, /* tTHEMENUITEMENTITY */
+ tTHEMENUITEMSENTITY = 264, /* tTHEMENUITEMSENTITY */
+ tFLOAT = 265, /* tFLOAT */
+ tTHEFUNC = 266, /* tTHEFUNC */
+ tTHEFUNCINOF = 267, /* tTHEFUNCINOF */
+ tVARID = 268, /* tVARID */
+ tSTRING = 269, /* tSTRING */
+ tSYMBOL = 270, /* tSYMBOL */
+ tENDCLAUSE = 271, /* tENDCLAUSE */
+ tPLAYACCEL = 272, /* tPLAYACCEL */
+ tTHEOBJECTPROP = 273, /* tTHEOBJECTPROP */
+ tCAST = 274, /* tCAST */
+ tFIELD = 275, /* tFIELD */
+ tSCRIPT = 276, /* tSCRIPT */
+ tWINDOW = 277, /* tWINDOW */
+ tDOWN = 278, /* tDOWN */
+ tELSE = 279, /* tELSE */
+ tELSIF = 280, /* tELSIF */
+ tEXIT = 281, /* tEXIT */
+ tGLOBAL = 282, /* tGLOBAL */
+ tGO = 283, /* tGO */
+ tGOLOOP = 284, /* tGOLOOP */
+ tIF = 285, /* tIF */
+ tIN = 286, /* tIN */
+ tINTO = 287, /* tINTO */
+ tMACRO = 288, /* tMACRO */
+ tMOVIE = 289, /* tMOVIE */
+ tNEXT = 290, /* tNEXT */
+ tOF = 291, /* tOF */
+ tPREVIOUS = 292, /* tPREVIOUS */
+ tPUT = 293, /* tPUT */
+ tREPEAT = 294, /* tREPEAT */
+ tSET = 295, /* tSET */
+ tTHEN = 296, /* tTHEN */
+ tTO = 297, /* tTO */
+ tWHEN = 298, /* tWHEN */
+ tWITH = 299, /* tWITH */
+ tWHILE = 300, /* tWHILE */
+ tFACTORY = 301, /* tFACTORY */
+ tOPEN = 302, /* tOPEN */
+ tPLAY = 303, /* tPLAY */
+ tINSTANCE = 304, /* tINSTANCE */
+ tGE = 305, /* tGE */
+ tLE = 306, /* tLE */
+ tEQ = 307, /* tEQ */
+ tNEQ = 308, /* tNEQ */
+ tAND = 309, /* tAND */
+ tOR = 310, /* tOR */
+ tNOT = 311, /* tNOT */
+ tMOD = 312, /* tMOD */
+ tAFTER = 313, /* tAFTER */
+ tBEFORE = 314, /* tBEFORE */
+ tCONCAT = 315, /* tCONCAT */
+ tCONTAINS = 316, /* tCONTAINS */
+ tSTARTS = 317, /* tSTARTS */
+ tCHAR = 318, /* tCHAR */
+ tITEM = 319, /* tITEM */
+ tLINE = 320, /* tLINE */
+ tWORD = 321, /* tWORD */
+ tSPRITE = 322, /* tSPRITE */
+ tINTERSECTS = 323, /* tINTERSECTS */
+ tWITHIN = 324, /* tWITHIN */
+ tTELL = 325, /* tTELL */
+ tPROPERTY = 326, /* tPROPERTY */
+ tON = 327, /* tON */
+ tMETHOD = 328, /* tMETHOD */
+ tENDIF = 329, /* tENDIF */
+ tENDREPEAT = 330, /* tENDREPEAT */
+ tENDTELL = 331, /* tENDTELL */
+ tASSERTERROR = 332 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -149,22 +137,23 @@ extern int yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
-#line 180 "engines/director/lingo/lingo-gr.y"
+#line 109 "engines/director/lingo/lingo-gr.y"
Common::String *s;
int i;
double f;
int e[2]; // Entity + field
- int code;
- int narg; /* number of arguments */
- Director::DatumArray *arr;
struct {
Common::String *obj;
Common::String *prop;
} objectprop;
-#line 168 "engines/director/lingo/lingo-gr.h"
+ Director::IDList *idlist;
+ Director::Node *node;
+ Director::NodeList *nodelist;
+
+#line 157 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index c7cc35725a..87a1199f35 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -60,6 +60,7 @@
#include "director/director.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -94,87 +95,15 @@ static void yyerror(const char *s) {
warning("# %s^ about here", arrow.c_str());
}
-static void checkEnd(Common::String *token, const char *expect, bool required) {
+static void checkEnd(Common::String *token, Common::String *expect, bool required) {
if (required) {
- if (token->compareToIgnoreCase(expect)) {
- Common::String err = Common::String::format("end mismatch. Expected %s but got %s", expect, token->c_str());
+ if (token->compareToIgnoreCase(*expect)) {
+ Common::String err = Common::String::format("end mismatch. Expected %s but got %s", expect->c_str(), token->c_str());
yyerror(err.c_str());
}
}
}
-static void inArgs() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateInArgs; }
-static void inDef() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateInDef; }
-static void inNone() { g_lingo->_indefStore = g_lingo->_indef; g_lingo->_indef = kStateNone; }
-static void inLast() { g_lingo->_indef = g_lingo->_indefStore; }
-
-static void startDef() {
- inArgs();
- g_lingo->_methodVarsStash = g_lingo->_methodVars;
- g_lingo->_methodVars = new VarTypeHash;
-
- for (VarTypeHash::iterator i = g_lingo->_methodVarsStash->begin(); i != g_lingo->_methodVarsStash->end(); ++i) {
- if (i->_value == kVarGlobal || i->_value == kVarProperty)
- (*g_lingo->_methodVars)[i->_key] = i->_value;
- }
- if (g_lingo->_inFactory) {
- for (DatumHash::iterator i = g_lingo->_assemblyContext->_properties.begin(); i != g_lingo->_assemblyContext->_properties.end(); ++i) {
- (*g_lingo->_methodVars)[i->_key] = kVarInstance;
- }
- }
-}
-
-static void endDef() {
- g_lingo->clearArgStack();
- inNone();
-
- delete g_lingo->_methodVars;
- g_lingo->_methodVars = g_lingo->_methodVarsStash;
- g_lingo->_methodVarsStash = nullptr;
-}
-
-static void startRepeat() {
- g_lingo->_repeatStack.push_back(new RepeatBlock);
-}
-
-static void endRepeat(uint exitPos, uint nextPos) {
- RepeatBlock *block = g_lingo->_repeatStack.back();
- g_lingo->_repeatStack.pop_back();
- for (uint i = 0; i < block->exits.size(); i++) {
- uint32 pos = block->exits[i];
- inst exit = 0;
- WRITE_UINT32(&exit, exitPos - (pos - 1));
- (*g_lingo->_currentAssembly)[pos] = exit;
- }
- for (uint i = 0; i < block->nexts.size(); i++) {
- uint32 pos = block->nexts[i];
- inst next = 0;
- WRITE_UINT32(&next, nextPos - (pos - 1));
- (*g_lingo->_currentAssembly)[pos] = next;
- }
- delete block;
-}
-
-static VarType globalCheck() {
- // If in a definition, assume variables are local unless
- // they were declared global with `global varname`
- if (g_lingo->_indef == kStateInDef) {
- return kVarLocal;
- }
- return kVarGlobal;
-}
-
-static void mVar(Common::String *s, VarType type) {
- if (!g_lingo->_methodVars->contains(*s)) {
- (*g_lingo->_methodVars)[*s] = type;
- if (type == kVarProperty || type == kVarInstance) {
- g_lingo->_assemblyContext->_properties[*s] = Datum();
- } else if (type == kVarGlobal) {
- g_lingo->varCreate(*s, true);
- }
- }
-}
-
%}
%union {
@@ -182,29 +111,27 @@ static void mVar(Common::String *s, VarType type) {
int i;
double f;
int e[2]; // Entity + field
- int code;
- int narg; /* number of arguments */
- Director::DatumArray *arr;
struct {
Common::String *obj;
Common::String *prop;
} objectprop;
-}
-%token UNARY
+ Director::IDList *idlist;
+ Director::Node *node;
+ Director::NodeList *nodelist;
+}
-// Datum types
-%token VOID VAR POINT RECT ARRAY OBJECT LEXERROR PARRAY
-%token CASTREF FIELDREF CHUNKREF
-%token<i> INT ARGC ARGCNORET
+%token tUNARY
-%token<e> THEENTITY THEENTITYWITHID THEMENUITEMENTITY THEMENUITEMSENTITY
-%token<f> FLOAT
-%token<s> THEFUNC THEFUNCINOF
-%token<s> VARID STRING SYMBOL
-%token<s> ENDCLAUSE tPLAYACCEL tMETHOD
-%token<objectprop> THEOBJECTPROP
+%token tLEXERROR
+%token<i> tINT
+%token<e> tTHEENTITY tTHEENTITYWITHID tTHEMENUITEMENTITY tTHEMENUITEMSENTITY
+%token<f> tFLOAT
+%token<s> tTHEFUNC tTHEFUNCINOF
+%token<s> tVARID tSTRING tSYMBOL
+%token<s> tENDCLAUSE tPLAYACCEL
+%token<objectprop> tTHEOBJECTPROP
%token tCAST tFIELD tSCRIPT tWINDOW
%token tDOWN tELSE tELSIF tEXIT tGLOBAL tGO tGOLOOP tIF tIN tINTO tMACRO
%token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
@@ -212,587 +139,76 @@ static void mVar(Common::String *s, VarType type) {
%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
-%token tON tENDIF tENDREPEAT tENDTELL
+%token tON tMETHOD tENDIF tENDREPEAT tENDTELL
%token tASSERTERROR
-%type<code> asgn lbl expr if chunkexpr simpleexprnoparens
-%type<code> tellstart reference simpleexpr list valuelist
-%type<code> jump jumpifz varassign
-%type<narg> argdef arglist nonemptyarglist linearlist proplist
-%type<s> ID on
+// TOP-LEVEL STUFF
+%type<node> script scriptpart
+%type<nodelist> scriptpartlist
+
+// MACRO
+%type<node> macro
+
+// FACTORY
+%type<node> factory method
+%type<nodelist> methodlist nonemptymethodlist
+%type<node> methodlistline
+
+// HANDLER
+%type<node> handler
+
+// GENERIC VAR STUFF
+%type<s> ID
+%type<idlist> idlist nonemptyidlist
+
+// STATEMENT
+%type<node> stmt stmtoneliner proc definevars
+%type<nodelist> stmtlist nonemptystmtlist
+%type<node> stmtlistline
+
+// EXPRESSION
+%type<node> simpleexprnoparens simpleexpr expr
+%type<nodelist> exprlist nonemptyexprlist
%left tAND tOR
%left '<' tLE '>' tGE tEQ tNEQ tCONTAINS tSTARTS
%left '&' tCONCAT
%left '+' '-'
%left '*' '/' '%' tMOD
-%right UNARY tCAST tFIELD tSCRIPT tWINDOW
-%nonassoc VARID
+%right tUNARY
+// %right tCAST tFIELD tSCRIPT tWINDOW
+// %nonassoc tVARID
%destructor { delete $$; } <s>
%%
-program: programline
- | program '\n' programline
-
-programline: /* empty */
- | defn
- | stmt
+// TOP-LEVEL STUFF
-ID: VARID
- | tCAST { $$ = new Common::String("cast"); }
- | tFIELD { $$ = new Common::String("field"); }
- | tSCRIPT { $$ = new Common::String("script"); }
- | tWINDOW { $$ = new Common::String("window"); }
+script: scriptpartlist { g_lingo->_assemblyAST = new ScriptNode($scriptpartlist); } ;
-asgn: tPUT expr tINTO ID {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_assign);
- $$ = $expr;
- delete $ID; }
- | tPUT expr tINTO chunkexpr {
- g_lingo->code1(LC::c_assign);
- $$ = $expr; }
- // {put the number of menuItems of} menu into <expr>
- | tPUT THEMENUITEMSENTITY ID simpleexpr tINTO expr {
- if (!$ID->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
+scriptpartlist: scriptpart[item] {
+ NodeList *list = new NodeList;
+ if ($item) {
+ list->push_back($item);
}
-
- g_lingo->code1(LC::c_themenuentitypush);
- g_lingo->codeInt($THEMENUITEMSENTITY[0]);
- g_lingo->codeInt($THEMENUITEMSENTITY[1]);
- g_lingo->code1(LC::c_assign);
- $$ = $expr; }
- | tPUT expr tAFTER ID {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_putafter);
- $$ = $expr;
- delete $ID; } // D3
- | tPUT expr tAFTER chunkexpr {
- g_lingo->code1(LC::c_putafter);
- $$ = $expr; }
- | tPUT expr tBEFORE ID {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_putbefore);
- $$ = $expr;
- delete $ID; } // D3
- | tPUT expr tBEFORE chunkexpr {
- g_lingo->code1(LC::c_putbefore);
- $$ = $expr; }
- | tSET ID tEQ expr {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_assign);
- $$ = $expr;
- delete $ID; }
- | tSET THEENTITY tEQ expr {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt($THEENTITY[0]);
- g_lingo->codeInt($THEENTITY[1]);
- $$ = $expr; }
- | tSET ID tTO expr {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_assign);
- $$ = $expr;
- delete $ID; }
- | tSET THEENTITY tTO expr {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt($THEENTITY[0]);
- g_lingo->codeInt($THEENTITY[1]);
- $$ = $expr; }
- | tSET THEENTITYWITHID expr[entityId] tTO expr[value] {
- g_lingo->code1(LC::c_swap);
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt($THEENTITYWITHID[0]);
- g_lingo->codeInt($THEENTITYWITHID[1]);
- $$ = $value; }
- | tSET THEENTITYWITHID expr[entityId] tEQ expr[value] {
- g_lingo->code1(LC::c_swap);
- g_lingo->code1(LC::c_theentityassign);
- g_lingo->codeInt($THEENTITYWITHID[0]);
- g_lingo->codeInt($THEENTITYWITHID[1]);
- $$ = $value; }
- // the <field> of menuItem <expr> of menu <expr>
- | tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr {
- if (!$ID->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
+ $$ = list; }
+ | scriptpartlist[prev] scriptpart[item] {
+ if ($item) {
+ $prev->push_back($item);
}
+ $$ = $prev; }
+ ;
- warning("STUB: menuItem entity");
- g_lingo->code1(LC::c_themenuitementityassign);
- g_lingo->codeInt($THEMENUITEMENTITY[0]);
- g_lingo->codeInt($THEMENUITEMENTITY[1]);
- $$ = $expr; }
- | tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tEQ expr {
- if (!$ID->equalsIgnoreCase("menu")) {
- warning("LEXER: keyword 'menu' expected");
- YYERROR;
- }
+scriptpart: '\n' { $$ = nullptr; }
+ | macro
+ | factory
+ | handler
+ | stmt '\n'
+ ;
- warning("STUB: menuItem entity");
- g_lingo->code1(LC::c_themenuitementityassign);
- g_lingo->codeInt($THEMENUITEMENTITY[0]);
- g_lingo->codeInt($THEMENUITEMENTITY[1]);
- $$ = $expr; }
- | tSET THEOBJECTPROP tTO expr {
- g_lingo->code1(LC::c_objectpropassign);
- g_lingo->codeString($THEOBJECTPROP.obj->c_str());
- g_lingo->codeString($THEOBJECTPROP.prop->c_str());
- delete $THEOBJECTPROP.obj;
- delete $THEOBJECTPROP.prop;
- $$ = $expr; }
- | tSET THEOBJECTPROP tEQ expr {
- g_lingo->code1(LC::c_objectpropassign);
- g_lingo->codeString($THEOBJECTPROP.obj->c_str());
- g_lingo->codeString($THEOBJECTPROP.prop->c_str());
- delete $THEOBJECTPROP.obj;
- delete $THEOBJECTPROP.prop;
- $$ = $expr; }
-
-stmtoneliner: asgn
- | proc
-
-stmt: stmtoneliner
- | ifstmt
- // repeat while (expression = TRUE)
- // statements
- // end repeat
- //
- | tREPEAT tWHILE lbl expr jumpifz[body] startrepeat stmtlist jump[end2] tENDREPEAT {
- inst start = 0, end = 0;
- WRITE_UINT32(&start, $lbl - $end2 + 1);
- WRITE_UINT32(&end, $end2 - $body + 2);
- (*g_lingo->_currentAssembly)[$body] = end; /* end, if cond fails */
- (*g_lingo->_currentAssembly)[$end2] = start; /* looping back */
- endRepeat($end2 + 1, $lbl); } /* code any exit/next repeats */
-
- // repeat with index = start to end
- // statements
- // end repeat
- //
- | tREPEAT tWITH ID tEQ expr[init]
- { g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck()); }
- varassign
- { g_lingo->code1(LC::c_eval);
- g_lingo->codeString($ID->c_str()); }
- tTO expr[finish]
- { g_lingo->code1(LC::c_le); } jumpifz startrepeat stmtlist tENDREPEAT {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_eval);
- g_lingo->codeString($ID->c_str());
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_add);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- g_lingo->code1(LC::c_assign);
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, $varassign - pos + 2);
- WRITE_UINT32(&end, pos - $jumpifz + 2);
- (*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[$jumpifz] = end; /* end, if cond fails */
- endRepeat(pos + 1, nextPos); } /* code any exit/next repeats */
-
-
- // repeat with index = high down to low
- // statements
- // end repeat
- //
- | tREPEAT tWITH ID tEQ expr[init]
- { g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck()); }
- varassign
- { g_lingo->code1(LC::c_eval);
- g_lingo->codeString($ID->c_str()); }
- tDOWN tTO expr[finish]
- { g_lingo->code1(LC::c_ge); }
- jumpifz startrepeat stmtlist tENDREPEAT {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_eval);
- g_lingo->codeString($ID->c_str());
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_sub);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- g_lingo->code1(LC::c_assign);
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, $varassign - pos + 2);
- WRITE_UINT32(&end, pos - $jumpifz + 2);
- (*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[$jumpifz] = end; /* end, if cond fails */
- endRepeat(pos + 1, nextPos); } /* code any exit/next repeats */
-
- // repeat with index in list
- // statements
- // end repeat
- //
- | tREPEAT tWITH ID tIN expr
- { g_lingo->code1(LC::c_stackpeek);
- g_lingo->codeInt(0);
- Common::String count("count");
- g_lingo->codeFunc(&count, 1);
- g_lingo->code1(LC::c_intpush); // start counter
- g_lingo->codeInt(1); }
- lbl
- { g_lingo->code1(LC::c_stackpeek); // get counter
- g_lingo->codeInt(0);
- g_lingo->code1(LC::c_stackpeek); // get array size
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_le); }
- jumpifz
- { g_lingo->code1(LC::c_stackpeek); // get list
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_stackpeek); // get counter
- g_lingo->codeInt(1);
- Common::String getAt("getAt");
- g_lingo->codeFunc(&getAt, 2);
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($ID->c_str());
- mVar($ID, globalCheck());
- g_lingo->code1(LC::c_assign); }
- startrepeat stmtlist tENDREPEAT {
-
- int nextPos = g_lingo->_currentAssembly->size();
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_add); // Increment counter
-
- int jump = g_lingo->code2(LC::c_jump, 0);
-
- int end2 = g_lingo->code1(LC::c_stackdrop); // remove list, size, counter
- g_lingo->codeInt(3);
-
- inst loop = 0, end = 0;
- WRITE_UINT32(&loop, $lbl - jump);
- WRITE_UINT32(&end, end2 - $jumpifz + 1);
-
- (*g_lingo->_currentAssembly)[jump + 1] = loop; /* final count value */
- (*g_lingo->_currentAssembly)[$jumpifz] = end; /* end, if cond fails */
- endRepeat(end2, nextPos); } /* code any exit/next repeats */
-
- | tNEXT tREPEAT {
- if (g_lingo->_repeatStack.size()) {
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
- g_lingo->_repeatStack.back()->nexts.push_back(pos);
- } else {
- warning("# LINGO: next repeat not inside repeat block");
- } }
- | tWHEN ID tTHEN expr {
- g_lingo->code1(LC::c_whencode);
- g_lingo->codeString($ID->c_str()); }
- | tTELL expr '\n' tellstart stmtlist lbl tENDTELL { g_lingo->code1(LC::c_telldone); }
- | tTELL expr tTO tellstart stmtoneliner lbl { g_lingo->code1(LC::c_telldone); }
- | tASSERTERROR asserterrorstart stmtoneliner { g_lingo->code1(LC::c_asserterrordone); }
- | error '\n' { yyerrok; }
-
-startrepeat: /* nothing */ { startRepeat(); }
-
-tellstart: /* empty */ { g_lingo->code1(LC::c_tell); }
-
-asserterrorstart: /* empty */ { g_lingo->code1(LC::c_asserterror); }
-
-ifstmt: if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist lbl[end3] tENDIF {
- inst else1 = 0, end3 = 0;
- WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
- WRITE_UINT32(&end3, $end3 - $else1 + 1);
- (*g_lingo->_currentAssembly)[$then] = else1; /* elsepart */
- (*g_lingo->_currentAssembly)[$else1] = end3; /* end, if cond fails */
- g_lingo->processIf($else1, $end3); }
- | if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist tELSE stmtlist lbl[end3] tENDIF {
- inst else1 = 0, end = 0;
- WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
- WRITE_UINT32(&end, $end3 - $else1 + 1);
- (*g_lingo->_currentAssembly)[$then] = else1; /* elsepart */
- (*g_lingo->_currentAssembly)[$else1] = end; /* end, if cond fails */
- g_lingo->processIf($else1, $end3); }
-
-elseifstmtlist: /* nothing */
- | elseifstmtlist elseifstmt
-
-elseifstmt: tELSIF expr jumpifz[then] tTHEN stmtlist jump[end3] {
- inst else1 = 0;
- WRITE_UINT32(&else1, $end3 + 1 - $then + 1);
- (*g_lingo->_currentAssembly)[$then] = else1; /* end, if cond fails */
- g_lingo->codeLabel($end3); }
-
-jumpifz: /* nothing */ {
- g_lingo->code2(LC::c_jumpifz, 0);
- $$ = g_lingo->_currentAssembly->size() - 1; }
-
-jump: /* nothing */ {
- g_lingo->code2(LC::c_jump, 0);
- $$ = g_lingo->_currentAssembly->size() - 1; }
-
-varassign: /* nothing */ {
- g_lingo->code1(LC::c_assign);
- $$ = g_lingo->_currentAssembly->size() - 1; }
-
-if: tIF {
- g_lingo->codeLabel(0); } // Mark beginning of the if() statement
-
-lbl: /* nothing */ { $$ = g_lingo->_currentAssembly->size(); }
-
-stmtlist: stmtlistline
- | stmtlistline '\n' stmtlist
-
-stmtlistline: /* empty */
- | stmt
-
-simpleexprnoparens: INT {
- $$ = g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt($INT); }
- | FLOAT {
- $$ = g_lingo->code1(LC::c_floatpush);
- g_lingo->codeFloat($FLOAT); }
- | SYMBOL { // D3
- $$ = g_lingo->code1(LC::c_symbolpush);
- g_lingo->codeString($SYMBOL->c_str());
- delete $SYMBOL; }
- | STRING {
- $$ = g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString($STRING->c_str());
- delete $STRING; }
- | '+' simpleexpr[arg] %prec UNARY { $$ = $arg; }
- | '-' simpleexpr[arg] %prec UNARY { $$ = $arg; g_lingo->code1(LC::c_negate); }
- | tNOT simpleexpr %prec UNARY { g_lingo->code1(LC::c_not); }
- | reference
- | THEENTITY {
- $$ = g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(0); // Put dummy id
- g_lingo->code1(LC::c_theentitypush);
- inst e = 0, f = 0;
- WRITE_UINT32(&e, $THEENTITY[0]);
- WRITE_UINT32(&f, $THEENTITY[1]);
- g_lingo->code2(e, f); }
- | THEENTITYWITHID simpleexpr {
- $$ = g_lingo->code1(LC::c_theentitypush);
- inst e = 0, f = 0;
- WRITE_UINT32(&e, $THEENTITYWITHID[0]);
- WRITE_UINT32(&f, $THEENTITYWITHID[1]);
- g_lingo->code2(e, f); }
- | THEFUNCINOF simpleexpr {
- $$ = g_lingo->codeFunc($THEFUNCINOF, 1);
- delete $THEFUNCINOF; }
- | THEFUNC tOF simpleexpr {
- $$ = g_lingo->codeFunc($THEFUNC, 1);
- delete $THEFUNC; }
- | THEOBJECTPROP {
- g_lingo->code1(LC::c_objectproppush);
- g_lingo->codeString($THEOBJECTPROP.obj->c_str());
- g_lingo->codeString($THEOBJECTPROP.prop->c_str());
- delete $THEOBJECTPROP.obj;
- delete $THEOBJECTPROP.prop; }
- | tSPRITE expr tINTERSECTS simpleexpr { g_lingo->code1(LC::c_intersects); }
- | tSPRITE expr tWITHIN simpleexpr { g_lingo->code1(LC::c_within); }
- | list
- | ID[func] '(' ID[method] ')' {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($method->c_str());
- g_lingo->codeFunc($func, 1);
- delete $func;
- delete $method; }
- | ID[func] '(' ID[method] ',' { g_lingo->code1(LC::c_varpush); g_lingo->codeString($method->c_str()); }
- nonemptyarglist ')' {
- g_lingo->codeFunc($func, $nonemptyarglist + 1);
- delete $func;
- delete $method; }
- | ID '(' arglist ')' {
- $$ = g_lingo->codeFunc($ID, $arglist);
- delete $ID; }
- | ID {
- if (g_lingo->_builtinConsts.contains(*$ID)) {
- $$ = g_lingo->code1(LC::c_constpush);
- } else {
- $$ = g_lingo->code1(LC::c_eval);
- }
- g_lingo->codeString($ID->c_str());
- delete $ID; }
+// MACRO
-simpleexpr: simpleexprnoparens
- | '(' expr[arg] ')' { $$ = $arg; }
-
-expr: simpleexpr { $$ = $simpleexpr; }
- | expr '+' expr { g_lingo->code1(LC::c_add); }
- | expr '-' expr { g_lingo->code1(LC::c_sub); }
- | expr '*' expr { g_lingo->code1(LC::c_mul); }
- | expr '/' expr { g_lingo->code1(LC::c_div); }
- | expr tMOD expr { g_lingo->code1(LC::c_mod); }
- | expr '>' expr { g_lingo->code1(LC::c_gt); }
- | expr '<' expr { g_lingo->code1(LC::c_lt); }
- | expr tEQ expr { g_lingo->code1(LC::c_eq); }
- | expr tNEQ expr { g_lingo->code1(LC::c_neq); }
- | expr tGE expr { g_lingo->code1(LC::c_ge); }
- | expr tLE expr { g_lingo->code1(LC::c_le); }
- | expr tAND expr { g_lingo->code1(LC::c_and); }
- | expr tOR expr { g_lingo->code1(LC::c_or); }
- | expr '&' expr { g_lingo->code1(LC::c_ampersand); }
- | expr tCONCAT expr { g_lingo->code1(LC::c_concat); }
- | expr tCONTAINS expr { g_lingo->code1(LC::c_contains); }
- | expr tSTARTS expr { g_lingo->code1(LC::c_starts); }
-
-chunkexpr: tFIELD simpleexprnoparens {
- Common::String field("field");
- g_lingo->codeFunc(&field, 1); }
- | tCAST simpleexprnoparens {
- Common::String cast("cast");
- g_lingo->codeFunc(&cast, 1); }
- | tCHAR expr tOF simpleexpr { g_lingo->code1(LC::c_charOf); }
- | tCHAR expr tTO expr tOF simpleexpr { g_lingo->code1(LC::c_charToOf); }
- | tITEM expr tOF simpleexpr { g_lingo->code1(LC::c_itemOf); }
- | tITEM expr tTO expr tOF simpleexpr { g_lingo->code1(LC::c_itemToOf); }
- | tLINE expr tOF simpleexpr { g_lingo->code1(LC::c_lineOf); }
- | tLINE expr tTO expr tOF simpleexpr { g_lingo->code1(LC::c_lineToOf); }
- | tWORD expr tOF simpleexpr { g_lingo->code1(LC::c_wordOf); }
- | tWORD expr tTO expr tOF simpleexpr { g_lingo->code1(LC::c_wordToOf); }
-
-reference: chunkexpr
- | tSCRIPT simpleexprnoparens {
- Common::String script("script");
- g_lingo->codeFunc(&script, 1); }
- | tWINDOW simpleexprnoparens {
- Common::String window("window");
- g_lingo->codeFunc(&window, 1); }
-
-proc: tPUT expr {
- Common::String put("put");
- g_lingo->codeCmd(&put, 1); }
- | gotofunc
- | playfunc
- | tEXIT tREPEAT {
- if (g_lingo->_repeatStack.size()) {
- g_lingo->code2(LC::c_jump, 0);
- int pos = g_lingo->_currentAssembly->size() - 1;
- g_lingo->_repeatStack.back()->exits.push_back(pos);
- } else {
- warning("# LINGO: exit repeat not inside repeat block");
- } }
- | tEXIT { g_lingo->code1(LC::c_procret); }
- | tGLOBAL { inArgs(); } globallist { inLast(); }
- | tPROPERTY { inArgs(); } propertylist { inLast(); }
- | tINSTANCE { inArgs(); } instancelist { inLast(); }
- | tOPEN expr tWITH expr {
- Common::String open("open");
- g_lingo->codeCmd(&open, 2); }
- | tOPEN expr {
- Common::String open("open");
- g_lingo->codeCmd(&open, 1); }
- | ID[func] '(' ID[method] ')' {
- g_lingo->code1(LC::c_varpush);
- g_lingo->codeString($method->c_str());
- g_lingo->codeCmd($func, 1);
- delete $func;
- delete $method; }
- | ID[func] '(' ID[method] ',' { g_lingo->code1(LC::c_varpush); g_lingo->codeString($method->c_str()); }
- nonemptyarglist ')' {
- g_lingo->codeCmd($func, $nonemptyarglist + 1);
- delete $func;
- delete $method; }
- | ID '(' arglist ')' {
- g_lingo->codeCmd($ID, $arglist);
- delete $ID; }
- | ID arglist {
- g_lingo->codeCmd($ID, $arglist);
- delete $ID; }
-
-globallist: /* nothing */
- | ID {
- mVar($ID, kVarGlobal);
- delete $ID; }
- | ID ',' globallist {
- mVar($ID, kVarGlobal);
- delete $ID; }
-
-propertylist: /* nothing */
- | ID {
- mVar($ID, kVarProperty);
- delete $ID; }
- | ID ',' propertylist {
- mVar($ID, kVarProperty);
- delete $ID; }
-
-instancelist: /* nothing */
- | ID {
- mVar($ID, kVarInstance);
- delete $ID; }
- | ID ',' instancelist {
- mVar($ID, kVarInstance);
- delete $ID; }
-
-// go {to} {frame} whichFrame {of movie whichMovie}
-// go {to} {frame "Open23" of} movie whichMovie
-// go loop
-// go next
-// go previous
-// go to {frame} whichFrame {of movie whichMovie}
-// go to {frame whichFrame of} movie whichMovie
-gotofunc: tGOLOOP { g_lingo->code1(LC::c_gotoloop); }
- | tGO tNEXT { g_lingo->code1(LC::c_gotonext); }
- | tGO tPREVIOUS { g_lingo->code1(LC::c_gotoprevious); }
- | tGO expr {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_goto); }
- | tGO expr gotomovie {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(3);
- g_lingo->code1(LC::c_goto); }
- | tGO gotomovie {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_goto); }
-
-gotomovie: tOF tMOVIE expr
- | tMOVIE expr
-
-playfunc: tPLAY expr { // "play #done" is also caught by this
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(1);
- g_lingo->code1(LC::c_play); }
- | tPLAY expr gotomovie {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(3);
- g_lingo->code1(LC::c_play); }
- | tPLAY gotomovie {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(2);
- g_lingo->code1(LC::c_play); }
- | tPLAYACCEL { g_lingo->codeSetImmediate(true); } arglist {
- g_lingo->codeSetImmediate(false);
- g_lingo->codeCmd($tPLAYACCEL, $arglist);
- delete $tPLAYACCEL; }
-
-// macro
-//
// Special Note The macro keyword is retained in Director 3.0 to maintain compatibility
// with scripts developed under Version 2.0. When writing new scripts, or editing old
// scripts, you should use handlers instead of macros. (Handlers are defined with the on keyword.)
@@ -816,85 +232,206 @@ playfunc: tPLAY expr { // "play #done" is also caught by this
//
// See also:
// on keyword
-defn: tMACRO { startDef(); } ID
- lbl argdef '\n' argstore stmtlist {
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*$ID, $lbl, $argdef);
- endDef();
- delete $ID; }
- | tFACTORY ID { g_lingo->codeFactory(*$ID); delete $ID; }
- | tMETHOD {
- startDef();
- Common::String me("me");
- g_lingo->codeArg(&me);
- mVar(&me, kVarArgument);
- } lbl argdef '\n' argstore stmtlist {
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*$tMETHOD, $lbl, $argdef + 1);
- endDef();
- delete $tMETHOD; }
- | on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef { // D3
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*$on, $lbl, $argdef);
- endDef();
-
- checkEnd($ENDCLAUSE, $on->c_str(), false);
- delete $on;
- delete $ENDCLAUSE; }
- | on lbl argdef '\n' argstore stmtlist { // D4. No 'end' clause
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*$on, $lbl, $argdef);
- endDef();
- delete $on; }
-
-on: tON { startDef(); } ID { $$ = $ID; }
-
-argname: ID { g_lingo->codeArg($ID); mVar($ID, kVarArgument); delete $ID; }
-
-argdef: /* nothing */ { $$ = 0; }
- | argname { $$ = 1; }
- | argname ',' argdef { $$ = $3 + 1; }
-endargdef: /* nothing */
- | ID { delete $ID; }
- | endargdef ',' ID { delete $ID; }
+macro: tMACRO ID idlist '\n' stmtlist { $$ = new HandlerNode($ID, $idlist, $stmtlist); } ;
-argstore: /* nothing */ { inDef(); }
+// FACTORY
-arglist: /* nothing */ { $$ = 0; }
- | expr { $$ = 1; }
- | expr ',' arglist { $$ = $3 + 1; }
+factory: tFACTORY ID '\n' methodlist { $$ = new FactoryNode($ID, $methodlist); } ;
-nonemptyarglist: expr { $$ = 1; }
- | expr ',' { $$ = 1; }
- | expr ',' nonemptyarglist { $$ = $3 + 1; }
+method: tMETHOD ID idlist '\n' stmtlist { $$ = new HandlerNode($ID, $idlist, $stmtlist); } ;
-list: '[' valuelist ']' { $$ = $valuelist; }
+methodlist: /* empty */ { $$ = new NodeList; }
+ | nonemptymethodlist
+ ;
-valuelist: /* nothing */ { $$ = g_lingo->code2(LC::c_arraypush, 0); }
- | ':' { $$ = g_lingo->code2(LC::c_proparraypush, 0); }
- | proplist { $$ = g_lingo->code1(LC::c_proparraypush); $$ = g_lingo->codeInt($proplist); }
- | linearlist { $$ = g_lingo->code1(LC::c_arraypush); $$ = g_lingo->codeInt($linearlist); }
+nonemptymethodlist: methodlistline[item] {
+ NodeList *list = new NodeList;
+ if ($item) {
+ list->push_back($item);
+ }
+ $$ = list; }
+ | methodlist[prev] '\n' methodlistline[item] {
+ if ($item) {
+ $prev->push_back($item);
+ }
+ $$ = $prev; }
+ ;
+
+methodlistline: '\n' { $$ = nullptr; }
+ | method
+ ;
+
+// HANDLER
+
+handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' { // D3
+ $$ = new HandlerNode($ID, $idlist, $stmtlist);
+ checkEnd($tENDCLAUSE, $ID, false);
+ delete $tENDCLAUSE; }
+ | tON ID idlist '\n' stmtlist { // D4. No 'end' clause
+ $$ = new HandlerNode($ID, $idlist, $stmtlist); }
+ ;
-linearlist: expr { $$ = 1; }
- | linearlist ',' expr { $$ = $1 + 1; }
+endargdef: /* nothing */
+ | ID { delete $ID; }
+ | endargdef ',' ID { delete $ID; }
+ ;
-proplist: proppair { $$ = 1; }
- | proplist ',' proppair { $$ = $1 + 1; }
+// GENERIC VAR STUFF
-proppair: SYMBOL ':' expr {
- g_lingo->code1(LC::c_symbolpush);
- g_lingo->codeString($SYMBOL->c_str());
- delete $SYMBOL; }
- | STRING ':' expr {
- g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString($STRING->c_str());
- delete $STRING; }
- | ID ':' expr {
- g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString($ID->c_str());
- delete $ID; }
+ID: tVARID
+ | tAFTER { $$ = new Common::String("after"); }
+ | tAND { $$ = new Common::String("and"); }
+ | tBEFORE { $$ = new Common::String("before"); }
+ | tCAST { $$ = new Common::String("cast"); }
+ | tCHAR { $$ = new Common::String("char"); }
+ | tDOWN { $$ = new Common::String("down"); }
+ // tENDCLAUSE
+ // tELSE
+ | tEXIT { $$ = new Common::String("exit"); }
+ // tFACTORY
+ | tFIELD { $$ = new Common::String("field"); }
+ // | tGLOBAL { $$ = new Common::String("global"); }
+ // tIF
+ | tIN { $$ = new Common::String("in"); }
+ // | tINSTANCE { $$ = new Common::String("instance"); }
+ | tINTERSECTS { $$ = new Common::String("intersects"); }
+ | tINTO { $$ = new Common::String("into"); }
+ | tITEM { $$ = new Common::String("item"); }
+ | tLINE { $$ = new Common::String("line"); }
+ // | tMACRO { $$ = new Common::String("macro"); }
+ // | tMETHOD { $$ = new Common::String("method"); }
+ | tMOD { $$ = new Common::String("mod"); }
+ | tMOVIE { $$ = new Common::String("movie"); }
+ | tNEXT { $$ = new Common::String("next"); }
+ | tNOT { $$ = new Common::String("not"); }
+ | tOF { $$ = new Common::String("of"); }
+ // | tON { $$ = new Common::String("on"); }
+ | tOPEN { $$ = new Common::String("open"); }
+ | tOR { $$ = new Common::String("or"); }
+ | tPLAY { $$ = new Common::String("play"); } // FIXME: lexer includes "play frame"
+ | tPLAYACCEL { $$ = new Common::String("playAccel"); }
+ | tPREVIOUS { $$ = new Common::String("previous"); }
+ // | tPROPERTY { $$ = new Common::String("property"); }
+ | tPUT { $$ = new Common::String("put"); }
+ | tREPEAT { $$ = new Common::String("repeat"); }
+ | tSCRIPT { $$ = new Common::String("script"); }
+ | tSET { $$ = new Common::String("set"); }
+ | tSTARTS { $$ = new Common::String("starts"); }
+ | tTELL { $$ = new Common::String("tell"); }
+ // tTHEN
+ | tTO { $$ = new Common::String("to"); }
+ | tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
+ | tSPRITE { $$ = new Common::String("sprite"); }
+ | tWHEN { $$ = new Common::String("when"); }
+ | tWHILE { $$ = new Common::String("while"); }
+ | tWINDOW { $$ = new Common::String("window"); }
+ | tWITH { $$ = new Common::String("with"); }
+ | tWITHIN { $$ = new Common::String("within"); }
+ | tWORD { $$ = new Common::String("word"); }
+ ;
+
+idlist: /* empty */ { $$ = new IDList; }
+ | nonemptyidlist
+ ;
+
+nonemptyidlist: ID[item] {
+ Common::Array<Common::String *> *list = new IDList;
+ list->push_back($item);
+ $$ = list; }
+ | nonemptyidlist[prev] ',' ID[item] {
+ $prev->push_back($item);
+ $$ = $prev; }
+ ;
+
+// STATEMENT
+
+stmt: stmtoneliner ;
+
+stmtoneliner: proc
+ | definevars
+ ;
+
+proc: ID '(' exprlist[args] ')' { $$ = new CmdNode($ID, $args); }
+ | ID exprlist[args] { $$ = new CmdNode($ID, $args); }
+ ;
+
+definevars: tGLOBAL idlist { $$ = new GlobalNode($idlist); }
+ | tPROPERTY idlist { $$ = new PropertyNode($idlist); }
+ | tINSTANCE idlist { $$ = new InstanceNode($idlist); }
+ ;
+
+stmtlist: /* empty */ { $$ = new NodeList; }
+ | nonemptystmtlist
+ ;
+
+nonemptystmtlist:
+ stmtlistline[item] {
+ NodeList *list = new NodeList;
+ if ($item) {
+ list->push_back($item);
+ }
+ $$ = list; }
+ | stmtlist[prev] stmtlistline[item] {
+ if ($item) {
+ $prev->push_back($item);
+ }
+ $$ = $prev; }
+ ;
+
+stmtlistline: '\n' { $$ = nullptr; }
+ | stmt '\n'
+ ;
+
+// EXPRESSION
+
+simpleexprnoparens: tINT { $$ = new IntNode($tINT); }
+ | tFLOAT { $$ = new FloatNode($tFLOAT); }
+ | tSYMBOL { $$ = new SymbolNode($tSYMBOL); } // D3
+ | tSTRING { $$ = new StringNode($tSTRING); }
+ | '+' simpleexpr[arg] %prec tUNARY { $$ = $arg; }
+ | '-' simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_negate, $arg); }
+ | tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
+ | ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
+ | ID { $$ = new VarNode($ID); }
+ ;
+simpleexpr: simpleexprnoparens
+ | '(' expr ')' { $$ = $expr; }
+ ;
+
+expr: simpleexpr { $$ = $simpleexpr; }
+ | expr[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
+ | expr[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
+ | expr[a] '*' expr[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
+ | expr[a] '/' expr[b] { $$ = new BinaryOpNode(LC::c_div, $a, $b); }
+ | expr[a] tMOD expr[b] { $$ = new BinaryOpNode(LC::c_mod, $a, $b); }
+ | expr[a] '>' expr[b] { $$ = new BinaryOpNode(LC::c_gt, $a, $b); }
+ | expr[a] '<' expr[b] { $$ = new BinaryOpNode(LC::c_lt, $a, $b); }
+ | expr[a] tEQ expr[b] { $$ = new BinaryOpNode(LC::c_eq, $a, $b); }
+ | expr[a] tNEQ expr[b] { $$ = new BinaryOpNode(LC::c_neq, $a, $b); }
+ | expr[a] tGE expr[b] { $$ = new BinaryOpNode(LC::c_ge, $a, $b); }
+ | expr[a] tLE expr[b] { $$ = new BinaryOpNode(LC::c_le, $a, $b); }
+ | expr[a] tAND expr[b] { $$ = new BinaryOpNode(LC::c_and, $a, $b); }
+ | expr[a] tOR expr[b] { $$ = new BinaryOpNode(LC::c_or, $a, $b); }
+ | expr[a] '&' expr[b] { $$ = new BinaryOpNode(LC::c_ampersand, $a, $b); }
+ | expr[a] tCONCAT expr[b] { $$ = new BinaryOpNode(LC::c_concat, $a, $b); }
+ | expr[a] tCONTAINS expr[b] { $$ = new BinaryOpNode(LC::c_contains, $a, $b); }
+ | expr[a] tSTARTS expr[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
+ ;
+
+exprlist: /* empty */ { $$ = new NodeList; }
+ | nonemptyexprlist
+ ;
+
+nonemptyexprlist: expr[item] {
+ NodeList *list = new NodeList;
+ list->push_back($item);
+ $$ = list; }
+ | nonemptyexprlist[prev] ',' expr[item] {
+ $prev->push_back($item);
+ $$ = $prev; }
+ ;
%%
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 4e01c278d9..4a6358a57b 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -756,6 +756,7 @@ char *yytext;
#include "director/director.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-the.h"
@@ -812,8 +813,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 815 "engines/director/lingo/lingo-lex.cpp"
#line 816 "engines/director/lingo/lingo-lex.cpp"
+#line 817 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1033,10 +1034,10 @@ YY_DECL
}
{
-#line 105 "engines/director/lingo/lingo-lex.l"
+#line 106 "engines/director/lingo/lingo-lex.l"
-#line 1039 "engines/director/lingo/lingo-lex.cpp"
+#line 1040 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1092,67 +1093,67 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 107 "engines/director/lingo/lingo-lex.l"
+#line 108 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 109 "engines/director/lingo/lingo-lex.l"
+#line 110 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 111 "engines/director/lingo/lingo-lex.l"
+#line 112 "engines/director/lingo/lingo-lex.l"
{ count(); return tAFTER; } // D3
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 112 "engines/director/lingo/lingo-lex.l"
+#line 113 "engines/director/lingo/lingo-lex.l"
{ count(); return tAND; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 113 "engines/director/lingo/lingo-lex.l"
+#line 114 "engines/director/lingo/lingo-lex.l"
{ count(); return tBEFORE; } // D3
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 114 "engines/director/lingo/lingo-lex.l"
+#line 115 "engines/director/lingo/lingo-lex.l"
{ count(); return tCAST; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 115 "engines/director/lingo/lingo-lex.l"
+#line 116 "engines/director/lingo/lingo-lex.l"
{ count(); return tCHAR; } // D3
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 116 "engines/director/lingo/lingo-lex.l"
+#line 117 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONTAINS; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 117 "engines/director/lingo/lingo-lex.l"
+#line 118 "engines/director/lingo/lingo-lex.l"
{ count(); return tDOWN; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 118 "engines/director/lingo/lingo-lex.l"
+#line 119 "engines/director/lingo/lingo-lex.l"
{ count(); return tIF; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 119 "engines/director/lingo/lingo-lex.l"
+#line 120 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSIF; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 120 "engines/director/lingo/lingo-lex.l"
+#line 121 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSE; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 121 "engines/director/lingo/lingo-lex.l"
+#line 122 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1169,182 +1170,182 @@ YY_RULE_SETUP
yylval.s = new Common::String(ptr);
- return ENDCLAUSE;
+ return tENDCLAUSE;
}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 139 "engines/director/lingo/lingo-lex.l"
+#line 140 "engines/director/lingo/lingo-lex.l"
{ count(); return tFACTORY; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 140 "engines/director/lingo/lingo-lex.l"
+#line 141 "engines/director/lingo/lingo-lex.l"
{ count(); return tEXIT; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 141 "engines/director/lingo/lingo-lex.l"
+#line 142 "engines/director/lingo/lingo-lex.l"
{ count(); return tFIELD; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 142 "engines/director/lingo/lingo-lex.l"
+#line 143 "engines/director/lingo/lingo-lex.l"
{ count(); return tGLOBAL; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 143 "engines/director/lingo/lingo-lex.l"
+#line 144 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 144 "engines/director/lingo/lingo-lex.l"
+#line 145 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 145 "engines/director/lingo/lingo-lex.l"
+#line 146 "engines/director/lingo/lingo-lex.l"
{ count(); return tGOLOOP; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 146 "engines/director/lingo/lingo-lex.l"
+#line 147 "engines/director/lingo/lingo-lex.l"
{ count(); return tINSTANCE; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 147 "engines/director/lingo/lingo-lex.l"
+#line 148 "engines/director/lingo/lingo-lex.l"
{ count(); return tINTERSECTS;}
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 148 "engines/director/lingo/lingo-lex.l"
+#line 149 "engines/director/lingo/lingo-lex.l"
{ count(); return tINTO; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 149 "engines/director/lingo/lingo-lex.l"
+#line 150 "engines/director/lingo/lingo-lex.l"
{ count(); return tIN; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 150 "engines/director/lingo/lingo-lex.l"
+#line 151 "engines/director/lingo/lingo-lex.l"
{ count(); return tITEM; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 151 "engines/director/lingo/lingo-lex.l"
+#line 152 "engines/director/lingo/lingo-lex.l"
{ count(); return tLINE; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 152 "engines/director/lingo/lingo-lex.l"
+#line 153 "engines/director/lingo/lingo-lex.l"
{ count(); return tMACRO;; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 153 "engines/director/lingo/lingo-lex.l"
+#line 154 "engines/director/lingo/lingo-lex.l"
{ count(); return tMETHOD; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 154 "engines/director/lingo/lingo-lex.l"
+#line 155 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOD;}
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 155 "engines/director/lingo/lingo-lex.l"
+#line 156 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOVIE; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 156 "engines/director/lingo/lingo-lex.l"
+#line 157 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEXT; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 157 "engines/director/lingo/lingo-lex.l"
+#line 158 "engines/director/lingo/lingo-lex.l"
{ count(); return tNOT; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 158 "engines/director/lingo/lingo-lex.l"
+#line 159 "engines/director/lingo/lingo-lex.l"
{ count(); return tOF; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 159 "engines/director/lingo/lingo-lex.l"
-{ count(); return tON } // D3
+#line 160 "engines/director/lingo/lingo-lex.l"
+{ count(); return tON; } // D3
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 160 "engines/director/lingo/lingo-lex.l"
+#line 161 "engines/director/lingo/lingo-lex.l"
{ count(); return tOPEN; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 161 "engines/director/lingo/lingo-lex.l"
+#line 162 "engines/director/lingo/lingo-lex.l"
{ count(); return tOR; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 162 "engines/director/lingo/lingo-lex.l"
+#line 163 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 163 "engines/director/lingo/lingo-lex.l"
+#line 164 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 164 "engines/director/lingo/lingo-lex.l"
+#line 165 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAYACCEL; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 165 "engines/director/lingo/lingo-lex.l"
+#line 166 "engines/director/lingo/lingo-lex.l"
{ count(); return tPREVIOUS; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 166 "engines/director/lingo/lingo-lex.l"
+#line 167 "engines/director/lingo/lingo-lex.l"
{ count(); return tPROPERTY; } // D4
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 167 "engines/director/lingo/lingo-lex.l"
+#line 168 "engines/director/lingo/lingo-lex.l"
{ count(); return tPUT; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 168 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
{ count(); return tREPEAT; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 169 "engines/director/lingo/lingo-lex.l"
+#line 170 "engines/director/lingo/lingo-lex.l"
{ count(); return tSCRIPT; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 170 "engines/director/lingo/lingo-lex.l"
+#line 171 "engines/director/lingo/lingo-lex.l"
{ count(); return tSET; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 171 "engines/director/lingo/lingo-lex.l"
+#line 172 "engines/director/lingo/lingo-lex.l"
{ count(); return tSTARTS; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 172 "engines/director/lingo/lingo-lex.l"
+#line 173 "engines/director/lingo/lingo-lex.l"
{ count(); return tTELL; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 173 "engines/director/lingo/lingo-lex.l"
+#line 174 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1368,22 +1369,22 @@ YY_RULE_SETUP
yylval.e[0] = kTheMenuItems;
yylval.e[1] = g_lingo->_theEntityFields[key]->field;
- return THEMENUITEMSENTITY;
+ return tTHEMENUITEMSENTITY;
}
yylval.s = new Common::String(Common::String::format("numberOf%s", field.c_str()));
if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return THEFUNCINOF;
+ return tTHEFUNCINOF;
} else {
warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return LEXERROR;
+ return tLEXERROR;
}
}
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 208 "engines/director/lingo/lingo-lex.l"
+#line 209 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1400,16 +1401,16 @@ YY_RULE_SETUP
yylval.s = new Common::String(Common::String::format("last%sOf", field.c_str()));
if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return THEFUNCINOF;
+ return tTHEFUNCINOF;
} else {
warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return LEXERROR;
+ return tLEXERROR;
}
}
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 230 "engines/director/lingo/lingo-lex.l"
+#line 231 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1434,12 +1435,12 @@ YY_RULE_SETUP
if (!g_lingo->_theEntityFields.contains(field)) {
warning("LEXER: Unhandled the field %s of %s", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
@@ -1447,12 +1448,12 @@ YY_RULE_SETUP
// the <field> of menuItem <expr>" of menu <expr>
if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem)
- return THEMENUITEMENTITY;
+ return tTHEMENUITEMENTITY;
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
} else {
if (g_director->getVersion() >= 400) {
Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
@@ -1460,7 +1461,7 @@ YY_RULE_SETUP
yylval.objectprop.obj = new Common::String(ptr);
yylval.objectprop.prop = new Common::String(field);
- return THEOBJECTPROP;
+ return tTHEOBJECTPROP;
} else if (g_lingo->_builtinFuncs.contains(field)) { // Let's hope they don't do it in D4+
if (g_lingo->_builtinFuncs[field].nargs == 1 && g_lingo->_builtinFuncs[field].maxArgs == 1) {
yylval.s = new Common::String(field);
@@ -1476,7 +1477,7 @@ YY_RULE_SETUP
unput(' '); unput('f'); unput('o');
- return THEFUNC;
+ return tTHEFUNC;
}
}
}
@@ -1486,7 +1487,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 303 "engines/director/lingo/lingo-lex.l"
+#line 304 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1505,26 +1506,26 @@ YY_RULE_SETUP
if (!g_lingo->_theEntityFields.contains(field)) {
warning("LEXER: Unhandled the field %s", ptr);
- return LEXERROR;
+ return tLEXERROR;
}
if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
yylval.e[1] = g_lingo->_theEntityFields[field]->field;
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
}
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 337 "engines/director/lingo/lingo-lex.l"
+#line 338 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1537,15 +1538,15 @@ YY_RULE_SETUP
yylval.e[1] = 0; // No field
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
}
if (g_lingo->_builtinFuncs.contains(ptr)) {
if (g_lingo->_builtinFuncs[ptr].nargs == 1 && g_lingo->_builtinFuncs[ptr].maxArgs == 1) {
yylval.s = new Common::String(ptr);
- return THEFUNC;
+ return tTHEFUNC;
}
}
@@ -1554,126 +1555,126 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 363 "engines/director/lingo/lingo-lex.l"
+#line 364 "engines/director/lingo/lingo-lex.l"
{ count(); return tTHEN; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 364 "engines/director/lingo/lingo-lex.l"
+#line 365 "engines/director/lingo/lingo-lex.l"
{ count(); return tTO; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 365 "engines/director/lingo/lingo-lex.l"
+#line 366 "engines/director/lingo/lingo-lex.l"
{ count(); return tASSERTERROR; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 366 "engines/director/lingo/lingo-lex.l"
+#line 367 "engines/director/lingo/lingo-lex.l"
{ count(); return tSPRITE; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 367 "engines/director/lingo/lingo-lex.l"
+#line 368 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITH; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 368 "engines/director/lingo/lingo-lex.l"
+#line 369 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITHIN; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 369 "engines/director/lingo/lingo-lex.l"
+#line 370 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHEN; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 370 "engines/director/lingo/lingo-lex.l"
+#line 371 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHILE; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 371 "engines/director/lingo/lingo-lex.l"
+#line 372 "engines/director/lingo/lingo-lex.l"
{ count(); return tWINDOW; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 372 "engines/director/lingo/lingo-lex.l"
+#line 373 "engines/director/lingo/lingo-lex.l"
{ count(); return tWORD; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 374 "engines/director/lingo/lingo-lex.l"
+#line 375 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEQ; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 375 "engines/director/lingo/lingo-lex.l"
+#line 376 "engines/director/lingo/lingo-lex.l"
{ count(); return tGE; }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 376 "engines/director/lingo/lingo-lex.l"
+#line 377 "engines/director/lingo/lingo-lex.l"
{ count(); return tLE; }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 377 "engines/director/lingo/lingo-lex.l"
+#line 378 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONCAT; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 378 "engines/director/lingo/lingo-lex.l"
+#line 379 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 380 "engines/director/lingo/lingo-lex.l"
+#line 381 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
- return VARID;
+ return tVARID;
}
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 386 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.f = atof(yytext); return FLOAT; }
+#line 387 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.f = atof(yytext); return tFLOAT; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 387 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
+#line 388 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 388 "engines/director/lingo/lingo-lex.l"
+#line 389 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
case 72:
/* rule 72 can match eol */
YY_RULE_SETUP
-#line 389 "engines/director/lingo/lingo-lex.l"
+#line 390 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 390 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
+#line 391 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 391 "engines/director/lingo/lingo-lex.l"
+#line 392 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 393 "engines/director/lingo/lingo-lex.l"
+#line 394 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1676 "engines/director/lingo/lingo-lex.cpp"
+#line 1677 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -2682,7 +2683,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 393 "engines/director/lingo/lingo-lex.l"
+#line 394 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index ea62b52f17..5c220c850e 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -36,6 +36,7 @@
#include "director/director.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-the.h"
@@ -134,7 +135,7 @@ end({spc}+{identifier})? {
yylval.s = new Common::String(ptr);
- return ENDCLAUSE;
+ return tENDCLAUSE;
}
^{spc}*factory { count(); return tFACTORY; }
exit { count(); return tEXIT; }
@@ -156,7 +157,7 @@ movie { count(); return tMOVIE; }
next { count(); return tNEXT; }
not { count(); return tNOT; }
of { count(); return tOF; }
-on { count(); return tON } // D3
+on { count(); return tON; } // D3
open { count(); return tOPEN; }
or { count(); return tOR; }
play{spc}+frame { count(); return tPLAY; }
@@ -193,16 +194,16 @@ the{spc}+number{spc}+of{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
yylval.e[0] = kTheMenuItems;
yylval.e[1] = g_lingo->_theEntityFields[key]->field;
- return THEMENUITEMSENTITY;
+ return tTHEMENUITEMSENTITY;
}
yylval.s = new Common::String(Common::String::format("numberOf%s", field.c_str()));
if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return THEFUNCINOF;
+ return tTHEFUNCINOF;
} else {
warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return LEXERROR;
+ return tLEXERROR;
}
}
the{spc}+last{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
@@ -221,10 +222,10 @@ the{spc}+last{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
yylval.s = new Common::String(Common::String::format("last%sOf", field.c_str()));
if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return THEFUNCINOF;
+ return tTHEFUNCINOF;
} else {
warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return LEXERROR;
+ return tLEXERROR;
}
}
the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
@@ -251,12 +252,12 @@ the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
if (!g_lingo->_theEntityFields.contains(field)) {
warning("LEXER: Unhandled the field %s of %s", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
@@ -264,12 +265,12 @@ the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
// the <field> of menuItem <expr>" of menu <expr>
if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem)
- return THEMENUITEMENTITY;
+ return tTHEMENUITEMENTITY;
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
} else {
if (g_director->getVersion() >= 400) {
Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
@@ -277,7 +278,7 @@ the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
yylval.objectprop.obj = new Common::String(ptr);
yylval.objectprop.prop = new Common::String(field);
- return THEOBJECTPROP;
+ return tTHEOBJECTPROP;
} else if (g_lingo->_builtinFuncs.contains(field)) { // Let's hope they don't do it in D4+
if (g_lingo->_builtinFuncs[field].nargs == 1 && g_lingo->_builtinFuncs[field].maxArgs == 1) {
yylval.s = new Common::String(field);
@@ -293,7 +294,7 @@ the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
unput(' '); unput('f'); unput('o');
- return THEFUNC;
+ return tTHEFUNC;
}
}
}
@@ -318,21 +319,21 @@ the{spc}+[[:alpha:]]+{spc}+(date|time) {
if (!g_lingo->_theEntityFields.contains(field)) {
warning("LEXER: Unhandled the field %s", ptr);
- return LEXERROR;
+ return tLEXERROR;
}
if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return LEXERROR;
+ return tLEXERROR;
}
yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
yylval.e[1] = g_lingo->_theEntityFields[field]->field;
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
}
the{spc}+[[:alpha:]]+ {
count();
@@ -346,15 +347,15 @@ the{spc}+[[:alpha:]]+ {
yylval.e[1] = 0; // No field
if (g_lingo->_theEntities[ptr]->hasId)
- return THEENTITYWITHID;
+ return tTHEENTITYWITHID;
else
- return THEENTITY;
+ return tTHEENTITY;
}
if (g_lingo->_builtinFuncs.contains(ptr)) {
if (g_lingo->_builtinFuncs[ptr].nargs == 1 && g_lingo->_builtinFuncs[ptr].maxArgs == 1) {
yylval.s = new Common::String(ptr);
- return THEFUNC;
+ return tTHEFUNC;
}
}
@@ -381,13 +382,13 @@ word { count(); return tWORD; }
count();
yylval.s = new Common::String(yytext);
- return VARID;
+ return tVARID;
}
-{constfloat} { count(); yylval.f = atof(yytext); return FLOAT; }
-{constinteger} { count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
+{constfloat} { count(); yylval.f = atof(yytext); return tFLOAT; }
+{constinteger} { count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
{operator} { count(); return *yytext; }
{newline} { count(); return '\n'; }
-{conststring} { count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
+{conststring} { count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
. { count(); }
%%
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index c4231e859a..f2bd25b499 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -36,6 +36,7 @@
#include "director/util.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -145,6 +146,7 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_currentScript = 0;
_currentScriptContext = nullptr;
+ _assemblyAST = nullptr;
_assemblyArchive = nullptr;
_currentAssembly = nullptr;
_assemblyContext = nullptr;
@@ -153,8 +155,7 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_globalCounter = 0;
_pc = 0;
_abort = false;
- _indef = kStateNone;
- _indef = kStateNone;
+ _indef = false;
_expectError = false;
_caughtError = false;
@@ -164,7 +165,6 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_hadError = false;
_inFactory = false;
- _inCond = false;
_floatPrecision = 4;
_floatPrecisionFormat = "%.4f";
@@ -249,43 +249,6 @@ Symbol Lingo::getHandler(const Common::String &name) {
return Symbol();
}
-const char *Lingo::findNextDefinition(const char *s) {
- const char *res = s;
-
- while (*res) {
- while (*res && (*res == ' ' || *res == '\t' || *res == '\n'))
- res++;
-
- if (!*res)
- return NULL;
-
- if (!scumm_strnicmp(res, "macro ", 6)) {
- debugC(1, kDebugCompile, "findNextDefinition(): See 'macros ' construct");
- return res;
- }
-
- if (!scumm_strnicmp(res, "on ", 3)) {
- debugC(1, kDebugCompile, "findNextDefinition(): See 'on ' construct");
- return res;
- }
-
- if (!scumm_strnicmp(res, "factory ", 8)) {
- debugC(1, kDebugCompile, "findNextDefinition(): See 'factory ' construct");
- return res;
- }
-
- if (!scumm_strnicmp(res, "method ", 7)) {
- debugC(1, kDebugCompile, "findNextDefinition(): See 'method ' construct");
- return res;
- }
-
- while (*res && *res != '\n')
- res++;
- }
-
- return NULL;
-}
-
void LingoArchive::addCode(const char *code, ScriptType type, uint16 id, const char *scriptName) {
debugC(1, kDebugCompile, "Add code for type %s(%d) with id %d in '%s%s'\n"
"***********\n%s\n\n***********", scriptType2str(type), type, id, g_director->getCurrentPath().c_str(), cast->getMacName().c_str(), code);
@@ -319,6 +282,7 @@ ScriptContext *Lingo::compileAnonymous(const char *code) {
ScriptContext *Lingo::compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonymous) {
_assemblyArchive = archive;
+ _assemblyAST = nullptr;
ScriptContext *mainContext = _assemblyContext = new ScriptContext(scriptName, archive, type, id);
_currentAssembly = new ScriptData;
@@ -326,8 +290,6 @@ ScriptContext *Lingo::compileLingo(const char *code, LingoArchive *archive, Scri
_linenumber = _colnumber = 1;
_hadError = false;
- const char *begin, *end;
-
if (!strncmp(code, "menu:", 5) || scumm_strcasestr(code, "\nmenu:")) {
debugC(1, kDebugCompile, "Parsing menu");
parseMenu(code);
@@ -338,53 +300,15 @@ ScriptContext *Lingo::compileLingo(const char *code, LingoArchive *archive, Scri
// Preprocess the code for ease of the parser
Common::String codeNorm = codePreprocessor(code, archive, type, id);
code = codeNorm.c_str();
- begin = code;
-
- // macros and factories have conflicting grammar. Thus we ease life for the parser.
- if ((end = findNextDefinition(code))) {
- do {
- Common::String chunk(begin, end);
-
- if (chunk.hasPrefixIgnoreCase("factory")) {
- _inFactory = true;
- _assemblyContext = new ScriptContext(scriptName, archive, type, id);
- } else if (chunk.hasPrefixIgnoreCase("method")) {
- _inFactory = true;
- // remain in factory context
- } else if (chunk.hasPrefixIgnoreCase("macro") || chunk.hasPrefixIgnoreCase("on")) {
- _inFactory = false;
- _assemblyContext = mainContext;
- } else {
- _inFactory = false;
- _assemblyContext = mainContext;
- }
-
- debugC(1, kDebugCompile, "Code chunk:\n#####\n%s#####", chunk.c_str());
- parse(chunk.c_str());
+ // Parse the Lingo and build an AST
+ parse(code);
- if (debugChannelSet(3, kDebugCompile)) {
- debugC(2, kDebugCompile, "<current code>");
- uint pc = 0;
- while (pc < _currentAssembly->size()) {
- uint spc = pc;
- Common::String instr = decodeInstruction(_assemblyArchive, _currentAssembly, pc, &pc);
- debugC(2, kDebugCompile, "[%5d] %s", spc, instr.c_str());
- }
- debugC(2, kDebugCompile, "<end code>");
- }
-
- begin = end;
- } while ((end = findNextDefinition(begin + 1)));
-
- _inFactory = false;
- _assemblyContext = mainContext;
-
- debugC(1, kDebugCompile, "Last code chunk:\n#####\n%s\n#####", begin);
+ // Generate bytecode
+ if (_assemblyAST) {
+ _assemblyAST->compile();
}
- parse(begin);
-
// for D4 and above, there usually won't be any code left.
// all scoped methods will be defined and stored by the code parser
// however D3 and below allow scopeless functions!
@@ -451,6 +375,8 @@ ScriptContext *Lingo::compileLingo(const char *code, LingoArchive *archive, Scri
delete _methodVars;
_methodVars = nullptr;
_currentAssembly = nullptr;
+ delete _assemblyAST;
+ _assemblyAST = nullptr;
_assemblyContext = nullptr;
_assemblyArchive = nullptr;
return mainContext;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 71a1dbcbca..a6f7996bff 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -44,18 +44,13 @@ struct TheEntityField;
struct LingoArchive;
struct LingoV4Bytecode;
struct LingoV4TheEntity;
+struct Node;
class AbstractObject;
class Cast;
class ScriptContext;
class DirectorEngine;
class Frame;
-enum LexerDefineState {
- kStateNone,
- kStateInDef,
- kStateInArgs
-};
-
enum VarType {
kVarArgument,
kVarProperty,
@@ -238,11 +233,6 @@ struct LingoArchive {
void addNamesV4(Common::SeekableReadStreamEndian &stream);
};
-struct RepeatBlock {
- Common::Array<uint32> exits;
- Common::Array<uint32> nexts;
-};
-
class Lingo {
public:
@@ -281,10 +271,6 @@ public:
// lingo-patcher.cpp
Common::String patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenumber);
- // lingo.cpp
-private:
- const char *findNextDefinition(const char *s);
-
// lingo-events.cpp
private:
void initEventHandlerTypes();
@@ -396,19 +382,19 @@ public:
void codeLabel(int label);
int codeString(const char *s);
void processIf(int toplabel, int endlabel);
+ void registerMethodVar(const Common::String &name, VarType type);
void varCreate(const Common::String &name, bool global, DatumHash *localvars = nullptr);
LingoArchive *_assemblyArchive;
ScriptContext *_assemblyContext;
+ Node *_assemblyAST;
ScriptData *_currentAssembly;
- LexerDefineState _indef;
- LexerDefineState _indefStore;
+ bool _indef;
uint _linenumber;
uint _colnumber;
uint _bytenumber;
const char *_lines[3];
bool _inFactory;
- Common::Array<RepeatBlock *> _repeatStack;
Common::Array<Common::String *> _argstack;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
@@ -443,8 +429,6 @@ public:
bool _hadError;
- bool _inCond;
-
private:
int parse(const char *code);
void parseMenu(const char *code);
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 2f17e00eef..e14a492a60 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -23,6 +23,7 @@ MODULE_OBJS = \
util.o \
window.o \
lingo/lingo.o \
+ lingo/lingo-ast.o \
lingo/lingo-builtins.o \
lingo/lingo-bytecode.o \
lingo/lingo-code.o \
Commit: e44ff4849251fc2c67b921373562afb196a999ab
https://github.com/scummvm/scummvm/commit/e44ff4849251fc2c67b921373562afb196a999ab
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Move VarType to types.h
Changed paths:
engines/director/lingo/lingo.h
engines/director/types.h
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index a6f7996bff..b845eb63df 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -51,14 +51,6 @@ class ScriptContext;
class DirectorEngine;
class Frame;
-enum VarType {
- kVarArgument,
- kVarProperty,
- kVarInstance,
- kVarGlobal,
- kVarLocal
-};
-
typedef void (*inst)(void);
#define STOP (inst)0
#define ENTITY_INDEX(t,id) ((t) * 100000 + (id))
diff --git a/engines/director/types.h b/engines/director/types.h
index b5d6a6c2c9..3b3e544c53 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -351,6 +351,14 @@ enum DatumType {
RECT
};
+enum VarType {
+ kVarArgument,
+ kVarProperty,
+ kVarInstance,
+ kVarGlobal,
+ kVarLocal
+};
+
struct Datum;
struct PCell;
typedef Common::Array<Datum> DatumArray;
Commit: a4df3c3d8ed61aff92534364857764b35a11d855
https://github.com/scummvm/scummvm/commit/a4df3c3d8ed61aff92534364857764b35a11d855
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Eliminate Lingo::varCreate
This function just complicates things.
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 3f413dece7..8d99281780 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -535,7 +535,9 @@ void LC::cb_globalassign() {
// Lingo lets you declare globals inside a method.
// This doesn't define them in the script list, but you can still
// read and write to them???
- g_lingo->varCreate(name, true);
+ if (!g_lingo->_globalvars.contains(name)) {
+ g_lingo->_globalvars[name] = Datum();
+ }
g_lingo->varAssign(target, source, true);
}
@@ -979,8 +981,8 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
if (0 <= index && index < (int16)archive->names.size()) {
const char *name = archive->names[index].c_str();
debugC(5, kDebugLoading, "%d: %s", i, name);
- if (!_globalvars.contains(name)) {
- _globalvars[name] = Datum();
+ if (!g_lingo->_globalvars.contains(name)) {
+ g_lingo->_globalvars[name] = Datum();
} else {
warning("Global %d (%s) already defined", i, name);
}
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 27170e2193..db3b064c22 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -263,7 +263,7 @@ void Lingo::pushContext(const Symbol funcSym, bool allowRetVal, Datum defaultRet
for (int i = symNArgs - 1; i >= 0; i--) {
Common::String name = (*funcSym.argNames)[i];
if (!localvars->contains(name)) {
- g_lingo->varCreate(name, false, localvars);
+ (*localvars)[name] = Datum();
Datum arg(name);
arg.type = VAR;
Datum value = g_lingo->pop();
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 7e9ace6234..77c5893b5a 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -270,39 +270,11 @@ void Lingo::registerMethodVar(const Common::String &name, VarType type) {
if (type == kVarProperty || type == kVarInstance) {
g_lingo->_assemblyContext->_properties[name] = Datum();
} else if (type == kVarGlobal) {
- g_lingo->varCreate(name, true);
+ g_lingo->_globalvars[name] = Datum();
}
}
}
-void Lingo::varCreate(const Common::String &name, bool global, DatumHash *localvars) {
- if (localvars == nullptr) {
- localvars = _localvars;
- }
-
- if (localvars && localvars->contains(name)) {
- if (global)
- warning("varCreate: variable %s is local, not global", name.c_str());
- return;
- } else if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
- if (global)
- warning("varCreate: variable %s is instance or property, not global", name.c_str());
- return;
- } else if (_globalvars.contains(name)) {
- if (!global)
- warning("varCreate: variable %s is global, not local", name.c_str());
- return;
- }
-
- if (global) {
- _globalvars[name] = Datum();
- _globalvars[name].type = INT;
- _globalvars[name].u.i = 0;
- } else {
- (*localvars)[name] = Datum();
- }
-}
-
void Lingo::codeFactory(Common::String &name) {
// FIXME: The factory's context should not be tied to the LingoArchive
// but bytecode needs it to resolve names
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index b845eb63df..b070a3d119 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -375,7 +375,6 @@ public:
int codeString(const char *s);
void processIf(int toplabel, int endlabel);
void registerMethodVar(const Common::String &name, VarType type);
- void varCreate(const Common::String &name, bool global, DatumHash *localvars = nullptr);
LingoArchive *_assemblyArchive;
ScriptContext *_assemblyContext;
Commit: 0a708b9c8f9a0d1f232014c22f2cc8a3d0e9e512
https://github.com/scummvm/scummvm/commit/0a708b9c8f9a0d1f232014c22f2cc8a3d0e9e512
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Move compiler logic to new class
Changed paths:
A engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-ast.cpp
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-patcher.cpp
engines/director/lingo/lingo-preprocessor.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-ast.cpp b/engines/director/lingo/lingo-ast.cpp
index a81ce4ba74..a2a67edbad 100644
--- a/engines/director/lingo/lingo-ast.cpp
+++ b/engines/director/lingo/lingo-ast.cpp
@@ -23,6 +23,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-object.h"
namespace Director {
@@ -38,52 +39,52 @@ void ScriptNode::compile() {
/* FactoryNode */
void FactoryNode::compile() {
- g_lingo->_inFactory = true;
- ScriptContext *mainContext = g_lingo->_assemblyContext;
- g_lingo->_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
+ g_lingo->_compiler->_inFactory = true;
+ ScriptContext *mainContext = g_lingo->_compiler->_assemblyContext;
+ g_lingo->_compiler->_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
- g_lingo->codeFactory(*name);
+ g_lingo->_compiler->codeFactory(*name);
for (uint i = 0; i < methods->size(); i++) {
(*methods)[i]->compile();
}
- g_lingo->_inFactory = false;
- g_lingo->_assemblyContext = mainContext;
+ g_lingo->_compiler->_inFactory = false;
+ g_lingo->_compiler->_assemblyContext = mainContext;
}
/* HandlerNode */
void HandlerNode::compile() {
- g_lingo->_indef = true;
- VarTypeHash *mainMethodVars = g_lingo->_methodVars;
- g_lingo->_methodVars = new VarTypeHash;
+ g_lingo->_compiler->_indef = true;
+ VarTypeHash *mainMethodVars = g_lingo->_compiler->_methodVars;
+ g_lingo->_compiler->_methodVars = new VarTypeHash;
for (VarTypeHash::iterator i = mainMethodVars->begin(); i != mainMethodVars->end(); ++i) {
if (i->_value == kVarGlobal || i->_value == kVarProperty)
- (*g_lingo->_methodVars)[i->_key] = i->_value;
+ (*g_lingo->_compiler->_methodVars)[i->_key] = i->_value;
}
- if (g_lingo->_inFactory) {
- for (DatumHash::iterator i = g_lingo->_assemblyContext->_properties.begin(); i != g_lingo->_assemblyContext->_properties.end(); ++i) {
- (*g_lingo->_methodVars)[i->_key] = kVarInstance;
+ if (g_lingo->_compiler->_inFactory) {
+ for (DatumHash::iterator i = g_lingo->_compiler->_assemblyContext->_properties.begin(); i != g_lingo->_compiler->_assemblyContext->_properties.end(); ++i) {
+ (*g_lingo->_compiler->_methodVars)[i->_key] = kVarInstance;
}
}
for (uint i = 0; i < args->size(); i++) { // TODO: eliminate argstack
- g_lingo->codeArg((*args)[i]);
+ g_lingo->_compiler->codeArg((*args)[i]);
}
- uint start = g_lingo->_currentAssembly->size(); // TODO: should always be zero
+ uint start = g_lingo->_compiler->_currentAssembly->size(); // TODO: should always be zero
for (uint i = 0; i < stmts->size(); i++) {
(*stmts)[i]->compile();
}
- g_lingo->code1(LC::c_procret);
- g_lingo->codeDefine(*name, start, args->size());
+ g_lingo->_compiler->code1(LC::c_procret);
+ g_lingo->_compiler->codeDefine(*name, start, args->size());
- g_lingo->clearArgStack();
- g_lingo->_indef = false;
- delete g_lingo->_methodVars;
- g_lingo->_methodVars = mainMethodVars;
+ g_lingo->_compiler->clearArgStack();
+ g_lingo->_compiler->_indef = false;
+ delete g_lingo->_compiler->_methodVars;
+ g_lingo->_compiler->_methodVars = mainMethodVars;
}
/* CmdNode */
@@ -92,14 +93,14 @@ void CmdNode::compile() {
for (uint i = 0; i < args->size(); i++) {
(*args)[i]->compile();
}
- g_lingo->codeCmd(name, args->size());
+ g_lingo->_compiler->codeCmd(name, args->size());
}
/* GlobalNode */
void GlobalNode::compile() {
for (uint i = 0; i < names->size(); i++) {
- g_lingo->registerMethodVar(*(*names)[i], kVarGlobal);
+ g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarGlobal);
}
}
@@ -107,7 +108,7 @@ void GlobalNode::compile() {
void PropertyNode::compile() {
for (uint i = 0; i < names->size(); i++) {
- g_lingo->registerMethodVar(*(*names)[i], kVarProperty);
+ g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarProperty);
}
}
@@ -115,36 +116,36 @@ void PropertyNode::compile() {
void InstanceNode::compile() {
for (uint i = 0; i < names->size(); i++) {
- g_lingo->registerMethodVar(*(*names)[i], kVarInstance);
+ g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarInstance);
}
}
/* IntNode */
void IntNode::compile() {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(val);
+ g_lingo->_compiler->code1(LC::c_intpush);
+ g_lingo->_compiler->codeInt(val);
}
/* FloatNode */
void FloatNode::compile() {
- g_lingo->code1(LC::c_floatpush);
- g_lingo->codeFloat(val);
+ g_lingo->_compiler->code1(LC::c_floatpush);
+ g_lingo->_compiler->codeFloat(val);
}
/* SymbolNode */
void SymbolNode::compile() {
- g_lingo->code1(LC::c_symbolpush);
- g_lingo->codeString(val->c_str());
+ g_lingo->_compiler->code1(LC::c_symbolpush);
+ g_lingo->_compiler->codeString(val->c_str());
}
/* StringNode */
void StringNode::compile() {
- g_lingo->code1(LC::c_stringpush);
- g_lingo->codeString(val->c_str());
+ g_lingo->_compiler->code1(LC::c_stringpush);
+ g_lingo->_compiler->codeString(val->c_str());
}
/* FuncNode */
@@ -153,18 +154,18 @@ void FuncNode::compile() {
for (uint i = 0; i < args->size(); i++) {
(*args)[i]->compile();
}
- g_lingo->codeFunc(name, args->size());
+ g_lingo->_compiler->codeFunc(name, args->size());
}
/* VarNode */
void VarNode::compile() {
if (g_lingo->_builtinConsts.contains(*name)) {
- g_lingo->code1(LC::c_constpush);
+ g_lingo->_compiler->code1(LC::c_constpush);
} else {
- g_lingo->code1(LC::c_eval);
+ g_lingo->_compiler->code1(LC::c_eval);
}
- g_lingo->codeString(name->c_str());
+ g_lingo->_compiler->codeString(name->c_str());
}
/* ParensNode */
@@ -177,7 +178,7 @@ void ParensNode::compile() {
void UnaryOpNode::compile() {
arg->compile();
- g_lingo->code1(op);
+ g_lingo->_compiler->code1(op);
}
/* BinaryOpNode */
@@ -185,7 +186,7 @@ void UnaryOpNode::compile() {
void BinaryOpNode::compile() {
a->compile();
b->compile();
- g_lingo->code1(op);
+ g_lingo->_compiler->code1(op);
}
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index fab803cedf..2377334092 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -45,6 +45,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-object.h"
namespace Director {
@@ -628,7 +629,7 @@ void LB::b_value(int nargs) {
}
Common::String code = "scummvm_returnNumber " + expr;
// Compile the code to an anonymous function and call it
- ScriptContext *sc = g_lingo->compileAnonymous(code.c_str());
+ ScriptContext *sc = g_lingo->_compiler->compileAnonymous(code.c_str());
Symbol sym = sc->_eventHandlers[kEventGeneric];
LC::call(sym, 0, true);
}
@@ -1759,7 +1760,7 @@ void LB::b_installMenu(int nargs) {
}
TextCastMember *field = static_cast<TextCastMember *>(member);
- Common::String menuStxt = g_lingo->codePreprocessor(field->getText().c_str(), field->getCast()->_lingoArchive, kNoneScript, castId, true);
+ Common::String menuStxt = g_lingo->_compiler->codePreprocessor(field->getText().c_str(), field->getCast()->_lingoArchive, kNoneScript, castId, true);
Common::String line;
int linenum = -1; // We increment it before processing
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 8d99281780..892efd8439 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -31,6 +31,7 @@
#include "director/util.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-builtins.h"
#include "director/lingo/lingo-bytecode.h"
#include "director/lingo/lingo-object.h"
@@ -828,7 +829,7 @@ void LC::cb_zeropush() {
g_lingo->push(d);
}
-ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, LingoArchive *archive, const Common::String &archName, uint16 version) {
+ScriptContext *LingoCompiler::compileLingoV4(Common::SeekableReadStreamEndian &stream, LingoArchive *archive, const Common::String &archName, uint16 version) {
if (stream.size() < 0x5c) {
warning("Lscr header too small");
return nullptr;
@@ -1277,13 +1278,13 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
Datum constant = _assemblyContext->_constants[arg];
switch (constant.type) {
case INT:
- g_lingo->code1(LC::c_intpush);
+ code1(LC::c_intpush);
break;
case FLOAT:
- g_lingo->code1(LC::c_floatpush);
+ code1(LC::c_floatpush);
break;
case STRING:
- g_lingo->code1(LC::c_stringpush);
+ code1(LC::c_stringpush);
break;
default:
error("Unknown constant type %d", constant.type);
@@ -1297,27 +1298,27 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
}
switch (constant.type) {
case INT:
- g_lingo->codeInt(constant.u.i);
+ codeInt(constant.u.i);
break;
case FLOAT:
- g_lingo->codeFloat(constant.u.f);
+ codeFloat(constant.u.f);
break;
case STRING:
- g_lingo->codeString(constant.u.s->c_str());
+ codeString(constant.u.s->c_str());
break;
default:
error("Unknown constant type %d", constant.type);
break;
}
- } else if (_lingoV4.contains(opcode)) {
+ } else if (g_lingo->_lingoV4.contains(opcode)) {
offsetList.push_back(_currentAssembly->size());
- g_lingo->code1(_lingoV4[opcode]->func);
+ code1(g_lingo->_lingoV4[opcode]->func);
- size_t argc = strlen(_lingoV4[opcode]->proto);
+ size_t argc = strlen(g_lingo->_lingoV4[opcode]->proto);
if (argc) {
int arg = 0;
for (uint c = 0; c < argc; c++) {
- switch (_lingoV4[opcode]->proto[c]) {
+ switch (g_lingo->_lingoV4[opcode]->proto[c]) {
case 'b':
// read one uint8 as an argument
offsetList.push_back(_currentAssembly->size());
@@ -1368,39 +1369,39 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
break;
}
}
- g_lingo->codeInt(arg);
+ codeInt(arg);
}
} else {
// unimplemented instruction
if (opcode < 0x40) { // 1 byte instruction
debugC(5, kDebugCompile, "Unimplemented opcode: 0x%02x", opcode);
offsetList.push_back(_currentAssembly->size());
- g_lingo->code1(LC::cb_unk);
- g_lingo->codeInt(opcode);
+ code1(LC::cb_unk);
+ codeInt(opcode);
} else if (opcode < 0x80) { // 2 byte instruction
debugC(5, kDebugCompile, "Unimplemented opcode: 0x%02x (%d)", opcode, (uint)codeStore[pointer]);
offsetList.push_back(_currentAssembly->size());
- g_lingo->code1(LC::cb_unk1);
- g_lingo->codeInt(opcode);
+ code1(LC::cb_unk1);
+ codeInt(opcode);
offsetList.push_back(_currentAssembly->size());
- g_lingo->codeInt((uint)codeStore[pointer]);
+ codeInt((uint)codeStore[pointer]);
pointer += 1;
} else { // 3 byte instruction
debugC(5, kDebugCompile, "Unimplemented opcode: 0x%02x (%d, %d)", opcode, (uint)codeStore[pointer], (uint)codeStore[pointer+1]);
offsetList.push_back(_currentAssembly->size());
- g_lingo->code1(LC::cb_unk2);
- g_lingo->codeInt(opcode);
+ code1(LC::cb_unk2);
+ codeInt(opcode);
offsetList.push_back(_currentAssembly->size());
- g_lingo->codeInt((uint)codeStore[pointer]);
+ codeInt((uint)codeStore[pointer]);
offsetList.push_back(_currentAssembly->size());
- g_lingo->codeInt((uint)codeStore[pointer+1]);
+ codeInt((uint)codeStore[pointer+1]);
pointer += 2;
}
}
}
// Add backstop
- g_lingo->code1(STOP);
+ code1(STOP);
// Rewrite every offset flagged as a jump based on the new code alignment.
for (uint j = 0; j < jumpList.size(); j++) {
@@ -1424,7 +1425,7 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
functionName = archive->names[nameIndex];
} else if (i == 0 && (scriptFlags & kScriptFlagEventScript)) {
// event script (lingo not contained within a handler)
- functionName = _eventHandlerTypes[kEventGeneric];
+ functionName = g_lingo->_eventHandlerTypes[kEventGeneric];
}
Symbol sym;
@@ -1460,7 +1461,7 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
uint pc = 0;
while (pc < _currentAssembly->size()) {
uint spc = pc;
- Common::String instr = decodeInstruction(_assemblyArchive, _currentAssembly, pc, &pc);
+ Common::String instr = g_lingo->decodeInstruction(_assemblyArchive, _currentAssembly, pc, &pc);
out.writeString(Common::String::format("[%5d] %s\n", spc, instr.c_str()));
}
out.writeString(Common::String::format("<end code>\n\n"));
@@ -1482,7 +1483,7 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableReadStreamEndian &stream, L
}
void LingoArchive::addCodeV4(Common::SeekableReadStreamEndian &stream, uint16 lctxIndex, const Common::String &archName, uint16 version) {
- ScriptContext *ctx = g_lingo->compileLingoV4(stream, this, archName, version);
+ ScriptContext *ctx = g_lingo->_compiler->compileLingoV4(stream, this, archName, version);
if (ctx) {
lctxContexts[lctxIndex] = ctx;
*ctx->_refCount += 1;
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 77c5893b5a..5731097e7d 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -47,56 +47,139 @@
#include "director/director.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-object.h"
namespace Director {
-void Lingo::cleanLocalVars() {
- // Clean up current scope local variables and clean up memory
- debugC(3, kDebugLingoExec, "cleanLocalVars: have %d vars", _localvars->size());
+LingoCompiler::LingoCompiler() {
+ _assemblyAST = nullptr;
+ _assemblyArchive = nullptr;
+ _currentAssembly = nullptr;
+ _assemblyContext = nullptr;
- g_lingo->_localvars->clear();
- delete g_lingo->_localvars;
+ _indef = false;
- g_lingo->_localvars = nullptr;
+ _linenumber = _colnumber = _bytenumber = 0;
+ _lines[0] = _lines[1] = _lines[2] = nullptr;
+
+ _inFactory = false;
+
+ _hadError = false;
}
-Symbol ScriptContext::define(Common::String &name, int nargs, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames) {
- Symbol sym;
- sym.name = new Common::String(name);
- sym.type = HANDLER;
- sym.u.defn = code;
- sym.nargs = nargs;
- sym.maxArgs = nargs;
- sym.argNames = argNames;
- sym.varNames = varNames;
- sym.ctx = this;
- sym.archive = _archive;
+ScriptContext *LingoCompiler::compileAnonymous(const char *code) {
+ debugC(1, kDebugCompile, "Compiling anonymous lingo\n"
+ "***********\n%s\n\n***********", code);
- if (debugChannelSet(1, kDebugCompile)) {
- uint pc = 0;
- while (pc < sym.u.defn->size()) {
- uint spc = pc;
- Common::String instr = g_lingo->decodeInstruction(_archive, sym.u.defn, pc, &pc);
- debugC(1, kDebugCompile, "[%5d] %s", spc, instr.c_str());
- }
- debugC(1, kDebugCompile, "<end define code>");
+ return compileLingo(code, nullptr, kNoneScript, 0, "[anonymous]", true);
+}
+
+ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonymous) {
+ _assemblyArchive = archive;
+ _assemblyAST = nullptr;
+ ScriptContext *mainContext = _assemblyContext = new ScriptContext(scriptName, archive, type, id);
+ _currentAssembly = new ScriptData;
+
+ _methodVars = new VarTypeHash;
+ _linenumber = _colnumber = 1;
+ _hadError = false;
+
+ if (!strncmp(code, "menu:", 5) || scumm_strcasestr(code, "\nmenu:")) {
+ debugC(1, kDebugCompile, "Parsing menu");
+ parseMenu(code);
+
+ return nullptr;
}
- if (!g_lingo->_eventHandlerTypeIds.contains(name)) {
- _functionHandlers[name] = sym;
- if (_scriptType == kMovieScript && _archive && !_archive->functionHandlers.contains(name)) {
- _archive->functionHandlers[name] = sym;
+ // Preprocess the code for ease of the parser
+ Common::String codeNorm = codePreprocessor(code, archive, type, id);
+ code = codeNorm.c_str();
+
+ // Parse the Lingo and build an AST
+ parse(code);
+
+ // Generate bytecode
+ if (_assemblyAST) {
+ _assemblyAST->compile();
+ }
+
+ // for D4 and above, there usually won't be any code left.
+ // all scoped methods will be defined and stored by the code parser
+ // however D3 and below allow scopeless functions!
+ // and these can show up in D4 when imported from other movies
+
+ if (!_currentAssembly->empty()) {
+ // end of script, add a c_procret so stack frames work as expected
+ code1(LC::c_procret);
+ code1(STOP);
+
+ if (debugChannelSet(3, kDebugCompile)) {
+ if (_currentAssembly->size() && !_hadError)
+ Common::hexdump((byte *)&_currentAssembly->front(), _currentAssembly->size() * sizeof(inst));
+
+ debugC(2, kDebugCompile, "<resulting code>");
+ uint pc = 0;
+ while (pc < _currentAssembly->size()) {
+ uint spc = pc;
+ Common::String instr = g_lingo->decodeInstruction(_assemblyArchive, _currentAssembly, pc, &pc);
+ debugC(2, kDebugCompile, "[%5d] %s", spc, instr.c_str());
+ }
+ debugC(2, kDebugCompile, "<end code>");
}
- } else {
- _eventHandlers[g_lingo->_eventHandlerTypeIds[name]] = sym;
+
+ Symbol currentFunc;
+
+ currentFunc.type = HANDLER;
+ currentFunc.u.defn = _currentAssembly;
+ Common::String typeStr = Common::String(scriptType2str(type));
+ currentFunc.name = new Common::String("[" + typeStr + " " + _assemblyContext->getName() + "]");
+ currentFunc.ctx = _assemblyContext;
+ currentFunc.archive = archive;
+ currentFunc.anonymous = anonymous;
+ // arg names should be empty, but just in case
+ Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
+ for (uint i = 0; i < _argstack.size(); i++) {
+ argNames->push_back(Common::String(_argstack[i]->c_str()));
+ }
+ Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
+ for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
+ if (it->_value == kVarLocal)
+ varNames->push_back(Common::String(it->_key));
+ }
+
+ if (debugChannelSet(1, kDebugCompile)) {
+ debug("Function vars");
+ debugN(" Args: ");
+ for (uint i = 0; i < argNames->size(); i++) {
+ debugN("%s, ", (*argNames)[i].c_str());
+ }
+ debugN("\n");
+ debugN(" Local vars: ");
+ for (uint i = 0; i < varNames->size(); i++) {
+ debugN("%s, ", (*varNames)[i].c_str());
+ }
+ debugN("\n");
+ }
+
+ currentFunc.argNames = argNames;
+ currentFunc.varNames = varNames;
+ _assemblyContext->_eventHandlers[kEventGeneric] = currentFunc;
}
- return sym;
+ delete _methodVars;
+ _methodVars = nullptr;
+ _currentAssembly = nullptr;
+ delete _assemblyAST;
+ _assemblyAST = nullptr;
+ _assemblyContext = nullptr;
+ _assemblyArchive = nullptr;
+ return mainContext;
}
-Symbol Lingo::codeDefine(Common::String &name, int start, int nargs, int end, bool removeCode) {
+Symbol LingoCompiler::codeDefine(Common::String &name, int start, int nargs, int end, bool removeCode) {
if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
debug("codeDefine(\"%s\"(len: %d), %d, %d, %d)",
name.c_str(), _currentAssembly->size() - 1, start, nargs, end);
@@ -140,7 +223,7 @@ Symbol Lingo::codeDefine(Common::String &name, int start, int nargs, int end, bo
return sym;
}
-int Lingo::codeString(const char *str) {
+int LingoCompiler::codeString(const char *str) {
int numInsts = calcStringAlignment(str);
// Where we copy the string over
@@ -157,7 +240,7 @@ int Lingo::codeString(const char *str) {
return _currentAssembly->size();
}
-int Lingo::codeFloat(double f) {
+int LingoCompiler::codeFloat(double f) {
int numInsts = calcCodeAlignment(sizeof(double));
// Where we copy the string over
@@ -174,15 +257,15 @@ int Lingo::codeFloat(double f) {
return _currentAssembly->size();
}
-int Lingo::codeInt(int val) {
+int LingoCompiler::codeInt(int val) {
inst i = 0;
WRITE_UINT32(&i, val);
- g_lingo->code1(i);
+ code1(i);
return _currentAssembly->size();
}
-bool Lingo::isInArgStack(Common::String *s) {
+bool LingoCompiler::isInArgStack(Common::String *s) {
for (uint i = 0; i < _argstack.size(); i++)
if (_argstack[i]->equalsIgnoreCase(*s))
return true;
@@ -190,55 +273,55 @@ bool Lingo::isInArgStack(Common::String *s) {
return false;
}
-void Lingo::codeArg(Common::String *s) {
+void LingoCompiler::codeArg(Common::String *s) {
_argstack.push_back(new Common::String(*s));
}
-void Lingo::clearArgStack() {
+void LingoCompiler::clearArgStack() {
for (uint i = 0; i < _argstack.size(); i++)
delete _argstack[i];
_argstack.clear();
}
-int Lingo::codeCmd(Common::String *s, int numpar) {
+int LingoCompiler::codeCmd(Common::String *s, int numpar) {
// Insert current line number to our asserts
if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
- g_lingo->code1(LC::c_intpush);
- g_lingo->codeInt(g_lingo->_linenumber);
+ code1(LC::c_intpush);
+ codeInt(_linenumber);
numpar++;
}
- int ret = g_lingo->code1(LC::c_callcmd);
+ int ret = code1(LC::c_callcmd);
- g_lingo->codeString(s->c_str());
+ codeString(s->c_str());
inst num = 0;
WRITE_UINT32(&num, numpar);
- g_lingo->code1(num);
+ code1(num);
return ret;
}
-int Lingo::codeFunc(Common::String *s, int numpar) {
- int ret = g_lingo->code1(LC::c_callfunc);
+int LingoCompiler::codeFunc(Common::String *s, int numpar) {
+ int ret = code1(LC::c_callfunc);
- g_lingo->codeString(s->c_str());
+ codeString(s->c_str());
inst num = 0;
WRITE_UINT32(&num, numpar);
- g_lingo->code1(num);
+ code1(num);
return ret;
}
-void Lingo::codeLabel(int label) {
+void LingoCompiler::codeLabel(int label) {
_labelstack.push_back(label);
debugC(4, kDebugCompile, "codeLabel: Added label %d", label);
}
-void Lingo::processIf(int toplabel, int endlabel) {
+void LingoCompiler::processIf(int toplabel, int endlabel) {
inst iend;
debugC(4, kDebugCompile, "processIf(%d, %d)", toplabel, endlabel);
@@ -264,27 +347,31 @@ void Lingo::processIf(int toplabel, int endlabel) {
}
}
-void Lingo::registerMethodVar(const Common::String &name, VarType type) {
- if (!g_lingo->_methodVars->contains(name)) {
- (*g_lingo->_methodVars)[name] = type;
+void LingoCompiler::registerMethodVar(const Common::String &name, VarType type) {
+ if (!_methodVars->contains(name)) {
+ (*_methodVars)[name] = type;
if (type == kVarProperty || type == kVarInstance) {
- g_lingo->_assemblyContext->_properties[name] = Datum();
+ _assemblyContext->_properties[name] = Datum();
} else if (type == kVarGlobal) {
g_lingo->_globalvars[name] = Datum();
}
}
}
-void Lingo::codeFactory(Common::String &name) {
+void LingoCompiler::codeFactory(Common::String &name) {
// FIXME: The factory's context should not be tied to the LingoArchive
// but bytecode needs it to resolve names
_assemblyContext->setName(name);
_assemblyContext->setFactory(true);
- if (!_globalvars.contains(name)) {
- _globalvars[name] = _assemblyContext;
+ if (!g_lingo->_globalvars.contains(name)) {
+ g_lingo->_globalvars[name] = _assemblyContext;
} else {
warning("Factory '%s' already defined", name.c_str());
}
}
+void LingoCompiler::parseMenu(const char *code) {
+ warning("STUB: parseMenu");
+}
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
new file mode 100644
index 0000000000..3570713ffd
--- /dev/null
+++ b/engines/director/lingo/lingo-codegen.h
@@ -0,0 +1,91 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef DIRECTOR_LINGO_LINGO_CODEGEN_H
+#define DIRECTOR_LINGO_LINGO_CODEGEN_H
+
+#include "director/types.h"
+#include "director/lingo/lingo.h"
+
+namespace Director {
+
+class LingoCompiler {
+public:
+ LingoCompiler();
+
+ ScriptContext *compileAnonymous(const char *code);
+ ScriptContext *compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonyomous = false);
+ ScriptContext *compileLingoV4(Common::SeekableReadStreamEndian &stream, LingoArchive *archive, const Common::String &archName, uint16 version);
+
+ bool isInArgStack(Common::String *s);
+ void clearArgStack();
+
+ int code1(inst code) { _currentAssembly->push_back(code); return _currentAssembly->size() - 1; }
+ int code2(inst code_1, inst code_2) { int o = code1(code_1); code1(code_2); return o; }
+ int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
+ int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
+ void codeArg(Common::String *s);
+ int codeCmd(Common::String *s, int numpar);
+ Symbol codeDefine(Common::String &s, int start, int nargs, int end = -1, bool removeCode = true);
+ void codeFactory(Common::String &s);
+ int codeFloat(double f);
+ int codeFunc(Common::String *s, int numpar);
+ int codeInt(int val);
+ void codeLabel(int label);
+ int codeString(const char *s);
+ void processIf(int toplabel, int endlabel);
+ void registerMethodVar(const Common::String &name, VarType type);
+
+ LingoArchive *_assemblyArchive;
+ ScriptContext *_assemblyContext;
+ Node *_assemblyAST;
+ ScriptData *_currentAssembly;
+ bool _indef;
+ uint _linenumber;
+ uint _colnumber;
+ uint _bytenumber;
+ const char *_lines[3];
+ bool _inFactory;
+
+ Common::Array<Common::String *> _argstack;
+ Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
+ Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
+
+ Common::Array<int> _labelstack;
+
+ bool _hadError;
+
+private:
+ int parse(const char *code);
+ void parseMenu(const char *code);
+
+public:
+ // lingo-preprocessor.cpp
+ Common::String codePreprocessor(const char *s, LingoArchive *archive, ScriptType type, uint16 id, bool simple = false);
+
+ // lingo-patcher.cpp
+ Common::String patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenumber);
+};
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 11d6da5b0b..6316cc508e 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -79,6 +79,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -88,25 +89,26 @@ extern int yyparse();
using namespace Director;
static void yyerror(const char *s) {
- g_lingo->_hadError = true;
+ LingoCompiler *compiler = g_lingo->_compiler;
+ compiler->_hadError = true;
warning("###################### LINGO: %s at line %d col %d in %s id: %d",
- s, g_lingo->_linenumber, g_lingo->_colnumber, scriptType2str(g_lingo->_assemblyContext->_scriptType),
- g_lingo->_assemblyContext->_id);
- if (g_lingo->_lines[2] != g_lingo->_lines[1])
- warning("# %3d: %s", g_lingo->_linenumber - 2, Common::String(g_lingo->_lines[2], g_lingo->_lines[1] - 1).c_str());
+ s, compiler->_linenumber, compiler->_colnumber, scriptType2str(compiler->_assemblyContext->_scriptType),
+ compiler->_assemblyContext->_id);
+ if (compiler->_lines[2] != compiler->_lines[1])
+ warning("# %3d: %s", compiler->_linenumber - 2, Common::String(compiler->_lines[2], compiler->_lines[1] - 1).c_str());
- if (g_lingo->_lines[1] != g_lingo->_lines[0])
- warning("# %3d: %s", g_lingo->_linenumber - 1, Common::String(g_lingo->_lines[1], g_lingo->_lines[0] - 1).c_str());
+ if (compiler->_lines[1] != compiler->_lines[0])
+ warning("# %3d: %s", compiler->_linenumber - 1, Common::String(compiler->_lines[1], compiler->_lines[0] - 1).c_str());
- const char *ptr = g_lingo->_lines[0];
+ const char *ptr = compiler->_lines[0];
while (*ptr && *ptr != '\n')
ptr++;
- warning("# %3d: %s", g_lingo->_linenumber, Common::String(g_lingo->_lines[0], ptr).c_str());
+ warning("# %3d: %s", compiler->_linenumber, Common::String(compiler->_lines[0], ptr).c_str());
Common::String arrow;
- for (uint i = 0; i < g_lingo->_colnumber; i++)
+ for (uint i = 0; i < compiler->_colnumber; i++)
arrow += ' ';
warning("# %s^ about here", arrow.c_str());
@@ -122,7 +124,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
}
-#line 126 "engines/director/lingo/lingo-gr.cpp"
+#line 128 "engines/director/lingo/lingo-gr.cpp"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -654,18 +656,18 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 188, 188, 190, 196, 203, 204, 205, 206, 207,
- 236, 240, 242, 244, 245, 248, 254, 261, 262, 267,
- 271, 275, 276, 277, 282, 283, 284, 285, 286, 287,
- 288, 291, 293, 296, 298, 299, 300, 301, 304, 305,
- 306, 307, 308, 310, 311, 312, 313, 314, 316, 317,
- 318, 319, 320, 321, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 334, 335, 338, 342, 349, 351, 352,
- 355, 356, 359, 360, 361, 364, 365, 369, 375, 382,
- 383, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 399, 400, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
- 423, 424, 427, 431
+ 0, 190, 190, 192, 198, 205, 206, 207, 208, 209,
+ 238, 242, 244, 246, 247, 250, 256, 263, 264, 269,
+ 273, 277, 278, 279, 284, 285, 286, 287, 288, 289,
+ 290, 293, 295, 298, 300, 301, 302, 303, 306, 307,
+ 308, 309, 310, 312, 313, 314, 315, 316, 318, 319,
+ 320, 321, 322, 323, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 336, 337, 340, 344, 351, 353, 354,
+ 357, 358, 361, 362, 363, 366, 367, 371, 377, 384,
+ 385, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 401, 402, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
+ 425, 426, 429, 433
};
#endif
@@ -1247,51 +1249,51 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1253 "engines/director/lingo/lingo-gr.cpp"
+#line 1255 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1259 "engines/director/lingo/lingo-gr.cpp"
+#line 1261 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1265 "engines/director/lingo/lingo-gr.cpp"
+#line 1267 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1271 "engines/director/lingo/lingo-gr.cpp"
+#line 1273 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1277 "engines/director/lingo/lingo-gr.cpp"
+#line 1279 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1283 "engines/director/lingo/lingo-gr.cpp"
+#line 1285 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1289 "engines/director/lingo/lingo-gr.cpp"
+#line 1291 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1295 "engines/director/lingo/lingo-gr.cpp"
+#line 1297 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1557,624 +1559,624 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 188 "engines/director/lingo/lingo-gr.y"
- { g_lingo->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1563 "engines/director/lingo/lingo-gr.cpp"
+#line 190 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
+#line 1565 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 192 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1574 "engines/director/lingo/lingo-gr.cpp"
+#line 1576 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 196 "engines/director/lingo/lingo-gr.y"
+#line 198 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1584 "engines/director/lingo/lingo-gr.cpp"
+#line 1586 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 203 "engines/director/lingo/lingo-gr.y"
+#line 205 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1590 "engines/director/lingo/lingo-gr.cpp"
+#line 1592 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 236 "engines/director/lingo/lingo-gr.y"
+#line 238 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1596 "engines/director/lingo/lingo-gr.cpp"
+#line 1598 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 240 "engines/director/lingo/lingo-gr.y"
+#line 242 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1602 "engines/director/lingo/lingo-gr.cpp"
+#line 1604 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 242 "engines/director/lingo/lingo-gr.y"
+#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1608 "engines/director/lingo/lingo-gr.cpp"
+#line 1610 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 244 "engines/director/lingo/lingo-gr.y"
+#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1614 "engines/director/lingo/lingo-gr.cpp"
+#line 1616 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 248 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1625 "engines/director/lingo/lingo-gr.cpp"
+#line 1627 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 254 "engines/director/lingo/lingo-gr.y"
+#line 256 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1635 "engines/director/lingo/lingo-gr.cpp"
+#line 1637 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 261 "engines/director/lingo/lingo-gr.y"
+#line 263 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1641 "engines/director/lingo/lingo-gr.cpp"
+#line 1643 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 267 "engines/director/lingo/lingo-gr.y"
+#line 269 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1650 "engines/director/lingo/lingo-gr.cpp"
+#line 1652 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 271 "engines/director/lingo/lingo-gr.y"
+#line 273 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1657 "engines/director/lingo/lingo-gr.cpp"
+#line 1659 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 276 "engines/director/lingo/lingo-gr.y"
+#line 278 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1663 "engines/director/lingo/lingo-gr.cpp"
+#line 1665 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 277 "engines/director/lingo/lingo-gr.y"
+#line 279 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1669 "engines/director/lingo/lingo-gr.cpp"
+#line 1671 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
-#line 283 "engines/director/lingo/lingo-gr.y"
+#line 285 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1675 "engines/director/lingo/lingo-gr.cpp"
+#line 1677 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
-#line 284 "engines/director/lingo/lingo-gr.y"
+#line 286 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1681 "engines/director/lingo/lingo-gr.cpp"
+#line 1683 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
-#line 285 "engines/director/lingo/lingo-gr.y"
+#line 287 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1687 "engines/director/lingo/lingo-gr.cpp"
+#line 1689 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
-#line 286 "engines/director/lingo/lingo-gr.y"
+#line 288 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1693 "engines/director/lingo/lingo-gr.cpp"
+#line 1695 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
-#line 287 "engines/director/lingo/lingo-gr.y"
+#line 289 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1699 "engines/director/lingo/lingo-gr.cpp"
+#line 1701 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
-#line 288 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1705 "engines/director/lingo/lingo-gr.cpp"
+#line 1707 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tEXIT */
-#line 291 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 1711 "engines/director/lingo/lingo-gr.cpp"
+#line 1713 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFIELD */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1717 "engines/director/lingo/lingo-gr.cpp"
+#line 1719 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 1723 "engines/director/lingo/lingo-gr.cpp"
+#line 1725 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
-#line 298 "engines/director/lingo/lingo-gr.y"
+#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 1729 "engines/director/lingo/lingo-gr.cpp"
+#line 1731 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
-#line 299 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 1735 "engines/director/lingo/lingo-gr.cpp"
+#line 1737 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
-#line 300 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 1741 "engines/director/lingo/lingo-gr.cpp"
+#line 1743 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 1747 "engines/director/lingo/lingo-gr.cpp"
+#line 1749 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 1753 "engines/director/lingo/lingo-gr.cpp"
+#line 1755 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 1759 "engines/director/lingo/lingo-gr.cpp"
+#line 1761 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 1765 "engines/director/lingo/lingo-gr.cpp"
+#line 1767 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 1771 "engines/director/lingo/lingo-gr.cpp"
+#line 1773 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 1777 "engines/director/lingo/lingo-gr.cpp"
+#line 1779 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 1783 "engines/director/lingo/lingo-gr.cpp"
+#line 1785 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 1789 "engines/director/lingo/lingo-gr.cpp"
+#line 1791 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAY */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 1795 "engines/director/lingo/lingo-gr.cpp"
+#line 1797 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPLAYACCEL */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 1801 "engines/director/lingo/lingo-gr.cpp"
+#line 1803 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tPREVIOUS */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 1807 "engines/director/lingo/lingo-gr.cpp"
+#line 1809 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tPUT */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 1813 "engines/director/lingo/lingo-gr.cpp"
+#line 1815 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tREPEAT */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 1819 "engines/director/lingo/lingo-gr.cpp"
+#line 1821 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSCRIPT */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 1825 "engines/director/lingo/lingo-gr.cpp"
+#line 1827 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tSET */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 1831 "engines/director/lingo/lingo-gr.cpp"
+#line 1833 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tSTARTS */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 1837 "engines/director/lingo/lingo-gr.cpp"
+#line 1839 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tTELL */
-#line 321 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 1843 "engines/director/lingo/lingo-gr.cpp"
+#line 1845 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tTO */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 1849 "engines/director/lingo/lingo-gr.cpp"
+#line 1851 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tASSERTERROR */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 1855 "engines/director/lingo/lingo-gr.cpp"
+#line 1857 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tSPRITE */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 1861 "engines/director/lingo/lingo-gr.cpp"
+#line 1863 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWHEN */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 1867 "engines/director/lingo/lingo-gr.cpp"
+#line 1869 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWHILE */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 1873 "engines/director/lingo/lingo-gr.cpp"
+#line 1875 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWINDOW */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 1879 "engines/director/lingo/lingo-gr.cpp"
+#line 1881 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWITH */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 1885 "engines/director/lingo/lingo-gr.cpp"
+#line 1887 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tWITHIN */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 1891 "engines/director/lingo/lingo-gr.cpp"
+#line 1893 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* ID: tWORD */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 1897 "engines/director/lingo/lingo-gr.cpp"
+#line 1899 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* idlist: %empty */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 1903 "engines/director/lingo/lingo-gr.cpp"
+#line 1905 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* nonemptyidlist: ID */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 1912 "engines/director/lingo/lingo-gr.cpp"
+#line 1914 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 344 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 1920 "engines/director/lingo/lingo-gr.cpp"
+#line 1922 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* proc: ID '(' exprlist ')' */
-#line 355 "engines/director/lingo/lingo-gr.y"
+#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 1926 "engines/director/lingo/lingo-gr.cpp"
+#line 1928 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* proc: ID exprlist */
-#line 356 "engines/director/lingo/lingo-gr.y"
+#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-1].s), (yyvsp[0].nodelist)); }
-#line 1932 "engines/director/lingo/lingo-gr.cpp"
+#line 1934 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* definevars: tGLOBAL idlist */
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[0].idlist)); }
-#line 1938 "engines/director/lingo/lingo-gr.cpp"
+#line 1940 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* definevars: tPROPERTY idlist */
-#line 360 "engines/director/lingo/lingo-gr.y"
+#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[0].idlist)); }
-#line 1944 "engines/director/lingo/lingo-gr.cpp"
+#line 1946 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* definevars: tINSTANCE idlist */
-#line 361 "engines/director/lingo/lingo-gr.y"
+#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[0].idlist)); }
-#line 1950 "engines/director/lingo/lingo-gr.cpp"
+#line 1952 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* stmtlist: %empty */
-#line 364 "engines/director/lingo/lingo-gr.y"
+#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1956 "engines/director/lingo/lingo-gr.cpp"
+#line 1958 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* nonemptystmtlist: stmtlistline */
-#line 369 "engines/director/lingo/lingo-gr.y"
+#line 371 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1967 "engines/director/lingo/lingo-gr.cpp"
+#line 1969 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1977 "engines/director/lingo/lingo-gr.cpp"
+#line 1979 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* stmtlistline: '\n' */
-#line 382 "engines/director/lingo/lingo-gr.y"
+#line 384 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1983 "engines/director/lingo/lingo-gr.cpp"
+#line 1985 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* simpleexprnoparens: tINT */
-#line 388 "engines/director/lingo/lingo-gr.y"
+#line 390 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 1991 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* simpleexprnoparens: tFLOAT */
-#line 389 "engines/director/lingo/lingo-gr.y"
+#line 391 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 1997 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* simpleexprnoparens: tSYMBOL */
-#line 390 "engines/director/lingo/lingo-gr.y"
+#line 392 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2003 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* simpleexprnoparens: tSTRING */
-#line 391 "engines/director/lingo/lingo-gr.y"
+#line 393 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2009 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* simpleexprnoparens: '+' simpleexpr */
-#line 392 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2015 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* simpleexprnoparens: '-' simpleexpr */
-#line 393 "engines/director/lingo/lingo-gr.y"
+#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 2021 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* simpleexprnoparens: tNOT simpleexpr */
-#line 394 "engines/director/lingo/lingo-gr.y"
+#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 2027 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 395 "engines/director/lingo/lingo-gr.y"
+#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2031 "engines/director/lingo/lingo-gr.cpp"
+#line 2033 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* simpleexprnoparens: ID */
-#line 396 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2037 "engines/director/lingo/lingo-gr.cpp"
+#line 2039 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* simpleexpr: '(' expr ')' */
-#line 400 "engines/director/lingo/lingo-gr.y"
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 2045 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* expr: simpleexpr */
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 2051 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* expr: expr '+' expr */
-#line 404 "engines/director/lingo/lingo-gr.y"
+#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2055 "engines/director/lingo/lingo-gr.cpp"
+#line 2057 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* expr: expr '-' expr */
-#line 405 "engines/director/lingo/lingo-gr.y"
+#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 2063 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* expr: expr '*' expr */
-#line 406 "engines/director/lingo/lingo-gr.y"
+#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2067 "engines/director/lingo/lingo-gr.cpp"
+#line 2069 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* expr: expr '/' expr */
-#line 407 "engines/director/lingo/lingo-gr.y"
+#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2073 "engines/director/lingo/lingo-gr.cpp"
+#line 2075 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* expr: expr tMOD expr */
-#line 408 "engines/director/lingo/lingo-gr.y"
+#line 410 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2079 "engines/director/lingo/lingo-gr.cpp"
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* expr: expr '>' expr */
-#line 409 "engines/director/lingo/lingo-gr.y"
+#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2085 "engines/director/lingo/lingo-gr.cpp"
+#line 2087 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* expr: expr '<' expr */
-#line 410 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2091 "engines/director/lingo/lingo-gr.cpp"
+#line 2093 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* expr: expr tEQ expr */
-#line 411 "engines/director/lingo/lingo-gr.y"
+#line 413 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2097 "engines/director/lingo/lingo-gr.cpp"
+#line 2099 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* expr: expr tNEQ expr */
-#line 412 "engines/director/lingo/lingo-gr.y"
+#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2103 "engines/director/lingo/lingo-gr.cpp"
+#line 2105 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* expr: expr tGE expr */
-#line 413 "engines/director/lingo/lingo-gr.y"
+#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2109 "engines/director/lingo/lingo-gr.cpp"
+#line 2111 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* expr: expr tLE expr */
-#line 414 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2115 "engines/director/lingo/lingo-gr.cpp"
+#line 2117 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* expr: expr tAND expr */
-#line 415 "engines/director/lingo/lingo-gr.y"
+#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2121 "engines/director/lingo/lingo-gr.cpp"
+#line 2123 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* expr: expr tOR expr */
-#line 416 "engines/director/lingo/lingo-gr.y"
+#line 418 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2127 "engines/director/lingo/lingo-gr.cpp"
+#line 2129 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* expr: expr '&' expr */
-#line 417 "engines/director/lingo/lingo-gr.y"
+#line 419 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2133 "engines/director/lingo/lingo-gr.cpp"
+#line 2135 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* expr: expr tCONCAT expr */
-#line 418 "engines/director/lingo/lingo-gr.y"
+#line 420 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2139 "engines/director/lingo/lingo-gr.cpp"
+#line 2141 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* expr: expr tCONTAINS expr */
-#line 419 "engines/director/lingo/lingo-gr.y"
+#line 421 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2145 "engines/director/lingo/lingo-gr.cpp"
+#line 2147 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* expr: expr tSTARTS expr */
-#line 420 "engines/director/lingo/lingo-gr.y"
+#line 422 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2151 "engines/director/lingo/lingo-gr.cpp"
+#line 2153 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* exprlist: %empty */
-#line 423 "engines/director/lingo/lingo-gr.y"
+#line 425 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2157 "engines/director/lingo/lingo-gr.cpp"
+#line 2159 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* nonemptyexprlist: expr */
-#line 427 "engines/director/lingo/lingo-gr.y"
+#line 429 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2166 "engines/director/lingo/lingo-gr.cpp"
+#line 2168 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 431 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2174 "engines/director/lingo/lingo-gr.cpp"
+#line 2176 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2180 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2373,7 +2375,7 @@ yyreturn:
return yyresult;
}
-#line 436 "engines/director/lingo/lingo-gr.y"
+#line 438 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 711e188b77..4fd31614ed 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -137,7 +137,7 @@ extern int yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
-#line 109 "engines/director/lingo/lingo-gr.y"
+#line 111 "engines/director/lingo/lingo-gr.y"
Common::String *s;
int i;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 87a1199f35..28838519be 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -62,6 +62,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -71,25 +72,26 @@ extern int yyparse();
using namespace Director;
static void yyerror(const char *s) {
- g_lingo->_hadError = true;
+ LingoCompiler *compiler = g_lingo->_compiler;
+ compiler->_hadError = true;
warning("###################### LINGO: %s at line %d col %d in %s id: %d",
- s, g_lingo->_linenumber, g_lingo->_colnumber, scriptType2str(g_lingo->_assemblyContext->_scriptType),
- g_lingo->_assemblyContext->_id);
- if (g_lingo->_lines[2] != g_lingo->_lines[1])
- warning("# %3d: %s", g_lingo->_linenumber - 2, Common::String(g_lingo->_lines[2], g_lingo->_lines[1] - 1).c_str());
+ s, compiler->_linenumber, compiler->_colnumber, scriptType2str(compiler->_assemblyContext->_scriptType),
+ compiler->_assemblyContext->_id);
+ if (compiler->_lines[2] != compiler->_lines[1])
+ warning("# %3d: %s", compiler->_linenumber - 2, Common::String(compiler->_lines[2], compiler->_lines[1] - 1).c_str());
- if (g_lingo->_lines[1] != g_lingo->_lines[0])
- warning("# %3d: %s", g_lingo->_linenumber - 1, Common::String(g_lingo->_lines[1], g_lingo->_lines[0] - 1).c_str());
+ if (compiler->_lines[1] != compiler->_lines[0])
+ warning("# %3d: %s", compiler->_linenumber - 1, Common::String(compiler->_lines[1], compiler->_lines[0] - 1).c_str());
- const char *ptr = g_lingo->_lines[0];
+ const char *ptr = compiler->_lines[0];
while (*ptr && *ptr != '\n')
ptr++;
- warning("# %3d: %s", g_lingo->_linenumber, Common::String(g_lingo->_lines[0], ptr).c_str());
+ warning("# %3d: %s", compiler->_linenumber, Common::String(compiler->_lines[0], ptr).c_str());
Common::String arrow;
- for (uint i = 0; i < g_lingo->_colnumber; i++)
+ for (uint i = 0; i < compiler->_colnumber; i++)
arrow += ' ';
warning("# %s^ about here", arrow.c_str());
@@ -185,7 +187,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// TOP-LEVEL STUFF
-script: scriptpartlist { g_lingo->_assemblyAST = new ScriptNode($scriptpartlist); } ;
+script: scriptpartlist { g_lingo->_compiler->_assemblyAST = new ScriptNode($scriptpartlist); } ;
scriptpartlist: scriptpart[item] {
NodeList *list = new NodeList;
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 4a6358a57b..cfaccbaa00 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -757,6 +757,7 @@ char *yytext;
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-the.h"
@@ -768,32 +769,36 @@ static uint inputlen;
// Push lines in stack
static void pushLine(uint num) {
+ LingoCompiler *compiler = g_lingo->_compiler;
+
if (num > inputlen)
return;
- g_lingo->_lines[2] = g_lingo->_lines[1];
- g_lingo->_lines[1] = g_lingo->_lines[0];
- g_lingo->_lines[0] = &inputbuffer[num];
+ compiler->_lines[2] = compiler->_lines[1];
+ compiler->_lines[1] = compiler->_lines[0];
+ compiler->_lines[0] = &inputbuffer[num];
}
static void count() {
+ LingoCompiler *compiler = g_lingo->_compiler;
+
if (debugChannelSet(-1, kDebugParse))
- debug("LEXER: Read '%s' at %d:%d", yytext, g_lingo->_linenumber, g_lingo->_colnumber);
+ debug("LEXER: Read '%s' at %d:%d", yytext, compiler->_linenumber, compiler->_colnumber);
char *p = yytext;
while (*p) {
if (*p == '\n' || *p == '\xC2') {
- g_lingo->_linenumber++;
- g_lingo->_colnumber = 0;
+ compiler->_linenumber++;
+ compiler->_colnumber = 0;
if (*p == '\n')
- pushLine(g_lingo->_bytenumber + 1);
+ pushLine(compiler->_bytenumber + 1);
} else {
- g_lingo->_colnumber++;
+ compiler->_colnumber++;
}
p++;
- g_lingo->_bytenumber++;
+ compiler->_bytenumber++;
}
}
@@ -813,8 +818,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 816 "engines/director/lingo/lingo-lex.cpp"
-#line 817 "engines/director/lingo/lingo-lex.cpp"
+#line 821 "engines/director/lingo/lingo-lex.cpp"
+#line 822 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1034,10 +1039,10 @@ YY_DECL
}
{
-#line 106 "engines/director/lingo/lingo-lex.l"
+#line 111 "engines/director/lingo/lingo-lex.l"
-#line 1040 "engines/director/lingo/lingo-lex.cpp"
+#line 1045 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1093,67 +1098,67 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 108 "engines/director/lingo/lingo-lex.l"
+#line 113 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 110 "engines/director/lingo/lingo-lex.l"
+#line 115 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 112 "engines/director/lingo/lingo-lex.l"
+#line 117 "engines/director/lingo/lingo-lex.l"
{ count(); return tAFTER; } // D3
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 113 "engines/director/lingo/lingo-lex.l"
+#line 118 "engines/director/lingo/lingo-lex.l"
{ count(); return tAND; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 114 "engines/director/lingo/lingo-lex.l"
+#line 119 "engines/director/lingo/lingo-lex.l"
{ count(); return tBEFORE; } // D3
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 115 "engines/director/lingo/lingo-lex.l"
+#line 120 "engines/director/lingo/lingo-lex.l"
{ count(); return tCAST; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 116 "engines/director/lingo/lingo-lex.l"
+#line 121 "engines/director/lingo/lingo-lex.l"
{ count(); return tCHAR; } // D3
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 117 "engines/director/lingo/lingo-lex.l"
+#line 122 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONTAINS; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 118 "engines/director/lingo/lingo-lex.l"
+#line 123 "engines/director/lingo/lingo-lex.l"
{ count(); return tDOWN; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 119 "engines/director/lingo/lingo-lex.l"
+#line 124 "engines/director/lingo/lingo-lex.l"
{ count(); return tIF; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 120 "engines/director/lingo/lingo-lex.l"
+#line 125 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSIF; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 121 "engines/director/lingo/lingo-lex.l"
+#line 126 "engines/director/lingo/lingo-lex.l"
{ count(); return tELSE; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 122 "engines/director/lingo/lingo-lex.l"
+#line 127 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1175,177 +1180,177 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 140 "engines/director/lingo/lingo-lex.l"
+#line 145 "engines/director/lingo/lingo-lex.l"
{ count(); return tFACTORY; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 141 "engines/director/lingo/lingo-lex.l"
+#line 146 "engines/director/lingo/lingo-lex.l"
{ count(); return tEXIT; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 142 "engines/director/lingo/lingo-lex.l"
+#line 147 "engines/director/lingo/lingo-lex.l"
{ count(); return tFIELD; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 143 "engines/director/lingo/lingo-lex.l"
+#line 148 "engines/director/lingo/lingo-lex.l"
{ count(); return tGLOBAL; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 144 "engines/director/lingo/lingo-lex.l"
+#line 149 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 145 "engines/director/lingo/lingo-lex.l"
+#line 150 "engines/director/lingo/lingo-lex.l"
{ count(); return tGO; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 146 "engines/director/lingo/lingo-lex.l"
+#line 151 "engines/director/lingo/lingo-lex.l"
{ count(); return tGOLOOP; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 147 "engines/director/lingo/lingo-lex.l"
+#line 152 "engines/director/lingo/lingo-lex.l"
{ count(); return tINSTANCE; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 148 "engines/director/lingo/lingo-lex.l"
+#line 153 "engines/director/lingo/lingo-lex.l"
{ count(); return tINTERSECTS;}
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 149 "engines/director/lingo/lingo-lex.l"
+#line 154 "engines/director/lingo/lingo-lex.l"
{ count(); return tINTO; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 150 "engines/director/lingo/lingo-lex.l"
+#line 155 "engines/director/lingo/lingo-lex.l"
{ count(); return tIN; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 151 "engines/director/lingo/lingo-lex.l"
+#line 156 "engines/director/lingo/lingo-lex.l"
{ count(); return tITEM; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 152 "engines/director/lingo/lingo-lex.l"
+#line 157 "engines/director/lingo/lingo-lex.l"
{ count(); return tLINE; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 153 "engines/director/lingo/lingo-lex.l"
+#line 158 "engines/director/lingo/lingo-lex.l"
{ count(); return tMACRO;; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 154 "engines/director/lingo/lingo-lex.l"
+#line 159 "engines/director/lingo/lingo-lex.l"
{ count(); return tMETHOD; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 155 "engines/director/lingo/lingo-lex.l"
+#line 160 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOD;}
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 156 "engines/director/lingo/lingo-lex.l"
+#line 161 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOVIE; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 157 "engines/director/lingo/lingo-lex.l"
+#line 162 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEXT; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 158 "engines/director/lingo/lingo-lex.l"
+#line 163 "engines/director/lingo/lingo-lex.l"
{ count(); return tNOT; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 159 "engines/director/lingo/lingo-lex.l"
+#line 164 "engines/director/lingo/lingo-lex.l"
{ count(); return tOF; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 160 "engines/director/lingo/lingo-lex.l"
+#line 165 "engines/director/lingo/lingo-lex.l"
{ count(); return tON; } // D3
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 161 "engines/director/lingo/lingo-lex.l"
+#line 166 "engines/director/lingo/lingo-lex.l"
{ count(); return tOPEN; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 162 "engines/director/lingo/lingo-lex.l"
+#line 167 "engines/director/lingo/lingo-lex.l"
{ count(); return tOR; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 163 "engines/director/lingo/lingo-lex.l"
+#line 168 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 164 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 165 "engines/director/lingo/lingo-lex.l"
+#line 170 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAYACCEL; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 166 "engines/director/lingo/lingo-lex.l"
+#line 171 "engines/director/lingo/lingo-lex.l"
{ count(); return tPREVIOUS; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 167 "engines/director/lingo/lingo-lex.l"
+#line 172 "engines/director/lingo/lingo-lex.l"
{ count(); return tPROPERTY; } // D4
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 168 "engines/director/lingo/lingo-lex.l"
+#line 173 "engines/director/lingo/lingo-lex.l"
{ count(); return tPUT; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 169 "engines/director/lingo/lingo-lex.l"
+#line 174 "engines/director/lingo/lingo-lex.l"
{ count(); return tREPEAT; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 170 "engines/director/lingo/lingo-lex.l"
+#line 175 "engines/director/lingo/lingo-lex.l"
{ count(); return tSCRIPT; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 171 "engines/director/lingo/lingo-lex.l"
+#line 176 "engines/director/lingo/lingo-lex.l"
{ count(); return tSET; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 172 "engines/director/lingo/lingo-lex.l"
+#line 177 "engines/director/lingo/lingo-lex.l"
{ count(); return tSTARTS; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 173 "engines/director/lingo/lingo-lex.l"
+#line 178 "engines/director/lingo/lingo-lex.l"
{ count(); return tTELL; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 174 "engines/director/lingo/lingo-lex.l"
+#line 179 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1384,7 +1389,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 209 "engines/director/lingo/lingo-lex.l"
+#line 214 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1410,7 +1415,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 231 "engines/director/lingo/lingo-lex.l"
+#line 236 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1487,7 +1492,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 304 "engines/director/lingo/lingo-lex.l"
+#line 309 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1525,7 +1530,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 338 "engines/director/lingo/lingo-lex.l"
+#line 343 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1555,82 +1560,82 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 364 "engines/director/lingo/lingo-lex.l"
+#line 369 "engines/director/lingo/lingo-lex.l"
{ count(); return tTHEN; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 365 "engines/director/lingo/lingo-lex.l"
+#line 370 "engines/director/lingo/lingo-lex.l"
{ count(); return tTO; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 366 "engines/director/lingo/lingo-lex.l"
+#line 371 "engines/director/lingo/lingo-lex.l"
{ count(); return tASSERTERROR; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 367 "engines/director/lingo/lingo-lex.l"
+#line 372 "engines/director/lingo/lingo-lex.l"
{ count(); return tSPRITE; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 368 "engines/director/lingo/lingo-lex.l"
+#line 373 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITH; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 369 "engines/director/lingo/lingo-lex.l"
+#line 374 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITHIN; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 370 "engines/director/lingo/lingo-lex.l"
+#line 375 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHEN; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 371 "engines/director/lingo/lingo-lex.l"
+#line 376 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHILE; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 372 "engines/director/lingo/lingo-lex.l"
+#line 377 "engines/director/lingo/lingo-lex.l"
{ count(); return tWINDOW; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 373 "engines/director/lingo/lingo-lex.l"
+#line 378 "engines/director/lingo/lingo-lex.l"
{ count(); return tWORD; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 375 "engines/director/lingo/lingo-lex.l"
+#line 380 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEQ; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 376 "engines/director/lingo/lingo-lex.l"
+#line 381 "engines/director/lingo/lingo-lex.l"
{ count(); return tGE; }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 377 "engines/director/lingo/lingo-lex.l"
+#line 382 "engines/director/lingo/lingo-lex.l"
{ count(); return tLE; }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 378 "engines/director/lingo/lingo-lex.l"
+#line 383 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONCAT; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 379 "engines/director/lingo/lingo-lex.l"
+#line 384 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 381 "engines/director/lingo/lingo-lex.l"
+#line 386 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1640,41 +1645,41 @@ YY_RULE_SETUP
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 387 "engines/director/lingo/lingo-lex.l"
+#line 392 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.f = atof(yytext); return tFLOAT; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 388 "engines/director/lingo/lingo-lex.l"
+#line 393 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 389 "engines/director/lingo/lingo-lex.l"
+#line 394 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
case 72:
/* rule 72 can match eol */
YY_RULE_SETUP
-#line 390 "engines/director/lingo/lingo-lex.l"
+#line 395 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 391 "engines/director/lingo/lingo-lex.l"
+#line 396 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 392 "engines/director/lingo/lingo-lex.l"
+#line 397 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 394 "engines/director/lingo/lingo-lex.l"
+#line 399 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1677 "engines/director/lingo/lingo-lex.cpp"
+#line 1682 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -2683,16 +2688,16 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 394 "engines/director/lingo/lingo-lex.l"
+#line 399 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
namespace Director {
-int Lingo::parse(const char *code) {
+int LingoCompiler::parse(const char *code) {
inputbuffer = code;
- g_lingo->_bytenumber = 0;
+ _bytenumber = 0;
inputlen = strlen(code);
_lines[0] = _lines[1] = _lines[2] = code;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 5c220c850e..d92895bdcf 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -37,6 +37,7 @@
#include "director/director.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-the.h"
@@ -48,32 +49,36 @@ static uint inputlen;
// Push lines in stack
static void pushLine(uint num) {
+ LingoCompiler *compiler = g_lingo->_compiler;
+
if (num > inputlen)
return;
- g_lingo->_lines[2] = g_lingo->_lines[1];
- g_lingo->_lines[1] = g_lingo->_lines[0];
- g_lingo->_lines[0] = &inputbuffer[num];
+ compiler->_lines[2] = compiler->_lines[1];
+ compiler->_lines[1] = compiler->_lines[0];
+ compiler->_lines[0] = &inputbuffer[num];
}
static void count() {
+ LingoCompiler *compiler = g_lingo->_compiler;
+
if (debugChannelSet(-1, kDebugParse))
- debug("LEXER: Read '%s' at %d:%d", yytext, g_lingo->_linenumber, g_lingo->_colnumber);
+ debug("LEXER: Read '%s' at %d:%d", yytext, compiler->_linenumber, compiler->_colnumber);
char *p = yytext;
while (*p) {
if (*p == '\n' || *p == '\xC2') {
- g_lingo->_linenumber++;
- g_lingo->_colnumber = 0;
+ compiler->_linenumber++;
+ compiler->_colnumber = 0;
if (*p == '\n')
- pushLine(g_lingo->_bytenumber + 1);
+ pushLine(compiler->_bytenumber + 1);
} else {
- g_lingo->_colnumber++;
+ compiler->_colnumber++;
}
p++;
- g_lingo->_bytenumber++;
+ compiler->_bytenumber++;
}
}
@@ -397,9 +402,9 @@ extern int yydebug;
namespace Director {
-int Lingo::parse(const char *code) {
+int LingoCompiler::parse(const char *code) {
inputbuffer = code;
- g_lingo->_bytenumber = 0;
+ _bytenumber = 0;
inputlen = strlen(code);
_lines[0] = _lines[1] = _lines[2] = code;
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 5329984914..13d7805362 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -201,6 +201,40 @@ Common::String ScriptContext::asString() {
return Common::String::format("script: #%s %d %p", _name.c_str(), _inheritanceLevel, (void *)this);
}
+Symbol ScriptContext::define(Common::String &name, int nargs, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames) {
+ Symbol sym;
+ sym.name = new Common::String(name);
+ sym.type = HANDLER;
+ sym.u.defn = code;
+ sym.nargs = nargs;
+ sym.maxArgs = nargs;
+ sym.argNames = argNames;
+ sym.varNames = varNames;
+ sym.ctx = this;
+ sym.archive = _archive;
+
+ if (debugChannelSet(1, kDebugCompile)) {
+ uint pc = 0;
+ while (pc < sym.u.defn->size()) {
+ uint spc = pc;
+ Common::String instr = g_lingo->decodeInstruction(_archive, sym.u.defn, pc, &pc);
+ debugC(1, kDebugCompile, "[%5d] %s", spc, instr.c_str());
+ }
+ debugC(1, kDebugCompile, "<end define code>");
+ }
+
+ if (!g_lingo->_eventHandlerTypeIds.contains(name)) {
+ _functionHandlers[name] = sym;
+ if (_scriptType == kMovieScript && _archive && !_archive->functionHandlers.contains(name)) {
+ _archive->functionHandlers[name] = sym;
+ }
+ } else {
+ _eventHandlers[g_lingo->_eventHandlerTypeIds[name]] = sym;
+ }
+
+ return sym;
+}
+
Symbol ScriptContext::getMethod(const Common::String &methodName) {
Symbol sym;
diff --git a/engines/director/lingo/lingo-patcher.cpp b/engines/director/lingo/lingo-patcher.cpp
index ad9703b548..500e276ca5 100644
--- a/engines/director/lingo/lingo-patcher.cpp
+++ b/engines/director/lingo/lingo-patcher.cpp
@@ -23,7 +23,7 @@
#include "director/director.h"
#include "director/cast.h"
#include "director/movie.h"
-#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-codegen.h"
namespace Director {
@@ -165,25 +165,25 @@ struct ScriptPatch {
{nullptr, nullptr, kPlatformUnknown, nullptr, kNoneScript, 0, 0, nullptr, nullptr}
};
-Common::String Lingo::patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenum) {
+Common::String LingoCompiler::patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenum) {
if (!archive)
return line;
const ScriptPatch *patch = scriptPatches;
- Common::String movie = _vm->getCurrentPath() + archive->cast->getMacName();
+ Common::String movie = g_director->getCurrentPath() + archive->cast->getMacName();
// So far, we have not many patches, so do linear lookup
while (patch->gameId) {
// First, we do cheap comparisons
if (patch->type != type || patch->id != id || patch->linenum != linenum ||
- (patch->platform != kPlatformUnknown && patch->platform != _vm->getPlatform())) {
+ (patch->platform != kPlatformUnknown && patch->platform != g_director->getPlatform())) {
patch++;
continue;
}
// Now expensive ones
- if (movie.compareToIgnoreCase(patch->movie) || strcmp(patch->gameId, _vm->getGameId())
- || (patch->extra && strcmp(patch->extra, _vm->getExtra()))) {
+ if (movie.compareToIgnoreCase(patch->movie) || strcmp(patch->gameId, g_director->getGameId())
+ || (patch->extra && strcmp(patch->extra, g_director->getExtra()))) {
patch++;
continue;
}
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index 1c1b9ba3ba..e3609344fe 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -22,7 +22,7 @@
#include "director/director.h"
#include "director/movie.h"
-#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-codegen.h"
namespace Director {
@@ -126,7 +126,7 @@ static const char *findtokstart(const char *start, const char *token) {
return ptr;
}
-Common::String Lingo::codePreprocessor(const char *s, LingoArchive *archive, ScriptType type, uint16 id, bool simple) {
+Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *archive, ScriptType type, uint16 id, bool simple) {
Common::String res;
// We start from processing the continuation synbols
@@ -228,7 +228,7 @@ Common::String Lingo::codePreprocessor(const char *s, LingoArchive *archive, Scr
}
debugC(2, kDebugParse | kDebugPreprocess, "line: %d '%s'", iflevel, line.c_str());
- if (!defFound && (type == kMovieScript || type == kCastScript) && (_vm->getVersion() < 400 || _vm->getCurrentMovie()->_allowOutdatedLingo)) {
+ if (!defFound && (type == kMovieScript || type == kCastScript) && (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo)) {
tok = nexttok(line.c_str());
if (tok.equals("macro") || tok.equals("factory") || tok.equals("on")) {
defFound = true;
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index f2bd25b499..760e5dd767 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -38,6 +38,7 @@
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
+#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
@@ -45,6 +46,15 @@ namespace Director {
Lingo *g_lingo;
+int calcStringAlignment(const char *s) {
+ return calcCodeAlignment(strlen(s) + 1);
+}
+
+int calcCodeAlignment(int l) {
+ int instLen = sizeof(inst);
+ return (l + instLen - 1) / instLen;
+}
+
Symbol::Symbol() {
name = nullptr;
type = VOIDSYM;
@@ -146,26 +156,13 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_currentScript = 0;
_currentScriptContext = nullptr;
- _assemblyAST = nullptr;
- _assemblyArchive = nullptr;
- _currentAssembly = nullptr;
- _assemblyContext = nullptr;
-
_currentChannelId = -1;
_globalCounter = 0;
_pc = 0;
_abort = false;
- _indef = false;
_expectError = false;
_caughtError = false;
- _linenumber = _colnumber = _bytenumber = 0;
- _lines[0] = _lines[1] = _lines[2] = nullptr;
-
- _hadError = false;
-
- _inFactory = false;
-
_floatPrecision = 4;
_floatPrecisionFormat = "%.4f";
@@ -181,6 +178,8 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_windowList.type = ARRAY;
_windowList.u.farr = new DatumArray;
+ _compiler = new LingoCompiler;
+
initEventHandlerTypes();
initBuiltIns();
@@ -266,122 +265,13 @@ void LingoArchive::addCode(const char *code, ScriptType type, uint16 id, const c
else
contextName = Common::String::format("%d", id);
- ScriptContext *sc = g_lingo->compileLingo(code, this, type, id, contextName);
+ ScriptContext *sc = g_lingo->_compiler->compileLingo(code, this, type, id, contextName);
if (sc) {
scriptContexts[type][id] = sc;
*sc->_refCount += 1;
}
}
-ScriptContext *Lingo::compileAnonymous(const char *code) {
- debugC(1, kDebugCompile, "Compiling anonymous lingo\n"
- "***********\n%s\n\n***********", code);
-
- return compileLingo(code, nullptr, kNoneScript, 0, "[anonymous]", true);
-}
-
-ScriptContext *Lingo::compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonymous) {
- _assemblyArchive = archive;
- _assemblyAST = nullptr;
- ScriptContext *mainContext = _assemblyContext = new ScriptContext(scriptName, archive, type, id);
- _currentAssembly = new ScriptData;
-
- _methodVars = new VarTypeHash;
- _linenumber = _colnumber = 1;
- _hadError = false;
-
- if (!strncmp(code, "menu:", 5) || scumm_strcasestr(code, "\nmenu:")) {
- debugC(1, kDebugCompile, "Parsing menu");
- parseMenu(code);
-
- return nullptr;
- }
-
- // Preprocess the code for ease of the parser
- Common::String codeNorm = codePreprocessor(code, archive, type, id);
- code = codeNorm.c_str();
-
- // Parse the Lingo and build an AST
- parse(code);
-
- // Generate bytecode
- if (_assemblyAST) {
- _assemblyAST->compile();
- }
-
- // for D4 and above, there usually won't be any code left.
- // all scoped methods will be defined and stored by the code parser
- // however D3 and below allow scopeless functions!
- // and these can show up in D4 when imported from other movies
-
- if (!_currentAssembly->empty()) {
- // end of script, add a c_procret so stack frames work as expected
- code1(LC::c_procret);
- code1(STOP);
-
- if (debugChannelSet(3, kDebugCompile)) {
- if (_currentAssembly->size() && !_hadError)
- Common::hexdump((byte *)&_currentAssembly->front(), _currentAssembly->size() * sizeof(inst));
-
- debugC(2, kDebugCompile, "<resulting code>");
- uint pc = 0;
- while (pc < _currentAssembly->size()) {
- uint spc = pc;
- Common::String instr = decodeInstruction(_assemblyArchive, _currentAssembly, pc, &pc);
- debugC(2, kDebugCompile, "[%5d] %s", spc, instr.c_str());
- }
- debugC(2, kDebugCompile, "<end code>");
- }
-
- Symbol currentFunc;
-
- currentFunc.type = HANDLER;
- currentFunc.u.defn = _currentAssembly;
- Common::String typeStr = Common::String(scriptType2str(type));
- currentFunc.name = new Common::String("[" + typeStr + " " + _assemblyContext->getName() + "]");
- currentFunc.ctx = _assemblyContext;
- currentFunc.archive = archive;
- currentFunc.anonymous = anonymous;
- // arg names should be empty, but just in case
- Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
- for (uint i = 0; i < _argstack.size(); i++) {
- argNames->push_back(Common::String(_argstack[i]->c_str()));
- }
- Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
- for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
- if (it->_value == kVarLocal)
- varNames->push_back(Common::String(it->_key));
- }
-
- if (debugChannelSet(1, kDebugCompile)) {
- debug("Function vars");
- debugN(" Args: ");
- for (uint i = 0; i < argNames->size(); i++) {
- debugN("%s, ", (*argNames)[i].c_str());
- }
- debugN("\n");
- debugN(" Local vars: ");
- for (uint i = 0; i < varNames->size(); i++) {
- debugN("%s, ", (*varNames)[i].c_str());
- }
- debugN("\n");
- }
-
- currentFunc.argNames = argNames;
- currentFunc.varNames = varNames;
- _assemblyContext->_eventHandlers[kEventGeneric] = currentFunc;
- }
-
- delete _methodVars;
- _methodVars = nullptr;
- _currentAssembly = nullptr;
- delete _assemblyAST;
- _assemblyAST = nullptr;
- _assemblyContext = nullptr;
- _assemblyArchive = nullptr;
- return mainContext;
-}
-
void Lingo::printStack(const char *s, uint pc) {
Common::String stack(s);
@@ -1101,10 +991,6 @@ int Datum::compareTo(Datum &d, bool ignoreCase) const {
}
}
-void Lingo::parseMenu(const char *code) {
- warning("STUB: parseMenu");
-}
-
void Lingo::runTests() {
Common::File inFile;
Common::ArchiveMemberList fsList;
@@ -1136,11 +1022,10 @@ void Lingo::runTests() {
debug(">> Compiling file %s of size %d, id: %d", fileList[i].c_str(), size, counter);
- _hadError = false;
mainArchive->addCode(script, kTestScript, counter);
if (!debugChannelSet(-1, kDebugCompileOnly)) {
- if (!_hadError)
+ if (!_compiler->_hadError)
executeScript(kTestScript, counter);
else
debug(">> Skipping execution");
@@ -1182,6 +1067,16 @@ void Lingo::executePerFrameHook(int frame, int subframe) {
}
}
+void Lingo::cleanLocalVars() {
+ // Clean up current scope local variables and clean up memory
+ debugC(3, kDebugLingoExec, "cleanLocalVars: have %d vars", _localvars->size());
+
+ g_lingo->_localvars->clear();
+ delete g_lingo->_localvars;
+
+ g_lingo->_localvars = nullptr;
+}
+
void Lingo::printAllVars() {
debugN(" Local vars: ");
if (_localvars) {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index b070a3d119..4e74b5f9e3 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -50,11 +50,15 @@ class Cast;
class ScriptContext;
class DirectorEngine;
class Frame;
+class LingoCompiler;
typedef void (*inst)(void);
#define STOP (inst)0
#define ENTITY_INDEX(t,id) ((t) * 100000 + (id))
+int calcStringAlignment(const char *s);
+int calcCodeAlignment(int l);
+
typedef Common::Array<inst> ScriptData;
struct FuncDesc {
@@ -233,9 +237,6 @@ public:
void resetLingo();
- ScriptContext *compileAnonymous(const char *code);
- ScriptContext *compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonyomous = false);
- ScriptContext *compileLingoV4(Common::SeekableReadStreamEndian &stream, LingoArchive *archive, const Common::String &archName, uint16 version);
void executeHandler(const Common::String &name);
void executeScript(ScriptType type, uint16 id);
void printStack(const char *s, uint pc);
@@ -256,13 +257,6 @@ public:
void runTests();
- // lingo-preprocessor.cpp
-public:
- Common::String codePreprocessor(const char *s, LingoArchive *archive, ScriptType type, uint16 id, bool simple = false);
-
- // lingo-patcher.cpp
- Common::String patchLingoCode(Common::String &line, LingoArchive *archive, ScriptType type, uint16 id, int linenumber);
-
// lingo-events.cpp
private:
void initEventHandlerTypes();
@@ -287,14 +281,6 @@ public:
void printAllVars();
- int calcStringAlignment(const char *s) {
- return calcCodeAlignment(strlen(s) + 1);
- }
- int calcCodeAlignment(int l) {
- int instLen = sizeof(inst);
- return (l + instLen - 1) / instLen;
- }
-
inst readInst() { return getInst(_pc++); }
inst getInst(uint pc) { return (*_currentScript)[pc]; }
int readInt() { return getInt(_pc++); }
@@ -355,43 +341,9 @@ private:
Common::StringArray _entityNames;
Common::StringArray _fieldNames;
-// compiler resources
public:
- bool isInArgStack(Common::String *s);
- void clearArgStack();
-
- int code1(inst code) { _currentAssembly->push_back(code); return _currentAssembly->size() - 1; }
- int code2(inst code_1, inst code_2) { int o = code1(code_1); code1(code_2); return o; }
- int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
- int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
- void codeArg(Common::String *s);
- int codeCmd(Common::String *s, int numpar);
- Symbol codeDefine(Common::String &s, int start, int nargs, int end = -1, bool removeCode = true);
- void codeFactory(Common::String &s);
- int codeFloat(double f);
- int codeFunc(Common::String *s, int numpar);
- int codeInt(int val);
- void codeLabel(int label);
- int codeString(const char *s);
- void processIf(int toplabel, int endlabel);
- void registerMethodVar(const Common::String &name, VarType type);
-
- LingoArchive *_assemblyArchive;
- ScriptContext *_assemblyContext;
- Node *_assemblyAST;
- ScriptData *_currentAssembly;
- bool _indef;
- uint _linenumber;
- uint _colnumber;
- uint _bytenumber;
- const char *_lines[3];
- bool _inFactory;
-
- Common::Array<Common::String *> _argstack;
- Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
- Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
+ LingoCompiler *_compiler;
-public:
int _currentChannelId;
LingoArchive *_currentArchive;
ScriptContext *_currentScriptContext;
@@ -408,8 +360,6 @@ public:
int _objectEntityId;
- Common::Array<int> _labelstack;
-
SymbolHash _builtinCmds;
SymbolHash _builtinFuncs;
SymbolHash _builtinConsts;
@@ -418,12 +368,6 @@ public:
Common::String _floatPrecisionFormat;
- bool _hadError;
-
-private:
- int parse(const char *code);
- void parseMenu(const char *code);
-
public:
void push(Datum d);
Datum pop(bool eval = true);
Commit: 38e8068180fd0f5f2556d12b1a6ba9da600b4111
https://github.com/scummvm/scummvm/commit/38e8068180fd0f5f2556d12b1a6ba9da600b4111
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Use visitor pattern for AST traversal
Compile functions now belong to LingoCompile.
Changed paths:
R engines/director/lingo/lingo-ast.cpp
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/module.mk
diff --git a/engines/director/lingo/lingo-ast.cpp b/engines/director/lingo/lingo-ast.cpp
deleted file mode 100644
index a2a67edbad..0000000000
--- a/engines/director/lingo/lingo-ast.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "director/lingo/lingo.h"
-#include "director/lingo/lingo-ast.h"
-#include "director/lingo/lingo-code.h"
-#include "director/lingo/lingo-codegen.h"
-#include "director/lingo/lingo-object.h"
-
-namespace Director {
-
-/* ScriptNode */
-
-void ScriptNode::compile() {
- for (uint i = 0; i < nodes->size(); i++) {
- (*nodes)[i]->compile();
- }
-}
-
-/* FactoryNode */
-
-void FactoryNode::compile() {
- g_lingo->_compiler->_inFactory = true;
- ScriptContext *mainContext = g_lingo->_compiler->_assemblyContext;
- g_lingo->_compiler->_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
-
- g_lingo->_compiler->codeFactory(*name);
- for (uint i = 0; i < methods->size(); i++) {
- (*methods)[i]->compile();
- }
-
- g_lingo->_compiler->_inFactory = false;
- g_lingo->_compiler->_assemblyContext = mainContext;
-}
-
-/* HandlerNode */
-
-void HandlerNode::compile() {
- g_lingo->_compiler->_indef = true;
- VarTypeHash *mainMethodVars = g_lingo->_compiler->_methodVars;
- g_lingo->_compiler->_methodVars = new VarTypeHash;
-
- for (VarTypeHash::iterator i = mainMethodVars->begin(); i != mainMethodVars->end(); ++i) {
- if (i->_value == kVarGlobal || i->_value == kVarProperty)
- (*g_lingo->_compiler->_methodVars)[i->_key] = i->_value;
- }
- if (g_lingo->_compiler->_inFactory) {
- for (DatumHash::iterator i = g_lingo->_compiler->_assemblyContext->_properties.begin(); i != g_lingo->_compiler->_assemblyContext->_properties.end(); ++i) {
- (*g_lingo->_compiler->_methodVars)[i->_key] = kVarInstance;
- }
- }
-
- for (uint i = 0; i < args->size(); i++) { // TODO: eliminate argstack
- g_lingo->_compiler->codeArg((*args)[i]);
- }
-
- uint start = g_lingo->_compiler->_currentAssembly->size(); // TODO: should always be zero
- for (uint i = 0; i < stmts->size(); i++) {
- (*stmts)[i]->compile();
- }
-
- g_lingo->_compiler->code1(LC::c_procret);
- g_lingo->_compiler->codeDefine(*name, start, args->size());
-
- g_lingo->_compiler->clearArgStack();
- g_lingo->_compiler->_indef = false;
- delete g_lingo->_compiler->_methodVars;
- g_lingo->_compiler->_methodVars = mainMethodVars;
-}
-
-/* CmdNode */
-
-void CmdNode::compile() {
- for (uint i = 0; i < args->size(); i++) {
- (*args)[i]->compile();
- }
- g_lingo->_compiler->codeCmd(name, args->size());
-}
-
-/* GlobalNode */
-
-void GlobalNode::compile() {
- for (uint i = 0; i < names->size(); i++) {
- g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarGlobal);
- }
-}
-
-/* PropertyNode */
-
-void PropertyNode::compile() {
- for (uint i = 0; i < names->size(); i++) {
- g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarProperty);
- }
-}
-
-/* InstanceNode */
-
-void InstanceNode::compile() {
- for (uint i = 0; i < names->size(); i++) {
- g_lingo->_compiler->registerMethodVar(*(*names)[i], kVarInstance);
- }
-}
-
-/* IntNode */
-
-void IntNode::compile() {
- g_lingo->_compiler->code1(LC::c_intpush);
- g_lingo->_compiler->codeInt(val);
-}
-
-/* FloatNode */
-
-void FloatNode::compile() {
- g_lingo->_compiler->code1(LC::c_floatpush);
- g_lingo->_compiler->codeFloat(val);
-}
-
-/* SymbolNode */
-
-void SymbolNode::compile() {
- g_lingo->_compiler->code1(LC::c_symbolpush);
- g_lingo->_compiler->codeString(val->c_str());
-}
-
-/* StringNode */
-
-void StringNode::compile() {
- g_lingo->_compiler->code1(LC::c_stringpush);
- g_lingo->_compiler->codeString(val->c_str());
-}
-
-/* FuncNode */
-
-void FuncNode::compile() {
- for (uint i = 0; i < args->size(); i++) {
- (*args)[i]->compile();
- }
- g_lingo->_compiler->codeFunc(name, args->size());
-}
-
-/* VarNode */
-
-void VarNode::compile() {
- if (g_lingo->_builtinConsts.contains(*name)) {
- g_lingo->_compiler->code1(LC::c_constpush);
- } else {
- g_lingo->_compiler->code1(LC::c_eval);
- }
- g_lingo->_compiler->codeString(name->c_str());
-}
-
-/* ParensNode */
-
-void ParensNode::compile() {
- expr->compile();
-}
-
-/* UnaryOpNode */
-
-void UnaryOpNode::compile() {
- arg->compile();
- g_lingo->_compiler->code1(op);
-}
-
-/* BinaryOpNode */
-
-void BinaryOpNode::compile() {
- a->compile();
- b->compile();
- g_lingo->_compiler->code1(op);
-}
-
-} // End of namespace Director
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 742dcef6eb..931f6cbec3 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -26,6 +26,22 @@
namespace Director {
struct Node;
+struct ScriptNode;
+struct FactoryNode;
+struct HandlerNode;
+struct CmdNode;
+struct GlobalNode;
+struct PropertyNode;
+struct InstanceNode;
+struct IntNode;
+struct FloatNode;
+struct SymbolNode;
+struct StringNode;
+struct FuncNode;
+struct VarNode;
+struct ParensNode;
+struct UnaryOpNode;
+struct BinaryOpNode;
typedef Common::Array<Node *> NodeList;
typedef Common::Array<Common::String *> IDList;
@@ -59,6 +75,31 @@ enum NodeType {
kBinaryOpNode
};
+/* NodeVisitor */
+
+class NodeVisitor {
+public:
+ NodeVisitor() {}
+ virtual ~NodeVisitor() {}
+
+ virtual void visitScriptNode(ScriptNode *node) = 0;
+ virtual void visitFactoryNode(FactoryNode *node) = 0;
+ virtual void visitHandlerNode(HandlerNode *node) = 0;
+ virtual void visitCmdNode(CmdNode *node) = 0;
+ virtual void visitGlobalNode(GlobalNode *node) = 0;
+ virtual void visitPropertyNode(PropertyNode *node) = 0;
+ virtual void visitInstanceNode(InstanceNode *node) = 0;
+ virtual void visitIntNode(IntNode *node) = 0;
+ virtual void visitFloatNode(FloatNode *node) = 0;
+ virtual void visitSymbolNode(SymbolNode *node) = 0;
+ virtual void visitStringNode(StringNode *node) = 0;
+ virtual void visitFuncNode(FuncNode *node) = 0;
+ virtual void visitVarNode(VarNode *node) = 0;
+ virtual void visitParensNode(ParensNode *node) = 0;
+ virtual void visitUnaryOpNode(UnaryOpNode *node) = 0;
+ virtual void visitBinaryOpNode(BinaryOpNode *node) = 0;
+};
+
/* Node */
struct Node {
@@ -67,8 +108,8 @@ struct Node {
bool isStatement;
Node(NodeType t) : type(t), isExpression(false), isStatement(false) {}
- virtual ~Node() = default;
- virtual void compile() {}
+ virtual ~Node() {}
+ virtual void accept(NodeVisitor *visitor) = 0;
};
/* ExprNode */
@@ -77,7 +118,7 @@ struct ExprNode : Node {
ExprNode(NodeType t) : Node(t) {
isExpression = true;
}
- virtual ~ExprNode() = default;
+ virtual ~ExprNode() {}
};
/* StmtNode */
@@ -86,7 +127,7 @@ struct StmtNode : Node {
StmtNode(NodeType t) : Node(t) {
isStatement = true;
}
- virtual ~StmtNode() = default;
+ virtual ~StmtNode() {}
};
/* ScriptNode */
@@ -98,7 +139,9 @@ struct ScriptNode : Node {
virtual ~ScriptNode() {
deleteList(nodes);
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitScriptNode(this);
+ }
};
/* FactoryNode */
@@ -113,7 +156,9 @@ struct FactoryNode : Node {
delete name;
deleteList(methods);
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitFactoryNode(this);
+ }
};
/* HandlerNode */
@@ -130,7 +175,9 @@ struct HandlerNode : Node {
deleteList(args);
deleteList(stmts);
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitHandlerNode(this);
+ }
};
/* CmdNode */
@@ -145,7 +192,9 @@ struct CmdNode : StmtNode {
delete name;
deleteList(args);
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitCmdNode(this);
+ }
};
/* GlobalNode */
@@ -157,7 +206,9 @@ struct GlobalNode : StmtNode {
virtual ~GlobalNode() {
delete names;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitGlobalNode(this);
+ }
};
/* PropertyNode */
@@ -169,7 +220,9 @@ struct PropertyNode : StmtNode {
virtual ~PropertyNode() {
delete names;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPropertyNode(this);
+ }
};
/* InstanceNode */
@@ -181,7 +234,9 @@ struct InstanceNode : StmtNode {
virtual ~InstanceNode() {
delete names;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitInstanceNode(this);
+ }
};
/* IntNode */
@@ -191,7 +246,9 @@ struct IntNode : ExprNode {
IntNode(int valIn) : ExprNode(kIntNode), val(valIn) {}
virtual ~IntNode() = default;
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitIntNode(this);
+ }
};
/* FloatNode */
@@ -201,7 +258,9 @@ struct FloatNode : ExprNode {
FloatNode(double valIn) : ExprNode(kFloatNode), val(valIn) {}
virtual ~FloatNode() = default;
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitFloatNode(this);
+ }
};
/* SymbolNode */
@@ -213,7 +272,9 @@ struct SymbolNode : ExprNode {
virtual ~SymbolNode() {
delete val;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitSymbolNode(this);
+ }
};
/* StringNode */
@@ -225,7 +286,9 @@ struct StringNode : ExprNode {
virtual ~StringNode() {
delete val;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitStringNode(this);
+ }
};
/* FuncNode */
@@ -240,7 +303,9 @@ struct FuncNode : StmtNode {
delete name;
deleteList(args);
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitFuncNode(this);
+ }
};
/* VarNode */
@@ -252,7 +317,9 @@ struct VarNode : ExprNode {
virtual ~VarNode() {
delete name;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitVarNode(this);
+ }
};
/* ParensNode */
@@ -264,7 +331,9 @@ struct ParensNode : ExprNode {
virtual ~ParensNode() {
delete expr;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitParensNode(this);
+ }
};
/* UnaryOpNode */
@@ -277,7 +346,9 @@ struct UnaryOpNode : ExprNode {
virtual ~UnaryOpNode() {
delete arg;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitUnaryOpNode(this);
+ }
};
/* BinaryOpNode */
@@ -292,7 +363,9 @@ struct BinaryOpNode : ExprNode {
delete a;
delete b;
}
- virtual void compile();
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitBinaryOpNode(this);
+ }
};
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 5731097e7d..59f8630b55 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -103,7 +103,7 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
// Generate bytecode
if (_assemblyAST) {
- _assemblyAST->compile();
+ _assemblyAST->accept(this);
}
// for D4 and above, there usually won't be any code left.
@@ -374,4 +374,165 @@ void LingoCompiler::parseMenu(const char *code) {
warning("STUB: parseMenu");
}
+/* ScriptNode */
+
+void LingoCompiler::visitScriptNode(ScriptNode *node) {
+ for (uint i = 0; i < node->nodes->size(); i++) {
+ (*node->nodes)[i]->accept(this);
+ }
+}
+
+/* FactoryNode */
+
+void LingoCompiler::visitFactoryNode(FactoryNode *node) {
+ _inFactory = true;
+ ScriptContext *mainContext = _assemblyContext;
+ _assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
+
+ codeFactory(*node->name);
+ for (uint i = 0; i < node->methods->size(); i++) {
+ (*node->methods)[i]->accept(this);
+ }
+
+ _inFactory = false;
+ _assemblyContext = mainContext;
+}
+
+/* HandlerNode */
+
+void LingoCompiler::visitHandlerNode(HandlerNode *node) {
+ _indef = true;
+ VarTypeHash *mainMethodVars = _methodVars;
+ _methodVars = new VarTypeHash;
+
+ for (VarTypeHash::iterator i = mainMethodVars->begin(); i != mainMethodVars->end(); ++i) {
+ if (i->_value == kVarGlobal || i->_value == kVarProperty)
+ (*_methodVars)[i->_key] = i->_value;
+ }
+ if (_inFactory) {
+ for (DatumHash::iterator i = _assemblyContext->_properties.begin(); i != _assemblyContext->_properties.end(); ++i) {
+ (*_methodVars)[i->_key] = kVarInstance;
+ }
+ }
+
+ for (uint i = 0; i < node->args->size(); i++) { // TODO: eliminate argstack
+ codeArg((*node->args)[i]);
+ }
+
+ uint start = _currentAssembly->size(); // TODO: should always be zero
+ for (uint i = 0; i < node->stmts->size(); i++) {
+ (*node->stmts)[i]->accept(this);
+ }
+
+ code1(LC::c_procret);
+ codeDefine(*node->name, start, node->args->size());
+
+ clearArgStack();
+ _indef = false;
+ delete _methodVars;
+ _methodVars = mainMethodVars;
+}
+
+/* CmdNode */
+
+void LingoCompiler::visitCmdNode(CmdNode *node) {
+ for (uint i = 0; i < node->args->size(); i++) {
+ (*node->args)[i]->accept(this);
+ }
+ codeCmd(node->name, node->args->size());
+}
+
+/* GlobalNode */
+
+void LingoCompiler::visitGlobalNode(GlobalNode *node) {
+ for (uint i = 0; i < node->names->size(); i++) {
+ registerMethodVar(*(*node->names)[i], kVarGlobal);
+ }
+}
+
+/* PropertyNode */
+
+void LingoCompiler::visitPropertyNode(PropertyNode *node) {
+ for (uint i = 0; i < node->names->size(); i++) {
+ registerMethodVar(*(*node->names)[i], kVarProperty);
+ }
+}
+
+/* InstanceNode */
+
+void LingoCompiler::visitInstanceNode(InstanceNode *node) {
+ for (uint i = 0; i < node->names->size(); i++) {
+ registerMethodVar(*(*node->names)[i], kVarInstance);
+ }
+}
+
+/* IntNode */
+
+void LingoCompiler::visitIntNode(IntNode *node) {
+ code1(LC::c_intpush);
+ codeInt(node->val);
+}
+
+/* FloatNode */
+
+void LingoCompiler::visitFloatNode(FloatNode *node) {
+ code1(LC::c_floatpush);
+ codeFloat(node->val);
+}
+
+/* SymbolNode */
+
+void LingoCompiler::visitSymbolNode(SymbolNode *node) {
+ code1(LC::c_symbolpush);
+ codeString(node->val->c_str());
+}
+
+/* StringNode */
+
+void LingoCompiler::visitStringNode(StringNode *node) {
+ code1(LC::c_stringpush);
+ codeString(node->val->c_str());
+}
+
+/* FuncNode */
+
+void LingoCompiler::visitFuncNode(FuncNode *node) {
+ for (uint i = 0; i < node->args->size(); i++) {
+ (*node->args)[i]->accept(this);
+ }
+ codeFunc(node->name, node->args->size());
+}
+
+/* VarNode */
+
+void LingoCompiler::visitVarNode(VarNode *node) {
+ if (g_lingo->_builtinConsts.contains(*node->name)) {
+ code1(LC::c_constpush);
+ } else {
+ code1(LC::c_eval);
+ }
+ codeString(node->name->c_str());
+}
+
+/* ParensNode */
+
+void LingoCompiler::visitParensNode(ParensNode *node) {
+ node->expr->accept(this);
+}
+
+/* UnaryOpNode */
+
+void LingoCompiler::visitUnaryOpNode(UnaryOpNode *node) {
+ node->arg->accept(this);
+ code1(node->op);
+}
+
+/* BinaryOpNode */
+
+void LingoCompiler::visitBinaryOpNode(BinaryOpNode *node) {
+ node->a->accept(this);
+ node->b->accept(this);
+ code1(node->op);
+}
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 3570713ffd..a74673e5c9 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -25,12 +25,14 @@
#include "director/types.h"
#include "director/lingo/lingo.h"
+#include "director/lingo/lingo-ast.h"
namespace Director {
-class LingoCompiler {
+class LingoCompiler : NodeVisitor {
public:
LingoCompiler();
+ virtual ~LingoCompiler() {}
ScriptContext *compileAnonymous(const char *code);
ScriptContext *compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonyomous = false);
@@ -74,6 +76,24 @@ public:
bool _hadError;
+public:
+ virtual void visitScriptNode(ScriptNode *node);
+ virtual void visitFactoryNode(FactoryNode *node);
+ virtual void visitHandlerNode(HandlerNode *node);
+ virtual void visitCmdNode(CmdNode *node);
+ virtual void visitGlobalNode(GlobalNode *node);
+ virtual void visitPropertyNode(PropertyNode *node);
+ virtual void visitInstanceNode(InstanceNode *node);
+ virtual void visitIntNode(IntNode *node);
+ virtual void visitFloatNode(FloatNode *node);
+ virtual void visitSymbolNode(SymbolNode *node);
+ virtual void visitStringNode(StringNode *node);
+ virtual void visitFuncNode(FuncNode *node);
+ virtual void visitVarNode(VarNode *node);
+ virtual void visitParensNode(ParensNode *node);
+ virtual void visitUnaryOpNode(UnaryOpNode *node);
+ virtual void visitBinaryOpNode(BinaryOpNode *node);
+
private:
int parse(const char *code);
void parseMenu(const char *code);
diff --git a/engines/director/module.mk b/engines/director/module.mk
index e14a492a60..2f17e00eef 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -23,7 +23,6 @@ MODULE_OBJS = \
util.o \
window.o \
lingo/lingo.o \
- lingo/lingo-ast.o \
lingo/lingo-builtins.o \
lingo/lingo-bytecode.o \
lingo/lingo-code.o \
Commit: 20947e25050527d59043cc03122fbe1efca0a426
https://github.com/scummvm/scummvm/commit/20947e25050527d59043cc03122fbe1efca0a426
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: Rename nodes to children
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 931f6cbec3..ca2eded8ed 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -133,11 +133,11 @@ struct StmtNode : Node {
/* ScriptNode */
struct ScriptNode : Node {
- NodeList *nodes;
+ NodeList *children;
- ScriptNode(NodeList *nodesIn): Node(kScriptNode), nodes(nodesIn) {}
+ ScriptNode(NodeList *childrenIn): Node(kScriptNode), children(childrenIn) {}
virtual ~ScriptNode() {
- deleteList(nodes);
+ deleteList(children);
}
virtual void accept(NodeVisitor *visitor) {
visitor->visitScriptNode(this);
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 59f8630b55..da25a5c835 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -377,8 +377,8 @@ void LingoCompiler::parseMenu(const char *code) {
/* ScriptNode */
void LingoCompiler::visitScriptNode(ScriptNode *node) {
- for (uint i = 0; i < node->nodes->size(); i++) {
- (*node->nodes)[i]->accept(this);
+ for (uint i = 0; i < node->children->size(); i++) {
+ (*node->children)[i]->accept(this);
}
}
Commit: 0a87b2ab2ed37f2e6d377d54454bcadd8ff1bc7f
https://github.com/scummvm/scummvm/commit/0a87b2ab2ed37f2e6d377d54454bcadd8ff1bc7f
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Eliminate argstack
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-object.h
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 892efd8439..5fda7e45de 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -1431,7 +1431,7 @@ ScriptContext *LingoCompiler::compileLingoV4(Common::SeekableReadStreamEndian &s
Symbol sym;
if (!functionName.empty()) {
debugC(5, kDebugLoading, "Function %d binding: %s()", i, functionName.c_str());
- sym = _assemblyContext->define(functionName, argCount, _currentAssembly, argNames, varNames);
+ sym = _assemblyContext->define(functionName, _currentAssembly, argNames, varNames);
} else {
warning("Function has unknown name id %d, skipping define", nameIndex);
sym.name = new Common::String();
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index da25a5c835..28c7e87b87 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -139,11 +139,7 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
currentFunc.ctx = _assemblyContext;
currentFunc.archive = archive;
currentFunc.anonymous = anonymous;
- // arg names should be empty, but just in case
Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
- for (uint i = 0; i < _argstack.size(); i++) {
- argNames->push_back(Common::String(_argstack[i]->c_str()));
- }
Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
if (it->_value == kVarLocal)
@@ -179,18 +175,18 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
return mainContext;
}
-Symbol LingoCompiler::codeDefine(Common::String &name, int start, int nargs, int end, bool removeCode) {
+Symbol LingoCompiler::codeDefine(const Common::String &name, const Common::Array<Common::String *> &args, int start, int end, bool removeCode) {
if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
debug("codeDefine(\"%s\"(len: %d), %d, %d, %d)",
- name.c_str(), _currentAssembly->size() - 1, start, nargs, end);
+ name.c_str(), _currentAssembly->size() - 1, args.size(), start, end);
if (end == -1)
end = _currentAssembly->size();
ScriptData *code = new ScriptData(&(*_currentAssembly)[start], end - start);
Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
- for (uint i = 0; i < _argstack.size(); i++) {
- argNames->push_back(Common::String(_argstack[i]->c_str()));
+ for (uint i = 0; i < args.size(); i++) {
+ argNames->push_back(Common::String(*args[i]));
}
Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
@@ -198,7 +194,7 @@ Symbol LingoCompiler::codeDefine(Common::String &name, int start, int nargs, int
varNames->push_back(Common::String(it->_key));
}
- Symbol sym = _assemblyContext->define(name, nargs, code, argNames, varNames);
+ Symbol sym = _assemblyContext->define(name, code, argNames, varNames);
if (debugChannelSet(1, kDebugCompile)) {
debug("Function vars");
@@ -265,25 +261,6 @@ int LingoCompiler::codeInt(int val) {
return _currentAssembly->size();
}
-bool LingoCompiler::isInArgStack(Common::String *s) {
- for (uint i = 0; i < _argstack.size(); i++)
- if (_argstack[i]->equalsIgnoreCase(*s))
- return true;
-
- return false;
-}
-
-void LingoCompiler::codeArg(Common::String *s) {
- _argstack.push_back(new Common::String(*s));
-}
-
-void LingoCompiler::clearArgStack() {
- for (uint i = 0; i < _argstack.size(); i++)
- delete _argstack[i];
-
- _argstack.clear();
-}
-
int LingoCompiler::codeCmd(Common::String *s, int numpar) {
// Insert current line number to our asserts
if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
@@ -415,19 +392,14 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
}
}
- for (uint i = 0; i < node->args->size(); i++) { // TODO: eliminate argstack
- codeArg((*node->args)[i]);
- }
-
uint start = _currentAssembly->size(); // TODO: should always be zero
for (uint i = 0; i < node->stmts->size(); i++) {
(*node->stmts)[i]->accept(this);
}
code1(LC::c_procret);
- codeDefine(*node->name, start, node->args->size());
+ codeDefine(*node->name, *node->args, start);
- clearArgStack();
_indef = false;
delete _methodVars;
_methodVars = mainMethodVars;
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index a74673e5c9..92c4147562 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -38,16 +38,12 @@ public:
ScriptContext *compileLingo(const char *code, LingoArchive *archive, ScriptType type, uint16 id, const Common::String &scriptName, bool anonyomous = false);
ScriptContext *compileLingoV4(Common::SeekableReadStreamEndian &stream, LingoArchive *archive, const Common::String &archName, uint16 version);
- bool isInArgStack(Common::String *s);
- void clearArgStack();
-
int code1(inst code) { _currentAssembly->push_back(code); return _currentAssembly->size() - 1; }
int code2(inst code_1, inst code_2) { int o = code1(code_1); code1(code_2); return o; }
int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
- void codeArg(Common::String *s);
int codeCmd(Common::String *s, int numpar);
- Symbol codeDefine(Common::String &s, int start, int nargs, int end = -1, bool removeCode = true);
+ Symbol codeDefine(const Common::String &s, const Common::Array<Common::String *> &args, int start, int end = -1, bool removeCode = true);
void codeFactory(Common::String &s);
int codeFloat(double f);
int codeFunc(Common::String *s, int numpar);
@@ -68,7 +64,6 @@ public:
const char *_lines[3];
bool _inFactory;
- Common::Array<Common::String *> _argstack;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 13d7805362..875f52816f 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -201,13 +201,13 @@ Common::String ScriptContext::asString() {
return Common::String::format("script: #%s %d %p", _name.c_str(), _inheritanceLevel, (void *)this);
}
-Symbol ScriptContext::define(Common::String &name, int nargs, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames) {
+Symbol ScriptContext::define(const Common::String &name, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames) {
Symbol sym;
sym.name = new Common::String(name);
sym.type = HANDLER;
sym.u.defn = code;
- sym.nargs = nargs;
- sym.maxArgs = nargs;
+ sym.nargs = argNames->size();
+ sym.maxArgs = argNames->size();
sym.argNames = argNames;
sym.varNames = varNames;
sym.ctx = this;
diff --git a/engines/director/lingo/lingo-object.h b/engines/director/lingo/lingo-object.h
index f2c36387d7..0cf4e8f641 100644
--- a/engines/director/lingo/lingo-object.h
+++ b/engines/director/lingo/lingo-object.h
@@ -211,7 +211,7 @@ public:
Datum getProp(const Common::String &propName) override;
bool setProp(const Common::String &propName, const Datum &value) override;
- Symbol define(Common::String &name, int nargs, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames);
+ Symbol define(const Common::String &name, ScriptData *code, Common::Array<Common::String> *argNames, Common::Array<Common::String> *varNames);
};
namespace LM {
Commit: 220d4adac74c66e7fe617a419be28615e77f5c96
https://github.com/scummvm/scummvm/commit/220d4adac74c66e7fe617a419be28615e77f5c96
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Eliminate codeDefine
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 28c7e87b87..b42cf940cb 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -163,6 +163,8 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
currentFunc.argNames = argNames;
currentFunc.varNames = varNames;
_assemblyContext->_eventHandlers[kEventGeneric] = currentFunc;
+ } else {
+ delete _currentAssembly;
}
delete _methodVars;
@@ -175,50 +177,6 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
return mainContext;
}
-Symbol LingoCompiler::codeDefine(const Common::String &name, const Common::Array<Common::String *> &args, int start, int end, bool removeCode) {
- if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
- debug("codeDefine(\"%s\"(len: %d), %d, %d, %d)",
- name.c_str(), _currentAssembly->size() - 1, args.size(), start, end);
-
- if (end == -1)
- end = _currentAssembly->size();
-
- ScriptData *code = new ScriptData(&(*_currentAssembly)[start], end - start);
- Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
- for (uint i = 0; i < args.size(); i++) {
- argNames->push_back(Common::String(*args[i]));
- }
- Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
- for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
- if (it->_value == kVarLocal)
- varNames->push_back(Common::String(it->_key));
- }
-
- Symbol sym = _assemblyContext->define(name, code, argNames, varNames);
-
- if (debugChannelSet(1, kDebugCompile)) {
- debug("Function vars");
- debugN(" Args: ");
- for (uint i = 0; i < argNames->size(); i++) {
- debugN("%s, ", (*argNames)[i].c_str());
- }
- debugN("\n");
- debugN(" Local vars: ");
- for (uint i = 0; i < varNames->size(); i++) {
- debugN("%s, ", (*varNames)[i].c_str());
- }
- debugN("\n");
- }
-
- // Now remove all defined code from the _currentAssembly
- if (removeCode)
- for (int i = end - 1; i >= start; i--) {
- _currentAssembly->remove_at(i);
- }
-
- return sym;
-}
-
int LingoCompiler::codeString(const char *str) {
int numInsts = calcStringAlignment(str);
@@ -379,6 +337,8 @@ void LingoCompiler::visitFactoryNode(FactoryNode *node) {
void LingoCompiler::visitHandlerNode(HandlerNode *node) {
_indef = true;
+ ScriptData *mainAssembly = _currentAssembly;
+ _currentAssembly = new ScriptData;
VarTypeHash *mainMethodVars = _methodVars;
_methodVars = new VarTypeHash;
@@ -392,15 +352,42 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
}
}
- uint start = _currentAssembly->size(); // TODO: should always be zero
for (uint i = 0; i < node->stmts->size(); i++) {
(*node->stmts)[i]->accept(this);
}
-
code1(LC::c_procret);
- codeDefine(*node->name, *node->args, start);
+
+ if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
+ debug("define handler \"%s\" (len: %d)", node->name->c_str(), _currentAssembly->size() - 1);
+
+ Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
+ for (uint i = 0; i < node->args->size(); i++) {
+ argNames->push_back(Common::String((*node->args)[i]->c_str()));
+ }
+ Common::Array<Common::String> *varNames = new Common::Array<Common::String>;
+ for (Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo>::iterator it = _methodVars->begin(); it != _methodVars->end(); ++it) {
+ if (it->_value == kVarLocal)
+ varNames->push_back(Common::String(it->_key));
+ }
+
+ if (debugChannelSet(1, kDebugCompile)) {
+ debug("Function vars");
+ debugN(" Args: ");
+ for (uint i = 0; i < argNames->size(); i++) {
+ debugN("%s, ", (*argNames)[i].c_str());
+ }
+ debugN("\n");
+ debugN(" Local vars: ");
+ for (uint i = 0; i < varNames->size(); i++) {
+ debugN("%s, ", (*varNames)[i].c_str());
+ }
+ debugN("\n");
+ }
+
+ _assemblyContext->define(*node->name, _currentAssembly, argNames, varNames);
_indef = false;
+ _currentAssembly = mainAssembly;
delete _methodVars;
_methodVars = mainMethodVars;
}
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 92c4147562..0bddfb1153 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -43,7 +43,6 @@ public:
int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
int codeCmd(Common::String *s, int numpar);
- Symbol codeDefine(const Common::String &s, const Common::Array<Common::String *> &args, int start, int end = -1, bool removeCode = true);
void codeFactory(Common::String &s);
int codeFloat(double f);
int codeFunc(Common::String *s, int numpar);
Commit: 6b756b3213d5545098d518146e8810d3f3324c9a
https://github.com/scummvm/scummvm/commit/6b756b3213d5545098d518146e8810d3f3324c9a
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Rename codeFactory to registerFactory
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 5fda7e45de..1c887706c5 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -943,7 +943,7 @@ ScriptContext *LingoCompiler::compileLingoV4(Common::SeekableReadStreamEndian &s
debugC(1, kDebugCompile, "Add V4 script %d: factory '%s'", scriptId, factoryName.c_str());
sc = _assemblyContext = new ScriptContext(factoryName, _assemblyArchive, scriptType, castId);
- codeFactory(factoryName);
+ registerFactory(factoryName);
} else {
debugC(1, kDebugCompile, "Add V4 script %d: %s %d", scriptId, scriptType2str(scriptType), castId);
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index b42cf940cb..663eec9016 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -293,7 +293,7 @@ void LingoCompiler::registerMethodVar(const Common::String &name, VarType type)
}
}
-void LingoCompiler::codeFactory(Common::String &name) {
+void LingoCompiler::registerFactory(Common::String &name) {
// FIXME: The factory's context should not be tied to the LingoArchive
// but bytecode needs it to resolve names
_assemblyContext->setName(name);
@@ -324,10 +324,10 @@ void LingoCompiler::visitFactoryNode(FactoryNode *node) {
ScriptContext *mainContext = _assemblyContext;
_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
- codeFactory(*node->name);
for (uint i = 0; i < node->methods->size(); i++) {
(*node->methods)[i]->accept(this);
}
+ registerFactory(*node->name);
_inFactory = false;
_assemblyContext = mainContext;
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 0bddfb1153..c9f9f50e6d 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -43,13 +43,13 @@ public:
int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
int codeCmd(Common::String *s, int numpar);
- void codeFactory(Common::String &s);
int codeFloat(double f);
int codeFunc(Common::String *s, int numpar);
int codeInt(int val);
void codeLabel(int label);
int codeString(const char *s);
void processIf(int toplabel, int endlabel);
+ void registerFactory(Common::String &s);
void registerMethodVar(const Common::String &name, VarType type);
LingoArchive *_assemblyArchive;
Commit: 52a056f91c8f7fa798d2affb87768a7b96f8814a
https://github.com/scummvm/scummvm/commit/52a056f91c8f7fa798d2affb87768a7b96f8814a
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement if statements
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index ca2eded8ed..3a0411ff92 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -33,6 +33,8 @@ struct CmdNode;
struct GlobalNode;
struct PropertyNode;
struct InstanceNode;
+struct IfStmtNode;
+struct IfElseStmtNode;
struct IntNode;
struct FloatNode;
struct SymbolNode;
@@ -64,6 +66,8 @@ enum NodeType {
kGlobalNode,
kPropertyNode,
kInstanceNode,
+ kIfStmtNode,
+ kIfElseStmtNode,
kIntNode,
kFloatNode,
kSymbolNode,
@@ -89,6 +93,8 @@ public:
virtual void visitGlobalNode(GlobalNode *node) = 0;
virtual void visitPropertyNode(PropertyNode *node) = 0;
virtual void visitInstanceNode(InstanceNode *node) = 0;
+ virtual void visitIfStmtNode(IfStmtNode *node) = 0;
+ virtual void visitIfElseStmtNode(IfElseStmtNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
virtual void visitSymbolNode(SymbolNode *node) = 0;
@@ -239,6 +245,42 @@ struct InstanceNode : StmtNode {
}
};
+/* IfStmtNode */
+
+struct IfStmtNode : StmtNode {
+ Node *cond;
+ NodeList *stmts;
+
+ IfStmtNode(Node *condIn, NodeList *stmtsIn)
+ : StmtNode(kIfStmtNode), cond(condIn), stmts(stmtsIn) {}
+ virtual ~IfStmtNode() {
+ delete cond;
+ deleteList(stmts);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitIfStmtNode(this);
+ }
+};
+
+/* IfElseStmtNode */
+
+struct IfElseStmtNode : StmtNode {
+ Node *cond;
+ NodeList *stmts1;
+ NodeList *stmts2;
+
+ IfElseStmtNode(Node *condIn, NodeList *stmts1In, NodeList *stmts2In)
+ : StmtNode(kIfElseStmtNode), cond(condIn), stmts1(stmts1In), stmts2(stmts2In) {}
+ virtual ~IfElseStmtNode() {
+ delete cond;
+ deleteList(stmts1);
+ deleteList(stmts2);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitIfElseStmtNode(this);
+ }
+};
+
/* IntNode */
struct IntNode : ExprNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 663eec9016..4dc1859836 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -425,6 +425,49 @@ void LingoCompiler::visitInstanceNode(InstanceNode *node) {
}
}
+/* IfStmtNode */
+
+void LingoCompiler::visitIfStmtNode(IfStmtNode *node) {
+ node->cond->accept(this);
+ uint jzPos = _currentAssembly->size();
+ code2(LC::c_jumpifz, 0);
+ for (uint i = 0; i < node->stmts->size(); i++) {
+ (*node->stmts)[i]->accept(this);
+ }
+ uint endPos = _currentAssembly->size();
+
+ inst jzOffset = 0;
+ WRITE_UINT32(&jzOffset, endPos - jzPos);
+ (*_currentAssembly)[jzPos + 1] = jzOffset;
+}
+
+/* IfElseStmtNode */
+
+void LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
+ node->cond->accept(this);
+ uint jzPos = _currentAssembly->size();
+ code2(LC::c_jumpifz, 0);
+ for (uint i = 0; i < node->stmts1->size(); i++) {
+ (*node->stmts1)[i]->accept(this);
+ }
+
+ uint jmpPos = _currentAssembly->size();
+ code2(LC::c_jump, 0);
+ uint block2StartPos = _currentAssembly->size();
+ for (uint i = 0; i < node->stmts2->size(); i++) {
+ (*node->stmts2)[i]->accept(this);
+ }
+ uint endPos = _currentAssembly->size();
+
+ inst jzOffset = 0;
+ WRITE_UINT32(&jzOffset, block2StartPos - jzPos);
+ (*_currentAssembly)[jzPos + 1] = jzOffset;
+
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, endPos - jmpPos);
+ (*_currentAssembly)[jmpPos + 1] = jmpOffset;
+}
+
/* IntNode */
void LingoCompiler::visitIntNode(IntNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index c9f9f50e6d..020b0906db 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -78,6 +78,8 @@ public:
virtual void visitGlobalNode(GlobalNode *node);
virtual void visitPropertyNode(PropertyNode *node);
virtual void visitInstanceNode(InstanceNode *node);
+ virtual void visitIfStmtNode(IfStmtNode *node);
+ virtual void visitIfElseStmtNode(IfElseStmtNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
virtual void visitSymbolNode(SymbolNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 6316cc508e..e0b8a3da49 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -261,14 +261,16 @@ enum yysymbol_kind_t
YYSYMBOL_stmtoneliner = 106, /* stmtoneliner */
YYSYMBOL_proc = 107, /* proc */
YYSYMBOL_definevars = 108, /* definevars */
- YYSYMBOL_stmtlist = 109, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 110, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 111, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 112, /* simpleexprnoparens */
- YYSYMBOL_simpleexpr = 113, /* simpleexpr */
- YYSYMBOL_expr = 114, /* expr */
- YYSYMBOL_exprlist = 115, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 116 /* nonemptyexprlist */
+ YYSYMBOL_ifstmt = 109, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 110, /* ifelsestmt */
+ YYSYMBOL_stmtlist = 111, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 112, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 113, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 114, /* simpleexprnoparens */
+ YYSYMBOL_simpleexpr = 115, /* simpleexpr */
+ YYSYMBOL_expr = 116, /* expr */
+ YYSYMBOL_exprlist = 117, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 118 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -588,18 +590,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 66
+#define YYFINAL 81
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 567
+#define YYLAST 1016
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 90
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 27
+#define YYNNTS 29
/* YYNRULES -- Number of rules. */
-#define YYNRULES 113
+#define YYNRULES 121
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 164
+#define YYNSTATES 189
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -662,12 +664,13 @@ static const yytype_int16 yyrline[] =
290, 293, 295, 298, 300, 301, 302, 303, 306, 307,
308, 309, 310, 312, 313, 314, 315, 316, 318, 319,
320, 321, 322, 323, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 336, 337, 340, 344, 351, 353, 354,
- 357, 358, 361, 362, 363, 366, 367, 371, 377, 384,
- 385, 390, 391, 392, 393, 394, 395, 396, 397, 398,
- 401, 402, 405, 406, 407, 408, 409, 410, 411, 412,
- 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 425, 426, 429, 433
+ 331, 332, 333, 336, 337, 340, 344, 351, 352, 353,
+ 356, 357, 360, 361, 364, 365, 366, 369, 373, 377,
+ 383, 387, 391, 395, 396, 400, 406, 413, 414, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 430, 431,
+ 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
+ 444, 445, 446, 447, 448, 449, 450, 451, 454, 455,
+ 458, 462
};
#endif
@@ -701,8 +704,9 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"scriptpart", "macro", "factory", "method", "methodlist",
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
"idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "definevars",
- "stmtlist", "nonemptystmtlist", "stmtlistline", "simpleexprnoparens",
- "simpleexpr", "expr", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "ifstmt", "ifelsestmt", "stmtlist", "nonemptystmtlist", "stmtlistline",
+ "simpleexprnoparens", "simpleexpr", "expr", "exprlist",
+ "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -725,7 +729,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-140)
+#define YYPACT_NINF (-91)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -739,23 +743,25 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 293, -140, -140, -140, -140, -140, -140, -140, -140, 414,
- -140, -140, 414, -140, -140, -140, -140, -140, -140, -140,
- -140, -140, -140, -140, 414, -140, -140, 414, -140, -140,
- -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
- -140, -140, -140, 414, 414, -140, -140, 16, 293, -140,
- -140, -140, -140, 153, -66, -140, -140, -140, -140, -140,
- -62, 414, -60, -140, -140, 414, -140, -140, -140, -140,
- -140, -140, 223, 223, 223, 223, -51, -140, -140, 448,
- -140, -49, -140, 414, -45, -63, -44, 223, -140, -140,
- -140, 435, -53, 223, 223, 223, 223, 223, 223, 223,
- 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
- 223, 223, -140, 32, 414, -140, -140, -40, -140, -140,
- 32, 435, -140, -140, -42, -52, -52, -52, -52, 483,
- 483, -140, 60, -52, -52, -52, -52, 60, -50, -50,
- -140, -140, 448, -140, -30, 32, -140, -140, 414, -63,
- 355, -140, -140, -140, -29, -140, 414, 32, -68, -140,
- 32, -140, 414, -140
+ 313, -91, -91, -91, -91, -91, -91, -91, -91, 863,
+ 173, -91, -91, 863, -91, -91, -91, -91, -91, -91,
+ -91, -91, -91, -91, -91, 863, -91, -91, 863, -91,
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
+ -91, -91, -91, -91, 863, 863, -91, -91, 4, 313,
+ -91, -91, -91, -91, 243, -91, -91, -91, -91, -91,
+ -91, -91, -76, -66, -91, -91, -91, -91, 173, 173,
+ 173, 173, -73, -91, -91, -21, 863, -64, -63, -60,
+ 863, -91, -91, 173, 897, -59, -52, -91, 863, -91,
+ -91, -91, 884, 173, 621, 173, 173, 173, 173, 173,
+ 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
+ 173, 173, -44, -72, -91, -91, -40, 884, -65, -91,
+ 173, -91, -91, -42, 682, 24, 38, 38, 38, 38,
+ 932, 932, -91, -14, 38, 38, 38, 38, -14, -46,
+ -46, -91, -91, 682, 863, -91, -91, -36, -91, -91,
+ 682, -34, 897, -91, -91, -91, 374, -91, -91, 743,
+ 682, 863, -72, 436, -91, 804, -33, -91, 682, -91,
+ -30, -91, 863, 682, -91, -91, 497, 682, -69, -91,
+ 559, -22, 682, -91, 863, -15, -91, -91, -91
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -764,38 +770,40 @@ static const yytype_int16 yypact[] =
static const yytype_int8 yydefact[] =
{
0, 24, 46, 28, 32, 50, 59, 30, 31, 63,
- 33, 35, 0, 39, 40, 42, 47, 48, 49, 51,
- 54, 57, 60, 58, 0, 43, 45, 63, 26, 44,
- 41, 38, 25, 27, 52, 29, 36, 37, 62, 56,
- 34, 61, 53, 63, 0, 55, 5, 0, 2, 3,
- 6, 7, 8, 110, 0, 67, 68, 69, 65, 72,
- 64, 63, 0, 74, 73, 63, 1, 4, 81, 82,
- 84, 83, 41, 0, 0, 110, 89, 90, 92, 112,
- 71, 111, 9, 0, 0, 13, 0, 0, 87, 85,
- 86, 112, 0, 110, 0, 0, 0, 0, 0, 0,
+ 0, 33, 35, 0, 39, 40, 42, 47, 48, 49,
+ 51, 54, 57, 60, 58, 0, 43, 45, 63, 26,
+ 44, 41, 38, 25, 27, 52, 29, 36, 37, 62,
+ 56, 34, 61, 53, 63, 0, 55, 5, 0, 2,
+ 3, 6, 7, 8, 118, 9, 67, 70, 71, 68,
+ 69, 65, 0, 64, 89, 90, 92, 91, 41, 0,
+ 0, 0, 97, 98, 100, 0, 63, 0, 0, 0,
+ 63, 1, 4, 118, 120, 0, 119, 74, 0, 95,
+ 93, 94, 0, 118, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 75, 0, 17, 18, 11, 14, 15,
- 75, 0, 91, 70, 0, 102, 103, 100, 101, 104,
- 105, 97, 107, 108, 109, 99, 98, 106, 93, 94,
- 95, 96, 113, 79, 0, 10, 76, 77, 63, 0,
- 20, 88, 80, 78, 0, 16, 21, 75, 0, 22,
- 12, 19, 0, 23
+ 0, 0, 0, 13, 76, 75, 0, 120, 0, 73,
+ 0, 66, 99, 0, 83, 77, 110, 111, 108, 109,
+ 112, 113, 105, 115, 116, 117, 107, 106, 114, 101,
+ 102, 103, 104, 83, 0, 17, 18, 11, 14, 15,
+ 83, 0, 121, 96, 87, 88, 0, 84, 85, 0,
+ 10, 63, 0, 20, 72, 0, 0, 86, 83, 79,
+ 0, 16, 21, 83, 81, 78, 0, 83, 0, 22,
+ 0, 0, 12, 19, 0, 0, 80, 23, 82
};
/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int16 yypgoto[] =
+static const yytype_int8 yypgoto[] =
{
- -140, -140, -140, 12, -140, -140, -140, -140, -140, -87,
- -140, -140, 0, -26, -140, 2, -140, -140, -140, -117,
- -140, -139, -140, -59, 29, -71, -140
+ -91, -91, -91, 16, -91, -91, -91, -91, -91, -90,
+ -91, -91, 0, -25, -91, 5, -91, -91, -91, -91,
+ -91, -77, -91, -31, -91, -62, 6, -81, -91
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 47, 48, 49, 50, 51, 116, 117, 118, 119,
- 52, 158, 76, 59, 60, 144, 55, 56, 57, 145,
- 146, 147, 77, 78, 79, 80, 81
+ 0, 48, 49, 50, 51, 52, 146, 147, 148, 149,
+ 53, 178, 72, 62, 63, 155, 56, 57, 58, 59,
+ 60, 156, 157, 158, 73, 74, 84, 85, 86
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -803,84 +811,131 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 53, 63, 54, 150, 92, 100, 153, 100, 101, 58,
- 114, 153, 61, 88, 89, 90, 66, 64, 161, 162,
- 82, 153, 124, 115, 62, 83, 85, 58, 106, 107,
- 108, 109, 110, 109, 110, 84, 123, 93, 111, 86,
- 160, 113, 120, 58, 65, 1, 149, 151, 53, 2,
- 54, 3, 4, 5, 6, 7, 152, 157, 8, 9,
- 67, 58, 155, 10, 11, 58, 13, 14, 15, 16,
- 17, 18, 19, 0, 20, 21, 22, 23, 0, 25,
- 26, 27, 0, 112, 0, 0, 28, 29, 30, 31,
- 32, 33, 0, 0, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 91, 0, 0, 0, 0, 45,
- 0, 0, 0, 53, 148, 0, 121, 100, 143, 0,
- 53, 0, 154, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 107, 108, 109, 110, 53, 0, 0, 58, 0,
- 53, 0, 0, 0, 0, 0, 159, 53, 68, 0,
- 53, 0, 163, 69, 0, 0, 1, 70, 71, 0,
+ 54, 144, 118, 78, 81, 55, 89, 90, 91, 61,
+ 87, 101, 123, 76, 145, 93, 75, 183, 184, 79,
+ 94, 88, 113, 114, 151, 77, 115, 119, 61, 95,
+ 96, 97, 98, 99, 100, 120, 101, 110, 111, 102,
+ 103, 104, 143, 101, 61, 80, 150, 153, 159, 54,
+ 162, 112, 164, 175, 55, 116, 177, 105, 106, 107,
+ 108, 109, 110, 111, 186, 82, 160, 108, 109, 110,
+ 111, 188, 171, 163, 0, 0, 61, 92, 0, 0,
+ 61, 0, 0, 0, 0, 0, 0, 0, 121, 117,
+ 0, 176, 0, 0, 54, 101, 180, 0, 102, 125,
+ 182, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 107, 108,
+ 109, 110, 111, 0, 54, 167, 152, 0, 0, 167,
+ 0, 0, 167, 0, 0, 0, 170, 0, 0, 0,
+ 0, 0, 0, 54, 161, 167, 0, 0, 0, 167,
+ 54, 167, 0, 0, 0, 0, 54, 0, 0, 54,
+ 54, 61, 0, 54, 169, 54, 0, 0, 54, 0,
+ 174, 0, 179, 54, 0, 0, 54, 54, 64, 0,
+ 54, 0, 54, 65, 187, 0, 1, 66, 67, 0,
2, 0, 3, 4, 5, 6, 7, 0, 0, 8,
- 0, 0, 0, 0, 10, 11, 0, 13, 14, 15,
- 16, 17, 18, 19, 0, 20, 21, 22, 23, 0,
- 25, 26, 0, 0, 0, 0, 0, 28, 29, 72,
- 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 0, 0, 0, 0, 68, 0,
- 45, 0, 0, 69, 73, 74, 1, 70, 71, 0,
- 2, 75, 3, 4, 5, 6, 7, 0, 0, 8,
- 0, 0, 0, 0, 10, 11, 0, 13, 14, 15,
- 16, 17, 18, 19, 0, 20, 21, 22, 23, 0,
- 25, 26, 0, 0, 0, 0, 0, 28, 29, 72,
- 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 0, 0, 0, 0, 0, 0,
- 45, 0, 0, 0, 73, 74, 1, 0, 0, 0,
- 2, 87, 3, 4, 5, 6, 7, 0, 0, 8,
- 9, 0, 0, 0, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 0, 20, 21, 22, 23, 24,
- 25, 26, 27, 0, 0, 0, 0, 28, 29, 30,
- 31, 32, 33, 0, 0, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
- 45, 156, 2, 0, 3, 4, 5, 6, 7, 46,
- 0, 8, 9, 0, 0, 0, 10, 11, 0, 13,
- 14, 15, 16, 17, 18, 19, 0, 20, 21, 22,
- 23, 0, 25, 26, 27, 0, 0, 0, 0, 28,
- 29, 30, 31, 32, 33, 0, 0, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 1, 0, 0,
- 0, 2, 45, 3, 4, 5, 6, 7, 0, 0,
- 8, 143, 0, 0, 0, 10, 11, 0, 13, 14,
- 15, 16, 17, 18, 19, 0, 20, 21, 22, 23,
- 0, 25, 26, 0, 0, 0, 0, 0, 28, 29,
- 30, 31, 32, 33, 0, 0, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 94, 95, 96, 97, 98,
- 99, 45, 100, 0, 0, 101, 102, 103, 94, 95,
- 96, 97, 98, 99, 0, 100, 0, 0, 101, 102,
- 103, 0, 0, 104, 105, 106, 107, 108, 109, 110,
- 0, 0, 0, 0, 122, 0, 104, 105, 106, 107,
- 108, 109, 110, 94, 95, 96, 97, 0, 0, 0,
- 100, 0, 0, 101, 102, 103, 0, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 0, 0, 0, 0, 29, 30, 68,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 0, 0, 0, 0, 64, 0,
+ 46, 0, 0, 65, 69, 70, 1, 66, 67, 0,
+ 2, 71, 3, 4, 5, 6, 7, 0, 0, 8,
+ 0, 0, 0, 0, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 0, 0, 0, 0, 29, 30, 68,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
+ 46, 0, 0, 0, 69, 70, 1, 0, 0, 0,
+ 2, 83, 3, 4, 5, 6, 7, 0, 0, 8,
+ 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 165, 47,
+ 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
+ 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 166, 1,
+ 0, 46, 172, 2, 0, 3, 4, 5, 6, 7,
+ 154, 0, 8, 9, 0, 0, 10, 11, 12, 0,
+ 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
+ 7, 0, 154, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
+ 0, 181, 1, 0, 46, 0, 2, 0, 3, 4,
+ 5, 6, 7, 154, 0, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 185, 1, 0, 46, 0, 2, 0,
+ 3, 4, 5, 6, 7, 154, 0, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
+ 0, 3, 4, 5, 6, 7, 0, 124, 8, 9,
+ 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
+ 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
+ 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
+ 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
+ 2, 0, 3, 4, 5, 6, 7, 0, 154, 8,
+ 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 0, 168,
+ 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
+ 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 1, 0, 0, 0,
+ 2, 46, 3, 4, 5, 6, 7, 0, 0, 8,
+ 173, 0, 0, 0, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 95, 96, 97, 98, 99, 100,
+ 46, 101, 0, 0, 102, 103, 104, 95, 96, 97,
+ 98, 99, 100, 0, 101, 0, 0, 102, 103, 104,
+ 0, 0, 105, 106, 107, 108, 109, 110, 111, 0,
+ 0, 0, 0, 122, 0, 105, 106, 107, 108, 109,
+ 110, 111, 95, 96, 97, 98, 0, 0, 0, 101,
+ 0, 0, 102, 103, 104, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 104, 105, 106, 107, 108, 109, 110
+ 105, 106, 107, 108, 109, 110, 111
};
static const yytype_int16 yycheck[] =
{
- 0, 27, 0, 120, 75, 57, 145, 57, 60, 9,
- 73, 150, 12, 72, 73, 74, 0, 43, 86, 87,
- 86, 160, 93, 86, 24, 87, 86, 27, 80, 81,
- 82, 83, 84, 83, 84, 61, 89, 88, 87, 65,
- 157, 86, 86, 43, 44, 13, 86, 89, 48, 17,
- 48, 19, 20, 21, 22, 23, 86, 86, 26, 27,
- 48, 61, 149, 31, 32, 65, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, 83, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 75, -1, -1, -1, -1, 77,
- -1, -1, -1, 113, 114, -1, 87, 57, 86, -1,
- 120, -1, 148, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 81, 82, 83, 84, 145, -1, -1, 148, -1,
- 150, -1, -1, -1, -1, -1, 156, 157, 5, -1,
- 160, -1, 162, 10, -1, -1, 13, 14, 15, -1,
+ 0, 73, 83, 28, 0, 0, 68, 69, 70, 9,
+ 86, 57, 93, 13, 86, 88, 10, 86, 87, 44,
+ 41, 87, 86, 86, 89, 25, 86, 86, 28, 50,
+ 51, 52, 53, 54, 55, 87, 57, 83, 84, 60,
+ 61, 62, 86, 57, 44, 45, 86, 89, 24, 49,
+ 86, 76, 86, 86, 49, 80, 86, 78, 79, 80,
+ 81, 82, 83, 84, 86, 49, 143, 81, 82, 83,
+ 84, 86, 162, 150, -1, -1, 76, 71, -1, -1,
+ 80, -1, -1, -1, -1, -1, -1, -1, 88, 83,
+ -1, 168, -1, -1, 94, 57, 173, -1, 60, 94,
+ 177, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 80, 81,
+ 82, 83, 84, -1, 124, 156, 120, -1, -1, 160,
+ -1, -1, 163, -1, -1, -1, 161, -1, -1, -1,
+ -1, -1, -1, 143, 144, 176, -1, -1, -1, 180,
+ 150, 182, -1, -1, -1, -1, 156, -1, -1, 159,
+ 160, 161, -1, 163, 159, 165, -1, -1, 168, -1,
+ 165, -1, 172, 173, -1, -1, 176, 177, 5, -1,
+ 180, -1, 182, 10, 184, -1, 13, 14, 15, -1,
17, -1, 19, 20, 21, 22, 23, -1, -1, 26,
-1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
@@ -896,31 +951,74 @@ static const yytype_int16 yycheck[] =
67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
77, -1, -1, -1, 81, 82, 13, -1, -1, -1,
17, 88, 19, 20, 21, 22, 23, -1, -1, 26,
- 27, -1, -1, -1, 31, 32, 33, 34, 35, 36,
+ 27, -1, -1, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, -1, -1, 13, -1,
- 77, 16, 17, -1, 19, 20, 21, 22, 23, 86,
- -1, 26, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 13, -1, -1,
- -1, 17, 77, 19, 20, 21, 22, 23, -1, -1,
- 26, 86, -1, -1, -1, 31, 32, -1, 34, 35,
+ 67, 68, 69, 70, 71, 72, -1, 13, -1, -1,
+ 77, 17, -1, 19, 20, 21, 22, 23, 24, 86,
+ 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
+ -1, 77, 16, 17, -1, 19, 20, 21, 22, 23,
+ 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
+ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
+ -1, 74, 13, -1, 77, -1, 17, -1, 19, 20,
+ 21, 22, 23, 86, -1, 26, 27, -1, -1, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 74, 13, -1, 77, -1, 17, -1,
+ 19, 20, 21, 22, 23, 86, -1, 26, 27, -1,
+ -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ 17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
+ 77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
+ 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 50, 51, 52, 53, 54,
- 55, 77, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
- 82, 83, 84, 50, 51, 52, 53, -1, -1, -1,
- 57, -1, -1, 60, 61, 62, -1, -1, -1, -1,
+ 66, 67, 68, 69, 70, 71, 13, -1, -1, -1,
+ 17, 77, 19, 20, 21, 22, 23, -1, -1, 26,
+ 86, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 50, 51, 52, 53, 54, 55,
+ 77, 57, -1, -1, 60, 61, 62, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, -1, 89, -1, 78, 79, 80, 81, 82,
+ 83, 84, 50, 51, 52, 53, -1, -1, -1, 57,
+ -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 78, 79, 80, 81, 82, 83, 84
+ 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -928,22 +1026,24 @@ static const yytype_int16 yycheck[] =
static const yytype_int8 yystos[] =
{
0, 13, 17, 19, 20, 21, 22, 23, 26, 27,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 42, 43, 44, 45, 46, 47, 48, 49, 54, 55,
- 56, 57, 58, 59, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 77, 86, 91, 92, 93,
- 94, 95, 100, 102, 105, 106, 107, 108, 102, 103,
- 104, 102, 102, 103, 103, 102, 0, 93, 5, 10,
- 14, 15, 56, 81, 82, 88, 102, 112, 113, 114,
- 115, 116, 86, 87, 103, 86, 103, 88, 113, 113,
- 113, 114, 115, 88, 50, 51, 52, 53, 54, 55,
- 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
- 84, 87, 102, 86, 73, 86, 96, 97, 98, 99,
- 86, 114, 89, 89, 115, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 86, 105, 109, 110, 111, 102, 86,
- 109, 89, 86, 111, 103, 99, 16, 86, 101, 102,
- 109, 86, 87, 102
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 42, 43, 44, 45, 46, 47, 48, 49, 54,
+ 55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 77, 86, 91, 92,
+ 93, 94, 95, 100, 102, 105, 106, 107, 108, 109,
+ 110, 102, 103, 104, 5, 10, 14, 15, 56, 81,
+ 82, 88, 102, 114, 115, 116, 102, 102, 103, 103,
+ 102, 0, 93, 88, 116, 117, 118, 86, 87, 115,
+ 115, 115, 116, 88, 41, 50, 51, 52, 53, 54,
+ 55, 57, 60, 61, 62, 78, 79, 80, 81, 82,
+ 83, 84, 103, 86, 86, 86, 103, 116, 117, 86,
+ 87, 102, 89, 117, 86, 105, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 86, 73, 86, 96, 97, 98, 99,
+ 86, 89, 116, 89, 86, 105, 111, 112, 113, 24,
+ 111, 102, 86, 111, 86, 24, 74, 113, 86, 105,
+ 103, 99, 16, 86, 105, 86, 111, 86, 101, 102,
+ 111, 74, 111, 86, 87, 74, 86, 102, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -955,29 +1055,31 @@ static const yytype_int8 yyr1[] =
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 103, 103, 104, 104, 105, 106, 106,
- 107, 107, 108, 108, 108, 109, 109, 110, 110, 111,
- 111, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 115, 115, 116, 116
+ 102, 102, 102, 103, 103, 104, 104, 105, 105, 105,
+ 106, 106, 107, 107, 108, 108, 108, 109, 109, 110,
+ 110, 110, 110, 111, 111, 112, 112, 113, 113, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114, 115, 115,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 117, 117,
+ 118, 118
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_int8 yyr2[] =
{
- 0, 2, 1, 1, 2, 1, 1, 1, 1, 2,
+ 0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
5, 4, 5, 0, 1, 1, 3, 1, 1, 8,
5, 0, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 1, 3, 1, 1, 1,
- 4, 2, 2, 2, 2, 0, 1, 1, 2, 1,
- 2, 1, 1, 1, 1, 2, 2, 2, 4, 1,
- 1, 3, 1, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 0, 1, 1, 3
+ 1, 1, 5, 3, 3, 3, 3, 4, 7, 6,
+ 9, 7, 10, 0, 1, 1, 2, 1, 1, 1,
+ 1, 1, 1, 2, 2, 2, 4, 1, 1, 3,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 0, 1,
+ 1, 3
};
@@ -1251,49 +1353,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1255 "engines/director/lingo/lingo-gr.cpp"
+#line 1357 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1261 "engines/director/lingo/lingo-gr.cpp"
+#line 1363 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1267 "engines/director/lingo/lingo-gr.cpp"
+#line 1369 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1273 "engines/director/lingo/lingo-gr.cpp"
+#line 1375 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1279 "engines/director/lingo/lingo-gr.cpp"
+#line 1381 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1285 "engines/director/lingo/lingo-gr.cpp"
+#line 1387 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1291 "engines/director/lingo/lingo-gr.cpp"
+#line 1393 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1297 "engines/director/lingo/lingo-gr.cpp"
+#line 1399 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1561,7 +1663,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 190 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1565 "engines/director/lingo/lingo-gr.cpp"
+#line 1667 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -1572,7 +1674,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1576 "engines/director/lingo/lingo-gr.cpp"
+#line 1678 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -1582,37 +1684,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1586 "engines/director/lingo/lingo-gr.cpp"
+#line 1688 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 205 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1592 "engines/director/lingo/lingo-gr.cpp"
+#line 1694 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 238 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1598 "engines/director/lingo/lingo-gr.cpp"
+#line 1700 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 242 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1604 "engines/director/lingo/lingo-gr.cpp"
+#line 1706 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1610 "engines/director/lingo/lingo-gr.cpp"
+#line 1712 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1616 "engines/director/lingo/lingo-gr.cpp"
+#line 1718 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -1623,7 +1725,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1627 "engines/director/lingo/lingo-gr.cpp"
+#line 1729 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -1633,13 +1735,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1637 "engines/director/lingo/lingo-gr.cpp"
+#line 1739 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 263 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1643 "engines/director/lingo/lingo-gr.cpp"
+#line 1745 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -1648,260 +1750,260 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1652 "engines/director/lingo/lingo-gr.cpp"
+#line 1754 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 273 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1659 "engines/director/lingo/lingo-gr.cpp"
+#line 1761 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 278 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1665 "engines/director/lingo/lingo-gr.cpp"
+#line 1767 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 279 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1671 "engines/director/lingo/lingo-gr.cpp"
+#line 1773 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 285 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1677 "engines/director/lingo/lingo-gr.cpp"
+#line 1779 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 286 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1683 "engines/director/lingo/lingo-gr.cpp"
+#line 1785 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 287 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1689 "engines/director/lingo/lingo-gr.cpp"
+#line 1791 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 288 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1695 "engines/director/lingo/lingo-gr.cpp"
+#line 1797 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 289 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1701 "engines/director/lingo/lingo-gr.cpp"
+#line 1803 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1707 "engines/director/lingo/lingo-gr.cpp"
+#line 1809 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tEXIT */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 1713 "engines/director/lingo/lingo-gr.cpp"
+#line 1815 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFIELD */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1719 "engines/director/lingo/lingo-gr.cpp"
+#line 1821 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 1725 "engines/director/lingo/lingo-gr.cpp"
+#line 1827 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 1731 "engines/director/lingo/lingo-gr.cpp"
+#line 1833 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 1737 "engines/director/lingo/lingo-gr.cpp"
+#line 1839 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 1743 "engines/director/lingo/lingo-gr.cpp"
+#line 1845 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 1749 "engines/director/lingo/lingo-gr.cpp"
+#line 1851 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 1755 "engines/director/lingo/lingo-gr.cpp"
+#line 1857 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 1761 "engines/director/lingo/lingo-gr.cpp"
+#line 1863 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 1767 "engines/director/lingo/lingo-gr.cpp"
+#line 1869 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 1773 "engines/director/lingo/lingo-gr.cpp"
+#line 1875 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 1779 "engines/director/lingo/lingo-gr.cpp"
+#line 1881 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 1785 "engines/director/lingo/lingo-gr.cpp"
+#line 1887 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 1791 "engines/director/lingo/lingo-gr.cpp"
+#line 1893 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAY */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 1797 "engines/director/lingo/lingo-gr.cpp"
+#line 1899 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPLAYACCEL */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 1803 "engines/director/lingo/lingo-gr.cpp"
+#line 1905 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tPREVIOUS */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 1809 "engines/director/lingo/lingo-gr.cpp"
+#line 1911 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tPUT */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 1815 "engines/director/lingo/lingo-gr.cpp"
+#line 1917 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tREPEAT */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 1821 "engines/director/lingo/lingo-gr.cpp"
+#line 1923 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSCRIPT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 1827 "engines/director/lingo/lingo-gr.cpp"
+#line 1929 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tSET */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 1833 "engines/director/lingo/lingo-gr.cpp"
+#line 1935 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tSTARTS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 1839 "engines/director/lingo/lingo-gr.cpp"
+#line 1941 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tTELL */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 1845 "engines/director/lingo/lingo-gr.cpp"
+#line 1947 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tTO */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 1851 "engines/director/lingo/lingo-gr.cpp"
+#line 1953 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tASSERTERROR */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 1857 "engines/director/lingo/lingo-gr.cpp"
+#line 1959 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tSPRITE */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 1863 "engines/director/lingo/lingo-gr.cpp"
+#line 1965 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWHEN */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 1869 "engines/director/lingo/lingo-gr.cpp"
+#line 1971 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWHILE */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 1875 "engines/director/lingo/lingo-gr.cpp"
+#line 1977 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWINDOW */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 1881 "engines/director/lingo/lingo-gr.cpp"
+#line 1983 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWITH */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 1887 "engines/director/lingo/lingo-gr.cpp"
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tWITHIN */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 1893 "engines/director/lingo/lingo-gr.cpp"
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* ID: tWORD */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 1899 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* idlist: %empty */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 1905 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* nonemptyidlist: ID */
@@ -1910,7 +2012,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 1914 "engines/director/lingo/lingo-gr.cpp"
+#line 2016 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -1918,265 +2020,317 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 1922 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 70: /* proc: ID '(' exprlist ')' */
-#line 357 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 1928 "engines/director/lingo/lingo-gr.cpp"
+#line 2024 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* proc: ID exprlist */
-#line 358 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode((yyvsp[-1].s), (yyvsp[0].nodelist)); }
-#line 1934 "engines/director/lingo/lingo-gr.cpp"
+ case 72: /* proc: ID '(' exprlist ')' '\n' */
+#line 360 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
+#line 2030 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* definevars: tGLOBAL idlist */
+ case 73: /* proc: ID exprlist '\n' */
#line 361 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new GlobalNode((yyvsp[0].idlist)); }
-#line 1940 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
+#line 2036 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* definevars: tPROPERTY idlist */
-#line 362 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropertyNode((yyvsp[0].idlist)); }
-#line 1946 "engines/director/lingo/lingo-gr.cpp"
+ case 74: /* definevars: tGLOBAL idlist '\n' */
+#line 364 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
+#line 2042 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* definevars: tINSTANCE idlist */
-#line 363 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new InstanceNode((yyvsp[0].idlist)); }
-#line 1952 "engines/director/lingo/lingo-gr.cpp"
+ case 75: /* definevars: tPROPERTY idlist '\n' */
+#line 365 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
+#line 2048 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* stmtlist: %empty */
+ case 76: /* definevars: tINSTANCE idlist '\n' */
#line 366 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
+#line 2054 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 77: /* ifstmt: tIF expr tTHEN stmt */
+#line 369 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *stmtlist = new NodeList;
+ stmtlist->push_back((yyvsp[0].node));
+ (yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
+#line 2063 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 78: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 373 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
+#line 2070 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 79: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 377 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *stmtlist1 = new NodeList;
+ stmtlist1->push_back((yyvsp[-2].node));
+ NodeList *stmtlist2 = new NodeList;
+ stmtlist2->push_back((yyvsp[0].node));
+ (yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 80: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 383 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *stmtlist1 = new NodeList;
+ stmtlist1->push_back((yyvsp[-5].node));
+ (yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
+#line 2090 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 81: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 387 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *stmtlist2 = new NodeList;
+ stmtlist2->push_back((yyvsp[0].node));
+ (yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
+#line 2099 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 82: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 391 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
+#line 2106 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 83: /* stmtlist: %empty */
+#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1958 "engines/director/lingo/lingo-gr.cpp"
+#line 2112 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* nonemptystmtlist: stmtlistline */
-#line 371 "engines/director/lingo/lingo-gr.y"
+ case 85: /* nonemptystmtlist: stmtlistline */
+#line 400 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1969 "engines/director/lingo/lingo-gr.cpp"
+#line 2123 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 377 "engines/director/lingo/lingo-gr.y"
+ case 86: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 406 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1979 "engines/director/lingo/lingo-gr.cpp"
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* stmtlistline: '\n' */
-#line 384 "engines/director/lingo/lingo-gr.y"
+ case 87: /* stmtlistline: '\n' */
+#line 413 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1985 "engines/director/lingo/lingo-gr.cpp"
+#line 2139 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* simpleexprnoparens: tINT */
-#line 390 "engines/director/lingo/lingo-gr.y"
+ case 89: /* simpleexprnoparens: tINT */
+#line 419 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 1991 "engines/director/lingo/lingo-gr.cpp"
+#line 2145 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* simpleexprnoparens: tFLOAT */
-#line 391 "engines/director/lingo/lingo-gr.y"
+ case 90: /* simpleexprnoparens: tFLOAT */
+#line 420 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 1997 "engines/director/lingo/lingo-gr.cpp"
+#line 2151 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* simpleexprnoparens: tSYMBOL */
-#line 392 "engines/director/lingo/lingo-gr.y"
+ case 91: /* simpleexprnoparens: tSYMBOL */
+#line 421 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2003 "engines/director/lingo/lingo-gr.cpp"
+#line 2157 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* simpleexprnoparens: tSTRING */
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 92: /* simpleexprnoparens: tSTRING */
+#line 422 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2009 "engines/director/lingo/lingo-gr.cpp"
+#line 2163 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* simpleexprnoparens: '+' simpleexpr */
-#line 394 "engines/director/lingo/lingo-gr.y"
+ case 93: /* simpleexprnoparens: '+' simpleexpr */
+#line 423 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2015 "engines/director/lingo/lingo-gr.cpp"
+#line 2169 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* simpleexprnoparens: '-' simpleexpr */
-#line 395 "engines/director/lingo/lingo-gr.y"
+ case 94: /* simpleexprnoparens: '-' simpleexpr */
+#line 424 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2021 "engines/director/lingo/lingo-gr.cpp"
+#line 2175 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* simpleexprnoparens: tNOT simpleexpr */
-#line 396 "engines/director/lingo/lingo-gr.y"
+ case 95: /* simpleexprnoparens: tNOT simpleexpr */
+#line 425 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2027 "engines/director/lingo/lingo-gr.cpp"
+#line 2181 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 96: /* simpleexprnoparens: ID '(' exprlist ')' */
+#line 426 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2033 "engines/director/lingo/lingo-gr.cpp"
+#line 2187 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* simpleexprnoparens: ID */
-#line 398 "engines/director/lingo/lingo-gr.y"
+ case 97: /* simpleexprnoparens: ID */
+#line 427 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2039 "engines/director/lingo/lingo-gr.cpp"
+#line 2193 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* simpleexpr: '(' expr ')' */
-#line 402 "engines/director/lingo/lingo-gr.y"
+ case 99: /* simpleexpr: '(' expr ')' */
+#line 431 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2045 "engines/director/lingo/lingo-gr.cpp"
+#line 2199 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* expr: simpleexpr */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 100: /* expr: simpleexpr */
+#line 434 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2051 "engines/director/lingo/lingo-gr.cpp"
+#line 2205 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* expr: expr '+' expr */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 101: /* expr: expr '+' expr */
+#line 435 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2057 "engines/director/lingo/lingo-gr.cpp"
+#line 2211 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* expr: expr '-' expr */
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 102: /* expr: expr '-' expr */
+#line 436 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2063 "engines/director/lingo/lingo-gr.cpp"
+#line 2217 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* expr: expr '*' expr */
-#line 408 "engines/director/lingo/lingo-gr.y"
+ case 103: /* expr: expr '*' expr */
+#line 437 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2069 "engines/director/lingo/lingo-gr.cpp"
+#line 2223 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* expr: expr '/' expr */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 104: /* expr: expr '/' expr */
+#line 438 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2075 "engines/director/lingo/lingo-gr.cpp"
+#line 2229 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* expr: expr tMOD expr */
-#line 410 "engines/director/lingo/lingo-gr.y"
+ case 105: /* expr: expr tMOD expr */
+#line 439 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2235 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* expr: expr '>' expr */
-#line 411 "engines/director/lingo/lingo-gr.y"
+ case 106: /* expr: expr '>' expr */
+#line 440 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2087 "engines/director/lingo/lingo-gr.cpp"
+#line 2241 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* expr: expr '<' expr */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 107: /* expr: expr '<' expr */
+#line 441 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2093 "engines/director/lingo/lingo-gr.cpp"
+#line 2247 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* expr: expr tEQ expr */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 108: /* expr: expr tEQ expr */
+#line 442 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2099 "engines/director/lingo/lingo-gr.cpp"
+#line 2253 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* expr: expr tNEQ expr */
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 109: /* expr: expr tNEQ expr */
+#line 443 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2105 "engines/director/lingo/lingo-gr.cpp"
+#line 2259 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* expr: expr tGE expr */
-#line 415 "engines/director/lingo/lingo-gr.y"
+ case 110: /* expr: expr tGE expr */
+#line 444 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2111 "engines/director/lingo/lingo-gr.cpp"
+#line 2265 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* expr: expr tLE expr */
-#line 416 "engines/director/lingo/lingo-gr.y"
+ case 111: /* expr: expr tLE expr */
+#line 445 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2117 "engines/director/lingo/lingo-gr.cpp"
+#line 2271 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* expr: expr tAND expr */
-#line 417 "engines/director/lingo/lingo-gr.y"
+ case 112: /* expr: expr tAND expr */
+#line 446 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2123 "engines/director/lingo/lingo-gr.cpp"
+#line 2277 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* expr: expr tOR expr */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 113: /* expr: expr tOR expr */
+#line 447 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2129 "engines/director/lingo/lingo-gr.cpp"
+#line 2283 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* expr: expr '&' expr */
-#line 419 "engines/director/lingo/lingo-gr.y"
+ case 114: /* expr: expr '&' expr */
+#line 448 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2135 "engines/director/lingo/lingo-gr.cpp"
+#line 2289 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* expr: expr tCONCAT expr */
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 115: /* expr: expr tCONCAT expr */
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2141 "engines/director/lingo/lingo-gr.cpp"
+#line 2295 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* expr: expr tCONTAINS expr */
-#line 421 "engines/director/lingo/lingo-gr.y"
+ case 116: /* expr: expr tCONTAINS expr */
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2147 "engines/director/lingo/lingo-gr.cpp"
+#line 2301 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* expr: expr tSTARTS expr */
-#line 422 "engines/director/lingo/lingo-gr.y"
+ case 117: /* expr: expr tSTARTS expr */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2153 "engines/director/lingo/lingo-gr.cpp"
+#line 2307 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* exprlist: %empty */
-#line 425 "engines/director/lingo/lingo-gr.y"
+ case 118: /* exprlist: %empty */
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2159 "engines/director/lingo/lingo-gr.cpp"
+#line 2313 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* nonemptyexprlist: expr */
-#line 429 "engines/director/lingo/lingo-gr.y"
+ case 120: /* nonemptyexprlist: expr */
+#line 458 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2168 "engines/director/lingo/lingo-gr.cpp"
+#line 2322 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 121: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 462 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2176 "engines/director/lingo/lingo-gr.cpp"
+#line 2330 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2180 "engines/director/lingo/lingo-gr.cpp"
+#line 2334 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2375,7 +2529,7 @@ yyreturn:
return yyresult;
}
-#line 438 "engines/director/lingo/lingo-gr.y"
+#line 467 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 28838519be..73f4e4e801 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -164,7 +164,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<idlist> idlist nonemptyidlist
// STATEMENT
-%type<node> stmt stmtoneliner proc definevars
+%type<node> stmt stmtoneliner proc definevars ifstmt ifelsestmt
%type<nodelist> stmtlist nonemptystmtlist
%type<node> stmtlistline
@@ -206,7 +206,7 @@ scriptpart: '\n' { $$ = nullptr; }
| macro
| factory
| handler
- | stmt '\n'
+ | stmt
;
// MACRO
@@ -347,20 +347,52 @@ nonemptyidlist: ID[item] {
;
// STATEMENT
+// N.B. A statement must always be terminated by a '\n' symbol.
+// Sometimes this '\n' is in a nested statement (e.g. tIF expr tTHEN stmt).
+// It may not look like there's a '\n', but it's there.
-stmt: stmtoneliner ;
+stmt: stmtoneliner
+ | ifstmt
+ | ifelsestmt
+ ;
stmtoneliner: proc
| definevars
;
-proc: ID '(' exprlist[args] ')' { $$ = new CmdNode($ID, $args); }
- | ID exprlist[args] { $$ = new CmdNode($ID, $args); }
+proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
+ | ID exprlist[args] '\n' { $$ = new CmdNode($ID, $args); }
+ ;
+
+definevars: tGLOBAL idlist '\n' { $$ = new GlobalNode($idlist); }
+ | tPROPERTY idlist '\n' { $$ = new PropertyNode($idlist); }
+ | tINSTANCE idlist '\n' { $$ = new InstanceNode($idlist); }
+ ;
+
+ifstmt: tIF expr tTHEN stmt {
+ NodeList *stmtlist = new NodeList;
+ stmtlist->push_back($stmt);
+ $$ = new IfStmtNode($expr, stmtlist); }
+ | tIF expr tTHEN '\n' stmtlist tENDIF '\n' {
+ $$ = new IfStmtNode($expr, $stmtlist); }
;
-definevars: tGLOBAL idlist { $$ = new GlobalNode($idlist); }
- | tPROPERTY idlist { $$ = new PropertyNode($idlist); }
- | tINSTANCE idlist { $$ = new InstanceNode($idlist); }
+ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
+ NodeList *stmtlist1 = new NodeList;
+ stmtlist1->push_back($stmt1);
+ NodeList *stmtlist2 = new NodeList;
+ stmtlist2->push_back($stmt2);
+ $$ = new IfElseStmtNode($expr, stmtlist1, stmtlist2); }
+ | tIF expr tTHEN stmt[stmt1] tELSE '\n' stmtlist[stmtlist2] tENDIF '\n' {
+ NodeList *stmtlist1 = new NodeList;
+ stmtlist1->push_back($stmt1);
+ $$ = new IfElseStmtNode($expr, stmtlist1, $stmtlist2); }
+ | tIF expr tTHEN '\n' stmtlist[stmtlist1] tELSE stmt[stmt2] {
+ NodeList *stmtlist2 = new NodeList;
+ stmtlist2->push_back($stmt2);
+ $$ = new IfElseStmtNode($expr, $stmtlist1, stmtlist2); }
+ | tIF expr tTHEN '\n' stmtlist[stmtlist1] tELSE '\n' stmtlist[stmtlist2] tENDIF '\n' {
+ $$ = new IfElseStmtNode($expr, $stmtlist1, $stmtlist2); }
;
stmtlist: /* empty */ { $$ = new NodeList; }
@@ -382,7 +414,7 @@ nonemptystmtlist:
;
stmtlistline: '\n' { $$ = nullptr; }
- | stmt '\n'
+ | stmt
;
// EXPRESSION
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index cfaccbaa00..63462ed4e2 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -355,8 +355,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 75
-#define YY_END_OF_BUFFER 76
+#define YY_NUM_RULES 74
+#define YY_END_OF_BUFFER 75
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -364,44 +364,44 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[330] =
+static const flex_int16_t yy_accept[327] =
{ 0,
- 0, 0, 76, 74, 1, 72, 72, 74, 74, 71,
- 71, 70, 71, 67, 71, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 1, 68, 1, 72, 0, 73, 2,
- 66, 69, 70, 65, 63, 64, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 10, 24, 68, 68, 68, 68, 68, 68, 68, 33,
- 34, 68, 36, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 54, 68, 68, 68, 1, 0, 68,
- 2, 69, 68, 4, 68, 68, 68, 68, 68, 68,
-
- 13, 68, 68, 68, 19, 68, 68, 68, 68, 68,
- 68, 29, 68, 68, 32, 68, 68, 68, 68, 42,
- 68, 68, 68, 45, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 0, 68, 68, 68, 6, 7, 68,
- 9, 12, 0, 15, 68, 68, 0, 0, 0, 68,
- 68, 23, 25, 26, 68, 68, 68, 31, 35, 38,
- 68, 68, 68, 68, 68, 68, 68, 47, 0, 53,
- 59, 68, 68, 57, 62, 0, 68, 3, 68, 68,
- 0, 13, 16, 68, 0, 0, 19, 68, 68, 27,
- 68, 30, 0, 68, 68, 68, 68, 68, 68, 68,
-
- 68, 52, 52, 52, 60, 68, 68, 0, 68, 5,
- 68, 0, 13, 17, 0, 0, 0, 68, 68, 28,
- 0, 68, 68, 68, 43, 44, 68, 56, 46, 0,
- 52, 52, 61, 58, 0, 68, 68, 11, 0, 20,
- 68, 68, 0, 68, 68, 68, 68, 0, 0, 0,
- 52, 52, 0, 14, 8, 18, 21, 68, 0, 68,
- 40, 41, 68, 0, 0, 0, 52, 52, 14, 68,
- 0, 39, 68, 0, 0, 0, 0, 52, 22, 37,
- 68, 51, 50, 51, 0, 0, 0, 0, 52, 68,
- 50, 0, 0, 0, 0, 0, 68, 0, 0, 0,
-
- 0, 0, 0, 68, 0, 0, 51, 50, 50, 51,
- 0, 68, 49, 50, 50, 0, 68, 50, 68, 0,
- 50, 68, 0, 0, 55, 0, 0, 48, 0
+ 0, 0, 75, 73, 1, 71, 71, 73, 73, 70,
+ 70, 69, 70, 66, 70, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 1, 67, 1, 71, 0, 72, 2,
+ 65, 68, 69, 64, 62, 63, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 10, 23, 67, 67, 67, 67, 67, 67, 67, 32,
+ 33, 67, 35, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 53, 67, 67, 67, 1, 0, 67,
+ 2, 68, 67, 4, 67, 67, 67, 67, 67, 67,
+
+ 12, 67, 67, 67, 18, 67, 67, 67, 67, 67,
+ 67, 28, 67, 67, 31, 67, 67, 67, 67, 41,
+ 67, 67, 67, 44, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 0, 67, 67, 67, 6, 7, 67,
+ 9, 11, 0, 14, 67, 67, 0, 0, 0, 67,
+ 67, 22, 24, 25, 67, 67, 67, 30, 34, 37,
+ 67, 67, 67, 67, 67, 67, 67, 46, 0, 52,
+ 58, 67, 67, 56, 61, 0, 67, 3, 67, 67,
+ 12, 15, 67, 0, 0, 18, 67, 67, 26, 67,
+ 29, 0, 67, 67, 67, 67, 67, 67, 67, 67,
+
+ 51, 51, 51, 59, 67, 67, 0, 67, 5, 67,
+ 12, 16, 0, 0, 0, 67, 67, 27, 0, 67,
+ 67, 67, 42, 43, 67, 55, 45, 0, 51, 51,
+ 60, 57, 0, 67, 67, 0, 19, 67, 67, 0,
+ 67, 67, 67, 67, 0, 0, 0, 51, 51, 0,
+ 13, 8, 17, 20, 67, 0, 67, 39, 40, 67,
+ 0, 0, 0, 51, 51, 13, 67, 0, 38, 67,
+ 0, 0, 0, 0, 51, 21, 36, 67, 50, 49,
+ 50, 0, 0, 0, 0, 51, 67, 49, 0, 0,
+ 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
+
+ 67, 0, 0, 50, 49, 49, 50, 0, 67, 48,
+ 49, 49, 0, 67, 49, 67, 0, 49, 67, 0,
+ 0, 54, 0, 0, 47, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -446,91 +446,89 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[342] =
+static const flex_int16_t yy_base[339] =
{ 0,
- 0, 58, 661, 727, 59, 727, 727, 654, 0, 727,
- 648, 55, 54, 727, 643, 49, 51, 57, 46, 50,
+ 0, 58, 655, 720, 59, 720, 720, 647, 0, 720,
+ 643, 55, 54, 720, 638, 49, 51, 57, 46, 50,
48, 56, 0, 85, 59, 95, 73, 98, 106, 68,
- 124, 138, 98, 165, 148, 85, 727, 647, 727, 0,
- 727, 640, 122, 727, 727, 727, 0, 120, 73, 93,
- 124, 143, 146, 139, 146, 146, 157, 164, 162, 644,
+ 124, 138, 98, 165, 148, 85, 720, 644, 720, 0,
+ 720, 638, 122, 720, 720, 720, 0, 120, 73, 93,
+ 124, 143, 146, 139, 146, 146, 157, 164, 162, 641,
0, 160, 167, 166, 177, 166, 183, 163, 171, 0,
0, 186, 0, 191, 192, 176, 190, 194, 191, 198,
197, 207, 214, 0, 215, 217, 207, 249, 224, 224,
- 0, 635, 237, 0, 217, 216, 229, 229, 237, 247,
+ 0, 632, 237, 0, 217, 216, 229, 229, 237, 247,
- 638, 241, 249, 254, 275, 243, 258, 250, 260, 251,
+ 639, 241, 249, 254, 275, 243, 258, 250, 260, 251,
266, 0, 266, 251, 0, 258, 254, 258, 273, 0,
286, 287, 290, 0, 288, 287, 293, 317, 295, 299,
308, 305, 310, 314, 301, 306, 307, 0, 0, 323,
- 0, 637, 622, 0, 324, 331, 318, 321, 325, 339,
+ 0, 0, 637, 0, 324, 331, 318, 321, 325, 339,
327, 0, 0, 0, 330, 333, 344, 0, 0, 362,
341, 349, 354, 344, 348, 343, 347, 0, 379, 0,
0, 364, 357, 363, 0, 357, 362, 0, 372, 371,
- 396, 0, 0, 375, 394, 375, 579, 378, 380, 0,
- 396, 0, 417, 399, 393, 392, 392, 393, 396, 398,
-
- 400, 512, 436, 429, 0, 400, 409, 414, 416, 0,
- 422, 430, 0, 0, 429, 427, 457, 435, 438, 0,
- 433, 447, 433, 435, 0, 0, 442, 0, 0, 477,
- 467, 468, 0, 0, 443, 446, 453, 727, 468, 727,
- 473, 482, 485, 483, 466, 467, 495, 497, 493, 491,
- 490, 515, 488, 0, 0, 727, 0, 497, 504, 508,
- 0, 0, 504, 507, 505, 514, 500, 538, 727, 511,
- 524, 0, 515, 525, 479, 528, 546, 547, 0, 727,
- 532, 727, 0, 727, 392, 551, 567, 556, 340, 530,
- 0, 570, 573, 329, 558, 588, 540, 558, 560, 583,
-
- 586, 591, 579, 593, 318, 199, 169, 565, 598, 158,
- 144, 566, 127, 119, 116, 610, 592, 621, 599, 626,
- 641, 605, 611, 611, 0, 80, 77, 70, 727, 678,
- 680, 683, 686, 691, 696, 698, 703, 708, 710, 715,
- 720
+ 0, 0, 374, 380, 372, 635, 376, 374, 0, 391,
+ 0, 411, 394, 388, 387, 388, 389, 390, 406, 399,
+
+ 631, 431, 429, 0, 401, 410, 410, 411, 0, 415,
+ 0, 0, 419, 419, 447, 434, 433, 0, 424, 439,
+ 425, 431, 0, 0, 440, 0, 0, 466, 469, 470,
+ 0, 0, 444, 441, 448, 463, 720, 464, 470, 473,
+ 471, 461, 456, 488, 489, 485, 486, 492, 510, 462,
+ 0, 0, 720, 0, 486, 494, 500, 0, 0, 499,
+ 499, 627, 506, 606, 532, 720, 503, 517, 0, 507,
+ 520, 580, 521, 534, 539, 0, 720, 525, 720, 0,
+ 720, 454, 543, 553, 556, 340, 519, 0, 567, 562,
+ 329, 574, 578, 546, 557, 547, 568, 585, 583, 554,
+
+ 561, 318, 199, 169, 566, 595, 158, 144, 569, 127,
+ 119, 116, 507, 575, 616, 584, 618, 634, 594, 598,
+ 611, 0, 80, 77, 70, 720, 671, 673, 676, 679,
+ 684, 689, 691, 696, 701, 703, 708, 713
} ;
-static const flex_int16_t yy_def[342] =
+static const flex_int16_t yy_def[339] =
{ 0,
- 329, 1, 329, 329, 329, 329, 329, 330, 331, 329,
- 329, 329, 329, 329, 329, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 329, 332, 329, 329, 330, 329, 333,
- 329, 329, 329, 329, 329, 329, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 329, 329, 332,
- 333, 329, 332, 332, 332, 332, 332, 332, 332, 332,
-
- 332, 332, 332, 332, 329, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 329, 332, 332, 332, 332, 332, 332,
- 332, 332, 334, 332, 332, 332, 329, 329, 329, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 335, 332,
- 332, 332, 332, 332, 332, 329, 332, 332, 332, 332,
- 329, 336, 332, 332, 329, 329, 329, 332, 332, 332,
- 332, 332, 329, 332, 332, 332, 332, 332, 332, 332,
-
- 332, 335, 335, 335, 332, 332, 332, 329, 332, 332,
- 332, 329, 336, 332, 329, 329, 329, 332, 332, 332,
- 329, 332, 332, 332, 332, 332, 332, 332, 332, 329,
- 335, 335, 332, 332, 329, 332, 332, 329, 329, 329,
- 332, 332, 329, 332, 332, 332, 332, 329, 329, 329,
- 335, 335, 329, 332, 332, 329, 332, 332, 329, 332,
- 332, 332, 332, 329, 329, 329, 335, 335, 329, 332,
- 329, 332, 332, 329, 337, 329, 338, 335, 332, 329,
- 332, 329, 339, 329, 338, 338, 338, 338, 335, 332,
- 339, 329, 338, 338, 338, 329, 332, 329, 329, 338,
-
- 337, 338, 329, 332, 329, 329, 338, 339, 339, 338,
- 329, 332, 329, 339, 339, 340, 332, 341, 332, 329,
- 341, 332, 329, 329, 332, 329, 329, 329, 0, 329,
+ 326, 1, 326, 326, 326, 326, 326, 327, 328, 326,
+ 326, 326, 326, 326, 326, 329, 329, 329, 329, 329,
329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329
+ 329, 329, 329, 326, 329, 326, 326, 327, 326, 330,
+ 326, 326, 326, 326, 326, 326, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 326, 326, 329,
+ 330, 326, 329, 329, 329, 329, 329, 329, 329, 329,
+
+ 329, 329, 329, 329, 326, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 326, 329, 329, 329, 329, 329, 329,
+ 329, 329, 331, 329, 329, 329, 326, 326, 326, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 332, 329,
+ 329, 329, 329, 329, 329, 326, 329, 329, 329, 329,
+ 333, 329, 329, 326, 326, 326, 329, 329, 329, 329,
+ 329, 326, 329, 329, 329, 329, 329, 329, 329, 329,
+
+ 332, 332, 332, 329, 329, 329, 326, 329, 329, 329,
+ 333, 329, 326, 326, 326, 329, 329, 329, 326, 329,
+ 329, 329, 329, 329, 329, 329, 329, 326, 332, 332,
+ 329, 329, 326, 329, 329, 326, 326, 329, 329, 326,
+ 329, 329, 329, 329, 326, 326, 326, 332, 332, 326,
+ 329, 329, 326, 329, 329, 326, 329, 329, 329, 329,
+ 326, 326, 326, 332, 332, 326, 329, 326, 329, 329,
+ 326, 334, 326, 335, 332, 329, 326, 329, 326, 336,
+ 326, 335, 335, 335, 335, 332, 329, 336, 326, 335,
+ 335, 335, 326, 329, 326, 326, 335, 334, 335, 326,
+
+ 329, 326, 326, 335, 336, 336, 335, 326, 329, 326,
+ 336, 336, 337, 329, 338, 329, 326, 338, 329, 326,
+ 326, 329, 326, 326, 326, 0, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326
} ;
-static const flex_int16_t yy_nxt[787] =
+static const flex_int16_t yy_nxt[780] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -539,22 +537,22 @@ static const flex_int16_t yy_nxt[787] =
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
36, 37, 37, 42, 43, 44, 45, 48, 50, 58,
- 51, 328, 54, 55, 49, 56, 35, 52, 328, 59,
- 64, 328, 60, 53, 57, 77, 36, 37, 37, 94,
+ 51, 325, 54, 55, 49, 56, 35, 52, 325, 59,
+ 64, 325, 60, 53, 57, 77, 36, 37, 37, 94,
68, 48, 50, 58, 51, 54, 55, 49, 56, 69,
35, 52, 59, 61, 64, 60, 53, 57, 65, 77,
- 62, 95, 66, 94, 68, 63, 70, 313, 85, 86,
- 313, 67, 69, 71, 87, 72, 73, 61, 313, 74,
+ 62, 95, 66, 94, 68, 63, 70, 310, 85, 86,
+ 310, 67, 69, 71, 87, 72, 73, 61, 310, 74,
42, 43, 65, 62, 75, 95, 66, 76, 63, 78,
- 70, 79, 85, 86, 67, 316, 71, 87, 72, 73,
- 93, 80, 74, 96, 81, 82, 97, 75, 83, 292,
+ 70, 79, 85, 86, 67, 313, 71, 87, 72, 73,
+ 93, 80, 74, 96, 81, 82, 97, 75, 83, 289,
76, 90, 101, 78, 84, 79, 88, 37, 37, 58,
- 292, 98, 99, 93, 80, 100, 96, 81, 102, 82,
+ 289, 98, 99, 93, 80, 100, 96, 81, 102, 82,
97, 103, 83, 89, 108, 90, 101, 84, 104, 106,
107, 109, 110, 58, 98, 99, 111, 114, 100, 112,
- 313, 115, 102, 116, 117, 103, 120, 89, 108, 118,
+ 310, 115, 102, 116, 117, 103, 120, 89, 108, 118,
126, 104, 106, 107, 109, 113, 110, 121, 119, 111,
114, 124, 122, 112, 115, 123, 125, 116, 117, 120,
127, 128, 129, 118, 126, 133, 130, 134, 113, 135,
@@ -566,61 +564,60 @@ static const flex_int16_t yy_nxt[787] =
161, 89, 146, 147, 144, 145, 150, 153, 148, 151,
162, 154, 155, 163, 158, 149, 159, 152, 164, 166,
- 156, 157, 160, 161, 165, 167, 168, 147, 169, 313,
+ 156, 157, 160, 161, 165, 167, 168, 147, 169, 310,
171, 148, 172, 162, 173, 174, 175, 163, 149, 176,
- 301, 177, 164, 166, 178, 179, 180, 165, 167, 168,
- 183, 296, 170, 171, 184, 172, 185, 186, 173, 174,
- 175, 187, 188, 176, 177, 189, 190, 178, 179, 191,
- 180, 192, 195, 193, 183, 170, 196, 197, 184, 185,
- 186, 198, 199, 200, 187, 194, 188, 201, 189, 190,
- 169, 205, 191, 206, 207, 192, 195, 208, 209, 210,
- 196, 197, 211, 292, 198, 199, 200, 181, 214, 194,
-
- 201, 216, 203, 218, 204, 205, 206, 215, 207, 219,
- 208, 209, 220, 210, 222, 228, 211, 212, 193, 223,
- 224, 214, 225, 226, 216, 203, 218, 204, 227, 229,
- 230, 215, 219, 233, 234, 221, 220, 230, 222, 228,
- 235, 212, 223, 224, 236, 225, 226, 237, 238, 231,
- 241, 227, 229, 239, 240, 242, 233, 234, 217, 221,
- 232, 243, 244, 235, 245, 246, 247, 236, 230, 230,
- 237, 253, 238, 231, 241, 147, 239, 240, 230, 242,
- 275, 254, 255, 232, 243, 256, 244, 245, 246, 247,
- 257, 230, 252, 248, 253, 261, 251, 258, 259, 147,
-
- 260, 277, 262, 249, 254, 255, 275, 250, 263, 256,
- 264, 265, 266, 230, 257, 252, 230, 248, 261, 251,
- 267, 258, 259, 269, 260, 262, 249, 270, 271, 268,
- 250, 272, 263, 273, 264, 265, 266, 274, 276, 230,
- 279, 280, 282, 267, 281, 284, 269, 277, 230, 290,
- 270, 271, 292, 268, 272, 278, 273, 292, 297, 292,
- 274, 276, 286, 279, 293, 280, 282, 281, 292, 284,
- 304, 292, 287, 290, 292, 289, 288, 295, 306, 278,
- 217, 297, 302, 305, 292, 294, 286, 301, 293, 296,
- 314, 298, 292, 304, 317, 287, 299, 311, 289, 288,
-
- 307, 295, 306, 300, 248, 302, 305, 308, 310, 294,
- 312, 316, 309, 314, 303, 298, 315, 317, 250, 299,
- 319, 311, 320, 143, 307, 322, 300, 320, 248, 327,
- 291, 308, 310, 325, 312, 309, 326, 303, 181, 143,
- 315, 250, 320, 319, 92, 105, 283, 323, 322, 92,
- 291, 39, 324, 327, 46, 41, 325, 291, 39, 326,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 323, 329, 329, 329, 324, 329, 291, 38, 38,
- 329, 38, 38, 38, 40, 40, 47, 47, 47, 91,
- 91, 91, 182, 329, 329, 182, 182, 202, 329, 329,
-
- 202, 213, 213, 213, 283, 329, 329, 283, 283, 285,
- 329, 329, 285, 291, 291, 291, 318, 329, 329, 318,
- 318, 321, 329, 321, 321, 321, 3, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329
+ 298, 177, 164, 166, 178, 179, 180, 165, 167, 168,
+ 182, 293, 170, 171, 183, 172, 184, 185, 173, 174,
+ 175, 186, 187, 176, 177, 188, 189, 178, 179, 190,
+ 180, 191, 194, 192, 182, 170, 195, 196, 183, 184,
+ 185, 197, 198, 199, 186, 193, 187, 200, 188, 189,
+ 169, 204, 190, 205, 206, 191, 194, 207, 208, 209,
+ 195, 196, 210, 213, 197, 198, 199, 212, 214, 193,
+
+ 200, 216, 202, 217, 203, 204, 205, 218, 206, 220,
+ 207, 208, 192, 209, 221, 222, 210, 213, 223, 224,
+ 212, 214, 225, 226, 216, 202, 217, 203, 227, 219,
+ 228, 218, 228, 220, 231, 232, 233, 221, 222, 234,
+ 235, 223, 224, 236, 229, 225, 237, 226, 215, 238,
+ 239, 227, 240, 219, 241, 289, 242, 231, 232, 233,
+ 230, 243, 234, 235, 244, 147, 236, 228, 229, 237,
+ 228, 228, 250, 238, 239, 240, 251, 252, 241, 242,
+ 253, 254, 245, 230, 243, 255, 256, 244, 257, 147,
+ 258, 259, 246, 228, 249, 250, 247, 266, 248, 251,
+
+ 252, 260, 261, 262, 253, 254, 245, 263, 313, 255,
+ 256, 228, 257, 258, 259, 246, 267, 249, 268, 247,
+ 266, 248, 264, 269, 265, 260, 261, 262, 270, 271,
+ 273, 263, 276, 228, 277, 274, 278, 279, 281, 267,
+ 228, 268, 287, 280, 289, 264, 269, 294, 265, 275,
+ 283, 270, 271, 273, 289, 276, 290, 289, 277, 278,
+ 284, 279, 281, 289, 285, 303, 287, 286, 289, 289,
+ 294, 291, 308, 275, 283, 289, 301, 292, 309, 293,
+ 290, 272, 302, 284, 289, 304, 298, 285, 295, 303,
+ 286, 311, 297, 296, 245, 291, 308, 314, 299, 301,
+
+ 307, 292, 309, 316, 300, 302, 305, 274, 247, 304,
+ 319, 306, 295, 312, 311, 297, 296, 317, 245, 317,
+ 314, 299, 322, 323, 307, 288, 316, 300, 272, 324,
+ 305, 247, 228, 319, 306, 317, 215, 312, 143, 320,
+ 143, 92, 105, 288, 321, 322, 323, 92, 39, 46,
+ 41, 39, 288, 324, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 320, 326, 326, 326, 321, 326, 326,
+ 288, 38, 38, 326, 38, 38, 38, 40, 40, 47,
+ 47, 47, 91, 91, 91, 181, 326, 326, 181, 181,
+ 201, 326, 326, 201, 211, 211, 211, 280, 326, 326,
+
+ 280, 280, 282, 326, 326, 282, 288, 288, 288, 315,
+ 326, 326, 315, 315, 318, 326, 318, 318, 318, 3,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326
} ;
-static const flex_int16_t yy_chk[787] =
+static const flex_int16_t yy_chk[780] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -629,22 +626,22 @@ static const flex_int16_t yy_chk[787] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
5, 5, 5, 12, 12, 13, 13, 16, 17, 21,
- 18, 328, 19, 20, 16, 20, 2, 18, 327, 22,
- 25, 326, 22, 18, 20, 30, 36, 36, 36, 49,
+ 18, 325, 19, 20, 16, 20, 2, 18, 324, 22,
+ 25, 323, 22, 18, 20, 30, 36, 36, 36, 49,
27, 16, 17, 21, 18, 19, 20, 16, 20, 27,
2, 18, 22, 24, 25, 22, 18, 20, 26, 30,
- 24, 50, 26, 49, 27, 24, 28, 315, 33, 33,
- 314, 26, 27, 28, 33, 28, 28, 24, 313, 29,
+ 24, 50, 26, 49, 27, 24, 28, 312, 33, 33,
+ 311, 26, 27, 28, 33, 28, 28, 24, 310, 29,
43, 43, 26, 24, 29, 50, 26, 29, 24, 31,
- 28, 31, 33, 33, 26, 311, 28, 33, 28, 28,
- 48, 31, 29, 51, 31, 32, 52, 29, 32, 310,
+ 28, 31, 33, 33, 26, 308, 28, 33, 28, 28,
+ 48, 31, 29, 51, 31, 32, 52, 29, 32, 307,
29, 35, 56, 31, 32, 31, 34, 34, 34, 35,
- 307, 53, 54, 48, 31, 55, 51, 31, 57, 32,
+ 304, 53, 54, 48, 31, 55, 51, 31, 57, 32,
52, 58, 32, 34, 63, 35, 56, 32, 59, 62,
62, 64, 65, 35, 53, 54, 66, 68, 55, 67,
- 306, 69, 57, 72, 74, 58, 76, 34, 63, 75,
+ 303, 69, 57, 72, 74, 58, 76, 34, 63, 75,
81, 59, 62, 62, 64, 67, 65, 77, 75, 66,
68, 79, 78, 67, 69, 78, 80, 72, 74, 76,
82, 83, 85, 75, 81, 87, 85, 89, 67, 90,
@@ -656,58 +653,57 @@ static const flex_int16_t yy_chk[787] =
118, 88, 104, 105, 102, 103, 106, 108, 105, 107,
119, 109, 110, 121, 114, 105, 116, 107, 122, 125,
- 111, 113, 117, 118, 123, 126, 127, 105, 128, 305,
+ 111, 113, 117, 118, 123, 126, 127, 105, 128, 302,
129, 105, 130, 119, 131, 132, 133, 121, 105, 134,
- 294, 135, 122, 125, 136, 137, 140, 123, 126, 127,
- 145, 289, 128, 129, 146, 130, 147, 148, 131, 132,
+ 291, 135, 122, 125, 136, 137, 140, 123, 126, 127,
+ 145, 286, 128, 129, 146, 130, 147, 148, 131, 132,
133, 149, 150, 134, 135, 151, 155, 136, 137, 156,
140, 157, 161, 160, 145, 128, 162, 163, 146, 147,
148, 164, 165, 166, 149, 160, 150, 167, 151, 155,
169, 172, 156, 173, 174, 157, 161, 176, 177, 179,
- 162, 163, 180, 285, 164, 165, 166, 181, 184, 160,
-
- 167, 186, 169, 188, 169, 172, 173, 185, 174, 189,
- 176, 177, 191, 179, 194, 200, 180, 181, 193, 195,
- 196, 184, 197, 198, 186, 169, 188, 169, 199, 201,
- 204, 185, 189, 206, 207, 193, 191, 203, 194, 200,
- 208, 181, 195, 196, 209, 197, 198, 211, 212, 203,
- 218, 199, 201, 215, 216, 219, 206, 207, 217, 193,
- 204, 221, 222, 208, 223, 224, 227, 209, 231, 232,
- 211, 235, 212, 203, 218, 217, 215, 216, 230, 219,
- 275, 236, 237, 204, 221, 239, 222, 223, 224, 227,
- 241, 251, 232, 230, 235, 245, 231, 242, 243, 217,
-
- 244, 267, 246, 230, 236, 237, 265, 230, 247, 239,
- 248, 249, 250, 202, 241, 232, 252, 230, 245, 231,
- 251, 242, 243, 253, 244, 246, 230, 258, 259, 252,
- 230, 260, 247, 263, 248, 249, 250, 264, 266, 268,
- 270, 271, 274, 251, 273, 276, 253, 277, 278, 281,
- 258, 259, 286, 252, 260, 268, 263, 288, 290, 295,
- 264, 266, 277, 270, 286, 271, 274, 273, 287, 276,
- 297, 292, 277, 281, 293, 278, 277, 288, 299, 268,
- 187, 290, 295, 298, 300, 287, 277, 301, 286, 296,
- 308, 292, 302, 297, 312, 277, 292, 303, 278, 277,
-
- 300, 288, 299, 293, 296, 295, 298, 301, 302, 287,
- 304, 316, 301, 308, 296, 292, 309, 312, 296, 292,
- 317, 303, 318, 143, 300, 319, 293, 320, 296, 324,
- 318, 301, 302, 322, 304, 301, 323, 296, 142, 101,
- 309, 296, 321, 317, 92, 60, 316, 320, 319, 42,
- 321, 38, 320, 324, 15, 11, 322, 318, 8, 323,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 320, 0, 0, 0, 320, 0, 321, 330, 330,
- 0, 330, 330, 330, 331, 331, 332, 332, 332, 333,
- 333, 333, 334, 0, 0, 334, 334, 335, 0, 0,
-
- 335, 336, 336, 336, 337, 0, 0, 337, 337, 338,
- 0, 0, 338, 339, 339, 339, 340, 0, 0, 340,
- 340, 341, 0, 341, 341, 341, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329
+ 162, 163, 180, 184, 164, 165, 166, 183, 185, 160,
+
+ 167, 187, 169, 188, 169, 172, 173, 190, 174, 193,
+ 176, 177, 192, 179, 194, 195, 180, 184, 196, 197,
+ 183, 185, 198, 199, 187, 169, 188, 169, 200, 192,
+ 203, 190, 202, 193, 205, 206, 207, 194, 195, 208,
+ 210, 196, 197, 213, 202, 198, 214, 199, 215, 216,
+ 217, 200, 219, 192, 220, 282, 221, 205, 206, 207,
+ 203, 222, 208, 210, 225, 215, 213, 228, 202, 214,
+ 229, 230, 233, 216, 217, 219, 234, 235, 220, 221,
+ 236, 238, 228, 203, 222, 239, 240, 225, 241, 215,
+ 242, 243, 228, 248, 230, 233, 228, 250, 229, 234,
+
+ 235, 244, 245, 246, 236, 238, 228, 247, 313, 239,
+ 240, 249, 241, 242, 243, 228, 255, 230, 256, 228,
+ 250, 229, 248, 257, 249, 244, 245, 246, 260, 261,
+ 263, 247, 267, 265, 268, 274, 270, 271, 273, 255,
+ 275, 256, 278, 313, 283, 248, 257, 287, 249, 265,
+ 274, 260, 261, 263, 284, 267, 283, 285, 268, 270,
+ 274, 271, 273, 290, 274, 296, 278, 275, 289, 297,
+ 287, 284, 300, 265, 274, 292, 294, 285, 301, 293,
+ 283, 272, 295, 274, 299, 297, 298, 274, 289, 296,
+ 275, 305, 290, 289, 293, 284, 300, 309, 292, 294,
+
+ 299, 285, 301, 314, 293, 295, 298, 264, 293, 297,
+ 316, 298, 289, 306, 305, 290, 289, 315, 293, 317,
+ 309, 292, 319, 320, 299, 315, 314, 293, 262, 321,
+ 298, 293, 201, 316, 298, 318, 186, 306, 143, 317,
+ 101, 92, 60, 318, 317, 319, 320, 42, 38, 15,
+ 11, 8, 315, 321, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 317, 0, 0, 0, 317, 0, 0,
+ 318, 327, 327, 0, 327, 327, 327, 328, 328, 329,
+ 329, 329, 330, 330, 330, 331, 0, 0, 331, 331,
+ 332, 0, 0, 332, 333, 333, 333, 334, 0, 0,
+
+ 334, 334, 335, 0, 0, 335, 336, 336, 336, 337,
+ 0, 0, 337, 337, 338, 0, 338, 338, 338, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326
} ;
static yy_state_type yy_last_accepting_state;
@@ -818,8 +814,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 821 "engines/director/lingo/lingo-lex.cpp"
-#line 822 "engines/director/lingo/lingo-lex.cpp"
+#line 817 "engines/director/lingo/lingo-lex.cpp"
+#line 818 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1042,7 +1038,7 @@ YY_DECL
#line 111 "engines/director/lingo/lingo-lex.l"
-#line 1045 "engines/director/lingo/lingo-lex.cpp"
+#line 1041 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1070,13 +1066,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 >= 330 )
+ if ( yy_current_state >= 327 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 329 );
+ while ( yy_current_state != 326 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1149,16 +1145,11 @@ YY_RULE_SETUP
case 11:
YY_RULE_SETUP
#line 125 "engines/director/lingo/lingo-lex.l"
-{ count(); return tELSIF; }
+{ count(); return tELSE; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 126 "engines/director/lingo/lingo-lex.l"
-{ count(); return tELSE; }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 127 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1178,25 +1169,30 @@ YY_RULE_SETUP
return tENDCLAUSE;
}
YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 144 "engines/director/lingo/lingo-lex.l"
+{ count(); return tFACTORY; }
+ YY_BREAK
case 14:
YY_RULE_SETUP
#line 145 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFACTORY; }
+{ count(); return tEXIT; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 146 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEXIT; }
+{ count(); return tFIELD; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 147 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFIELD; }
+{ count(); return tGLOBAL; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 148 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGLOBAL; }
+{ count(); return tGO; }
YY_BREAK
case 18:
YY_RULE_SETUP
@@ -1206,92 +1202,92 @@ YY_RULE_SETUP
case 19:
YY_RULE_SETUP
#line 150 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGO; }
+{ count(); return tGOLOOP; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 151 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGOLOOP; }
+{ count(); return tINSTANCE; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 152 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINSTANCE; }
+{ count(); return tINTERSECTS;}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 153 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTERSECTS;}
+{ count(); return tINTO; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 154 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTO; }
+{ count(); return tIN; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 155 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIN; }
+{ count(); return tITEM; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 156 "engines/director/lingo/lingo-lex.l"
-{ count(); return tITEM; }
+{ count(); return tLINE; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 157 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLINE; }
+{ count(); return tMACRO;; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 158 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMACRO;; }
+{ count(); return tMETHOD; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 159 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMETHOD; }
+{ count(); return tMOD;}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 160 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOD;}
+{ count(); return tMOVIE; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 161 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOVIE; }
+{ count(); return tNEXT; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 162 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEXT; }
+{ count(); return tNOT; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 163 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNOT; }
+{ count(); return tOF; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 164 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOF; }
+{ count(); return tON; } // D3
YY_BREAK
case 34:
YY_RULE_SETUP
#line 165 "engines/director/lingo/lingo-lex.l"
-{ count(); return tON; } // D3
+{ count(); return tOPEN; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 166 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOPEN; }
+{ count(); return tOR; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 167 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOR; }
+{ count(); return tPLAY; }
YY_BREAK
case 37:
YY_RULE_SETUP
@@ -1301,56 +1297,51 @@ YY_RULE_SETUP
case 38:
YY_RULE_SETUP
#line 169 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAY; }
+{ count(); return tPLAYACCEL; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 170 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAYACCEL; }
+{ count(); return tPREVIOUS; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 171 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPREVIOUS; }
+{ count(); return tPROPERTY; } // D4
YY_BREAK
case 41:
YY_RULE_SETUP
#line 172 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPROPERTY; } // D4
+{ count(); return tPUT; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 173 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPUT; }
+{ count(); return tREPEAT; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 174 "engines/director/lingo/lingo-lex.l"
-{ count(); return tREPEAT; }
+{ count(); return tSCRIPT; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 175 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSCRIPT; }
+{ count(); return tSET; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 176 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSET; }
+{ count(); return tSTARTS; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 177 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSTARTS; }
+{ count(); return tTELL; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 178 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTELL; }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 179 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1387,9 +1378,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 49:
+case 48:
YY_RULE_SETUP
-#line 214 "engines/director/lingo/lingo-lex.l"
+#line 213 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1413,9 +1404,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 50:
+case 49:
YY_RULE_SETUP
-#line 236 "engines/director/lingo/lingo-lex.l"
+#line 235 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1490,9 +1481,9 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
}
YY_BREAK
-case 51:
+case 50:
YY_RULE_SETUP
-#line 309 "engines/director/lingo/lingo-lex.l"
+#line 308 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1528,9 +1519,9 @@ YY_RULE_SETUP
return tTHEENTITY;
}
YY_BREAK
-case 52:
+case 51:
YY_RULE_SETUP
-#line 343 "engines/director/lingo/lingo-lex.l"
+#line 342 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1558,84 +1549,84 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s'", ptr);
}
YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 368 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTHEN; }
+ YY_BREAK
case 53:
YY_RULE_SETUP
#line 369 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTHEN; }
+{ count(); return tTO; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 370 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTO; }
+{ count(); return tASSERTERROR; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 371 "engines/director/lingo/lingo-lex.l"
-{ count(); return tASSERTERROR; }
+{ count(); return tSPRITE; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 372 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSPRITE; }
+{ count(); return tWITH; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 373 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITH; }
+{ count(); return tWITHIN; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 374 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITHIN; }
+{ count(); return tWHEN; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 375 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHEN; }
+{ count(); return tWHILE; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 376 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHILE; }
+{ count(); return tWINDOW; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 377 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWINDOW; }
+{ count(); return tWORD; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 378 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWORD; }
+#line 379 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNEQ; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 380 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEQ; }
+{ count(); return tGE; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 381 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGE; }
+{ count(); return tLE; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 382 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLE; }
+{ count(); return tCONCAT; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 383 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONCAT; }
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 384 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
-case 68:
+case 67:
YY_RULE_SETUP
-#line 386 "engines/director/lingo/lingo-lex.l"
+#line 385 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1643,43 +1634,43 @@ YY_RULE_SETUP
return tVARID;
}
YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 391 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.f = atof(yytext); return tFLOAT; }
+ YY_BREAK
case 69:
YY_RULE_SETUP
#line 392 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.f = atof(yytext); return tFLOAT; }
+{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 393 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
+{ count(); return *yytext; }
YY_BREAK
case 71:
+/* rule 71 can match eol */
YY_RULE_SETUP
#line 394 "engines/director/lingo/lingo-lex.l"
-{ count(); return *yytext; }
+{ count(); return '\n'; }
YY_BREAK
case 72:
-/* rule 72 can match eol */
YY_RULE_SETUP
#line 395 "engines/director/lingo/lingo-lex.l"
-{ count(); return '\n'; }
+{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 396 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 397 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
-case 75:
+case 74:
YY_RULE_SETUP
-#line 399 "engines/director/lingo/lingo-lex.l"
+#line 398 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1682 "engines/director/lingo/lingo-lex.cpp"
+#line 1673 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1978,7 +1969,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 >= 330 )
+ if ( yy_current_state >= 327 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -2006,11 +1997,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 >= 330 )
+ if ( yy_current_state >= 327 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 329);
+ yy_is_jam = (yy_current_state == 326);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2688,7 +2679,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 399 "engines/director/lingo/lingo-lex.l"
+#line 398 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index d92895bdcf..ed3a6d3322 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -122,7 +122,6 @@ char { count(); return tCHAR; } // D3
contains { count(); return tCONTAINS; }
down { count(); return tDOWN; }
if { count(); return tIF; }
-else{spc}+if { count(); return tELSIF; }
else { count(); return tELSE; }
end({spc}+{identifier})? {
count();
Commit: e23e46c6680e8bb2f75f3a6aa5af8e9f251348f4
https://github.com/scummvm/scummvm/commit/e23e46c6680e8bb2f75f3a6aa5af8e9f251348f4
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove if preprocessor
Changed paths:
engines/director/lingo/lingo-preprocessor.cpp
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index e3609344fe..7131ddd190 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -64,40 +64,6 @@ static Common::String nexttok(const char *s, const char **newP = nullptr) {
return res;
}
-static Common::String prevtok(const char *s, const char *lineStart, const char **newP = nullptr) {
- Common::String res;
-
- // Scan first non-whitespace
- while (s >= lineStart && (*s == ' ' || *s == '\t' || *s == '\xC2')) // If we see a whitespace
- if (s > lineStart) {
- s--;
- } else {
- break;
- }
-
- if (*s == '"') { // If it is a string then scan till end quote
- res += *s--;
-
- while (s >= lineStart && *s != '"')
- res = *s-- + res;
-
- if (*s == '"')
- res = *s-- + res;
- } else if (Common::isAlnum(*s)) { // Now copy everything till whitespace
- // Now copy everything till whitespace
- while (s >= lineStart && (Common::isAlnum(*s) || *s == '.' || *s == '#' || *s == '_'))
- res = *s-- + res;
- } else {
- while (s >= lineStart && isspec(*s))
- res = *s-- + res;
- }
-
- if (newP)
- *newP = s;
-
- return res;
-}
-
static const char *findtokstart(const char *start, const char *token) {
// First, determine, if we sit inside of a string
//
@@ -209,8 +175,6 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
// Here we add ' end if' at end of each statement, which lets us
// make the grammar very straightforward
Common::String line, tok, res1;
- const char *lineStart, *prevEnd;
- int iflevel = 0;
int linenumber = 1;
bool defFound = false;
@@ -226,7 +190,7 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
if (*s == '\xc2')
linenumber++;
}
- debugC(2, kDebugParse | kDebugPreprocess, "line: %d '%s'", iflevel, line.c_str());
+ debugC(2, kDebugParse | kDebugPreprocess, "line: '%s'", line.c_str());
if (!defFound && (type == kMovieScript || type == kCastScript) && (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo)) {
tok = nexttok(line.c_str());
@@ -255,167 +219,10 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
linenumber++; // We do it here because of 'continue' statements
- if (line.size() < 4 || changed) { // If line is too small, then skip it
- if (*s) // copy newline symbol
- res += *s++;
-
- debugC(2, kDebugParse | kDebugPreprocess, "too small");
-
- continue;
- }
-
- tok = nexttok(line.c_str(), &lineStart);
- if (tok.equals("if")) {
- tok = prevtok(&line.c_str()[line.size() - 1], lineStart, &prevEnd);
- debugC(2, kDebugParse | kDebugPreprocess, "start-if <%s>", tok.c_str());
-
- if (tok.equals("if")) {
- debugC(2, kDebugParse | kDebugPreprocess, "end-if");
- tok = prevtok(prevEnd, lineStart);
-
- if (tok.equals("end")) {
- // do nothing, we open and close same line
- debugC(2, kDebugParse | kDebugPreprocess, "end-end");
- } else {
- iflevel++;
- }
- } else if (tok.equals("then")) {
- debugC(2, kDebugParse | kDebugPreprocess, "last-then");
- iflevel++;
- } else if (tok.equals("else")) {
- debugC(2, kDebugParse | kDebugPreprocess, "last-else");
- iflevel++;
- } else { // other token
- // Now check if we have tNLELSE
- if (!*s) {
- iflevel++; // end, we have to add 'end if'
- break;
- }
- const char *s1 = s + 1;
-
- while (*s1 && *s1 == '\n')
- s1++;
- tok = nexttok(s1);
-
- if (tok.equalsIgnoreCase("else")) { // ignore case because it is look-ahead
- debugC(2, kDebugParse | kDebugPreprocess, "tNLELSE");
- iflevel++;
- } else {
- debugC(2, kDebugParse | kDebugPreprocess, "++++ end if (no nlelse after single liner)");
- res += " end if";
- }
- }
- } else if (tok.equals("else")) {
- debugC(2, kDebugParse | kDebugPreprocess, "start-else");
- bool elseif = false;
-
- tok = nexttok(lineStart);
- if (tok.equals("if")) {
- debugC(2, kDebugParse | kDebugPreprocess, "second-if");
- elseif = true;
- } else if (tok.empty()) {
- debugC(2, kDebugParse | kDebugPreprocess, "lonely-else");
-
- if (*s) // copy newline symbol
- res += *s++;
-
- continue;
- }
-
- tok = prevtok(&line.c_str()[line.size() - 1], lineStart, &prevEnd);
- debugC(2, kDebugParse | kDebugPreprocess, "last: '%s'", tok.c_str());
-
- if (tok.equals("if")) {
- debugC(2, kDebugParse | kDebugPreprocess, "end-if");
- tok = prevtok(prevEnd, lineStart);
-
- if (tok.equals("end")) {
- debugC(2, kDebugParse | kDebugPreprocess, "end-end");
- iflevel--;
- }
- } else if (tok.equals("then")) {
- debugC(2, kDebugParse | kDebugPreprocess, "last-then");
-
- if (elseif == false) {
- warning("Badly nested then");
- }
- } else if (tok.equals("else")) {
- debugC(2, kDebugParse | kDebugPreprocess, "last-else");
- if (elseif == false) {
- warning("Badly nested else");
- }
- } else { // check if we have tNLELSE or \nEND
- if (!*s) {
- break;
- }
- const char *s1 = s + 1;
-
- while (*s1 && *s1 == '\n')
- s1++;
- tok = nexttok(s1, &s1);
-
- if (tok.equalsIgnoreCase("else") && elseif) {
- // Nothing to do here, same level
- debugC(2, kDebugParse | kDebugPreprocess, "tNLELSE");
- } else if (tok.equalsIgnoreCase("end") && elseif) {
- tok = nexttok(s1);
-
- if (tok.equalsIgnoreCase("if")) {
- // Nothing to do here
- debugC(2, kDebugParse | kDebugPreprocess, "see-end-if");
- } else {
- debugC(2, kDebugParse | kDebugPreprocess, "++++ end if (no tNLELSE 2)");
- res += " end if";
- iflevel--;
- }
- } else {
- debugC(2, kDebugParse | kDebugPreprocess, "++++ end if (no tNLELSE)");
- res += " end if";
- iflevel--;
- }
- }
- } else if (tok.equals("end")) {
- debugC(2, kDebugParse | kDebugPreprocess, "start-end");
-
- tok = nexttok(lineStart);
- if (tok.equals("if")) {
- debugC(2, kDebugParse | kDebugPreprocess, "second-if");
- iflevel--;
- }
- } else if (tok.equals("when")) {
- debugC(2, kDebugParse | kDebugPreprocess, "start-when");
-
- if (strstr(lineStart, "if") && strstr(lineStart, "then")) {
- tok = prevtok(&line.c_str()[line.size() - 1], lineStart, &prevEnd);
- debugC(2, kDebugParse | kDebugPreprocess, "when-start-if <%s>", tok.c_str());
-
- if (tok.equals("if")) {
- debugC(2, kDebugParse | kDebugPreprocess, "when-end-if");
- tok = prevtok(prevEnd, lineStart);
-
- if (tok.equals("end")) {
- // do nothing, we open and close same line
- debugC(2, kDebugParse | kDebugPreprocess, "when-end-end");
- } else {
- res += " end if";
- }
- } else {
- res += " end if";
- }
- }
- } else {
- debugC(2, kDebugParse | kDebugPreprocess, "nothing");
- }
-
if (*s) // copy newline symbol
res += *s++;
}
- for (int i = 0; i < iflevel; i++) {
- debugC(2, kDebugParse | kDebugPreprocess, "++++ end if (unclosed)");
- res += "\nend if";
- }
-
// Make the parser happier when there is no newline at the end
res += '\n';
Commit: dac5b6230c6b5ae3c80156d497f635205394ab05
https://github.com/scummvm/scummvm/commit/dac5b6230c6b5ae3c80156d497f635205394ab05
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Create compile convenience funcs
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 4dc1859836..3555a86886 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -103,7 +103,7 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
// Generate bytecode
if (_assemblyAST) {
- _assemblyAST->accept(this);
+ compile(_assemblyAST);
}
// for D4 and above, there usually won't be any code left.
@@ -309,12 +309,20 @@ void LingoCompiler::parseMenu(const char *code) {
warning("STUB: parseMenu");
}
+void LingoCompiler::compile(Node *node) {
+ node->accept(this);
+}
+
+void LingoCompiler::compileList(NodeList *nodes) {
+ for (uint i = 0; i < nodes->size(); i++) {
+ compile((*nodes)[i]);
+ }
+}
+
/* ScriptNode */
void LingoCompiler::visitScriptNode(ScriptNode *node) {
- for (uint i = 0; i < node->children->size(); i++) {
- (*node->children)[i]->accept(this);
- }
+ compileList(node->children);
}
/* FactoryNode */
@@ -324,9 +332,7 @@ void LingoCompiler::visitFactoryNode(FactoryNode *node) {
ScriptContext *mainContext = _assemblyContext;
_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
- for (uint i = 0; i < node->methods->size(); i++) {
- (*node->methods)[i]->accept(this);
- }
+ compileList(node->methods);
registerFactory(*node->name);
_inFactory = false;
@@ -352,9 +358,7 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
}
}
- for (uint i = 0; i < node->stmts->size(); i++) {
- (*node->stmts)[i]->accept(this);
- }
+ compileList(node->stmts);
code1(LC::c_procret);
if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
@@ -395,9 +399,7 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
/* CmdNode */
void LingoCompiler::visitCmdNode(CmdNode *node) {
- for (uint i = 0; i < node->args->size(); i++) {
- (*node->args)[i]->accept(this);
- }
+ compileList(node->args);
codeCmd(node->name, node->args->size());
}
@@ -428,12 +430,10 @@ void LingoCompiler::visitInstanceNode(InstanceNode *node) {
/* IfStmtNode */
void LingoCompiler::visitIfStmtNode(IfStmtNode *node) {
- node->cond->accept(this);
+ compile(node->cond);
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- for (uint i = 0; i < node->stmts->size(); i++) {
- (*node->stmts)[i]->accept(this);
- }
+ compileList(node->stmts);
uint endPos = _currentAssembly->size();
inst jzOffset = 0;
@@ -444,19 +444,15 @@ void LingoCompiler::visitIfStmtNode(IfStmtNode *node) {
/* IfElseStmtNode */
void LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
- node->cond->accept(this);
+ compile(node->cond);
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- for (uint i = 0; i < node->stmts1->size(); i++) {
- (*node->stmts1)[i]->accept(this);
- }
+ compileList(node->stmts1);
uint jmpPos = _currentAssembly->size();
code2(LC::c_jump, 0);
uint block2StartPos = _currentAssembly->size();
- for (uint i = 0; i < node->stmts2->size(); i++) {
- (*node->stmts2)[i]->accept(this);
- }
+ compileList(node->stmts2);
uint endPos = _currentAssembly->size();
inst jzOffset = 0;
@@ -499,9 +495,7 @@ void LingoCompiler::visitStringNode(StringNode *node) {
/* FuncNode */
void LingoCompiler::visitFuncNode(FuncNode *node) {
- for (uint i = 0; i < node->args->size(); i++) {
- (*node->args)[i]->accept(this);
- }
+ compileList(node->args);
codeFunc(node->name, node->args->size());
}
@@ -519,21 +513,21 @@ void LingoCompiler::visitVarNode(VarNode *node) {
/* ParensNode */
void LingoCompiler::visitParensNode(ParensNode *node) {
- node->expr->accept(this);
+ compile(node->expr);
}
/* UnaryOpNode */
void LingoCompiler::visitUnaryOpNode(UnaryOpNode *node) {
- node->arg->accept(this);
+ compile(node->arg);
code1(node->op);
}
/* BinaryOpNode */
void LingoCompiler::visitBinaryOpNode(BinaryOpNode *node) {
- node->a->accept(this);
- node->b->accept(this);
+ compile(node->a);
+ compile(node->b);
code1(node->op);
}
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 020b0906db..33c51f228f 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -71,6 +71,9 @@ public:
bool _hadError;
public:
+ void compile(Node *node);
+ void compileList(NodeList *nodes);
+
virtual void visitScriptNode(ScriptNode *node);
virtual void visitFactoryNode(FactoryNode *node);
virtual void visitHandlerNode(HandlerNode *node);
Commit: 03e6a56c5ce4fdc59e57b1c9b221539621b19fba
https://github.com/scummvm/scummvm/commit/03e6a56c5ce4fdc59e57b1c9b221539621b19fba
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove old if code
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 3555a86886..6a946bb852 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -251,37 +251,6 @@ int LingoCompiler::codeFunc(Common::String *s, int numpar) {
return ret;
}
-void LingoCompiler::codeLabel(int label) {
- _labelstack.push_back(label);
- debugC(4, kDebugCompile, "codeLabel: Added label %d", label);
-}
-
-void LingoCompiler::processIf(int toplabel, int endlabel) {
- inst iend;
-
- debugC(4, kDebugCompile, "processIf(%d, %d)", toplabel, endlabel);
-
- while (true) {
- if (_labelstack.empty()) {
- warning("Lingo::processIf(): Label stack underflow");
- break;
- }
-
- int label = _labelstack.back();
- _labelstack.pop_back();
-
- // This is beginning of our if()
- if (!label)
- break;
-
- debugC(4, kDebugCompile, "processIf: label at %d", label);
-
- WRITE_UINT32(&iend, endlabel - label + 1);
-
- (*_currentAssembly)[label] = iend; /* end, if cond fails */
- }
-}
-
void LingoCompiler::registerMethodVar(const Common::String &name, VarType type) {
if (!_methodVars->contains(name)) {
(*_methodVars)[name] = type;
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 33c51f228f..9d2b9425b9 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -46,9 +46,7 @@ public:
int codeFloat(double f);
int codeFunc(Common::String *s, int numpar);
int codeInt(int val);
- void codeLabel(int label);
int codeString(const char *s);
- void processIf(int toplabel, int endlabel);
void registerFactory(Common::String &s);
void registerMethodVar(const Common::String &name, VarType type);
@@ -66,8 +64,6 @@ public:
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
- Common::Array<int> _labelstack;
-
bool _hadError;
public:
Commit: d9a1057cd6892ca25b687f1a4c42b3cc8f1896e9
https://github.com/scummvm/scummvm/commit/d9a1057cd6892ca25b687f1a4c42b3cc8f1896e9
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement loops
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 3a0411ff92..c5546a2d0f 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -35,6 +35,10 @@ struct PropertyNode;
struct InstanceNode;
struct IfStmtNode;
struct IfElseStmtNode;
+struct RepeatWhileNode;
+struct RepeatWithToNode;
+struct NextRepeatNode;
+struct ExitRepeatNode;
struct IntNode;
struct FloatNode;
struct SymbolNode;
@@ -68,6 +72,10 @@ enum NodeType {
kInstanceNode,
kIfStmtNode,
kIfElseStmtNode,
+ kRepeatWhileNode,
+ kRepeatWithToNode,
+ kNextRepeatNode,
+ kExitRepeatNode,
kIntNode,
kFloatNode,
kSymbolNode,
@@ -95,6 +103,10 @@ public:
virtual void visitInstanceNode(InstanceNode *node) = 0;
virtual void visitIfStmtNode(IfStmtNode *node) = 0;
virtual void visitIfElseStmtNode(IfElseStmtNode *node) = 0;
+ virtual void visitRepeatWhileNode(RepeatWhileNode *node) = 0;
+ virtual void visitRepeatWithToNode(RepeatWithToNode *node) = 0;
+ virtual void visitNextRepeatNode(NextRepeatNode *node) = 0;
+ virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
virtual void visitSymbolNode(SymbolNode *node) = 0;
@@ -112,8 +124,9 @@ struct Node {
NodeType type;
bool isExpression;
bool isStatement;
+ bool isLoop;
- Node(NodeType t) : type(t), isExpression(false), isStatement(false) {}
+ Node(NodeType t) : type(t), isExpression(false), isStatement(false), isLoop(false) {}
virtual ~Node() {}
virtual void accept(NodeVisitor *visitor) = 0;
};
@@ -136,6 +149,18 @@ struct StmtNode : Node {
virtual ~StmtNode() {}
};
+/* LoopNode */
+
+struct LoopNode : StmtNode {
+ Common::Array<uint> nextRepeats;
+ Common::Array<uint> exitRepeats;
+
+ LoopNode(NodeType t) : StmtNode(t) {
+ isLoop = true;
+ }
+ virtual ~LoopNode() {}
+};
+
/* ScriptNode */
struct ScriptNode : Node {
@@ -281,6 +306,65 @@ struct IfElseStmtNode : StmtNode {
}
};
+/* RepeatWhileNode */
+
+struct RepeatWhileNode : LoopNode {
+ Node *cond;
+ NodeList *stmts;
+
+ RepeatWhileNode(Node *condIn, NodeList *stmtsIn)
+ : LoopNode(kRepeatWhileNode), cond(condIn), stmts(stmtsIn) {}
+ virtual ~RepeatWhileNode() {
+ delete cond;
+ deleteList(stmts);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitRepeatWhileNode(this);
+ }
+};
+
+/* RepeatWithToNode */
+
+struct RepeatWithToNode : LoopNode {
+ Common::String *var;
+ Node *start;
+ bool down;
+ Node *end;
+ NodeList *stmts;
+
+ RepeatWithToNode(Common::String *varIn, Node *startIn, bool downIn, Node *endIn, NodeList *stmtsIn)
+ : LoopNode(kRepeatWithToNode), var(varIn), start(startIn), down(downIn), end(endIn), stmts(stmtsIn) {}
+ virtual ~RepeatWithToNode() {
+ delete var;
+ delete start;
+ delete end;
+ deleteList(stmts);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitRepeatWithToNode(this);
+ }
+};
+
+/* NextRepeatNode */
+
+struct NextRepeatNode : StmtNode {
+ NextRepeatNode() : StmtNode(kNextRepeatNode) {}
+ virtual ~NextRepeatNode() {}
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitNextRepeatNode(this);
+ }
+};
+
+/* ExitRepeatNode */
+
+struct ExitRepeatNode : StmtNode {
+ ExitRepeatNode() : StmtNode(kExitRepeatNode) {}
+ virtual ~ExitRepeatNode() {}
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitExitRepeatNode(this);
+ }
+};
+
/* IntNode */
struct IntNode : ExprNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 6a946bb852..3a178b3cdd 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -66,6 +66,7 @@ LingoCompiler::LingoCompiler() {
_lines[0] = _lines[1] = _lines[2] = nullptr;
_inFactory = false;
+ _currentLoop = nullptr;
_hadError = false;
}
@@ -251,6 +252,15 @@ int LingoCompiler::codeFunc(Common::String *s, int numpar) {
return ret;
}
+VarType LingoCompiler::globalCheck() {
+ // If in a definition, assume variables are local unless
+ // they were declared global with `global varname`
+ if (_indef) {
+ return kVarLocal;
+ }
+ return kVarGlobal;
+}
+
void LingoCompiler::registerMethodVar(const Common::String &name, VarType type) {
if (!_methodVars->contains(name)) {
(*_methodVars)[name] = type;
@@ -274,6 +284,24 @@ void LingoCompiler::registerFactory(Common::String &name) {
}
}
+void LingoCompiler::updateLoopJumps(uint nextTargetPos, uint exitTargetPos) {
+ if (!_currentLoop)
+ return;
+
+ for (uint i = 0; i < _currentLoop->nextRepeats.size(); i++) {
+ uint nextRepeatPos = _currentLoop->nextRepeats[i];
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, nextTargetPos - nextRepeatPos);
+ (*_currentAssembly)[nextRepeatPos + 1] = jmpOffset;
+ }
+ for (uint i = 0; i < _currentLoop->exitRepeats.size(); i++) {
+ uint exitRepeatPos = _currentLoop->exitRepeats[i];
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, exitTargetPos - exitRepeatPos);
+ (*_currentAssembly)[exitRepeatPos + 1] = jmpOffset;
+ }
+}
+
void LingoCompiler::parseMenu(const char *code) {
warning("STUB: parseMenu");
}
@@ -433,6 +461,112 @@ void LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
(*_currentAssembly)[jmpPos + 1] = jmpOffset;
}
+/* RepeatWhileNode */
+
+void LingoCompiler::visitRepeatWhileNode(RepeatWhileNode *node) {
+ LoopNode *prevLoop = _currentLoop;
+ _currentLoop = node;
+
+ uint startPos = _currentAssembly->size();
+ compile(node->cond);
+ uint jzPos = _currentAssembly->size();
+ code2(LC::c_jumpifz, 0);
+ compileList(node->stmts);
+ uint jmpPos = _currentAssembly->size();
+ code2(LC::c_jump, 0);
+ uint endPos = _currentAssembly->size();
+
+ inst jzOffset = 0;
+ WRITE_UINT32(&jzOffset, endPos - jzPos);
+ (*_currentAssembly)[jzPos + 1] = jzOffset;
+
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, startPos - jmpPos);
+ (*_currentAssembly)[jmpPos + 1] = jmpOffset;
+
+ updateLoopJumps(jmpPos, endPos);
+ _currentLoop = prevLoop;
+}
+
+/* RepeatWithToNode */
+
+void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
+ LoopNode *prevLoop = _currentLoop;
+ _currentLoop = node;
+
+ registerMethodVar(*node->var, globalCheck());
+
+ compile(node->start);
+ code1(LC::c_varpush);
+ codeString(node->var->c_str());
+ code1(LC::c_assign);
+
+ uint startPos = _currentAssembly->size();
+ code1(LC::c_eval);
+ codeString(node->var->c_str());
+ compile(node->end);
+ if (node->down) {
+ code1(LC::c_ge);
+ } else {
+ code1(LC::c_le);
+ }
+ uint jzPos = _currentAssembly->size();
+ code2(LC::c_jumpifz, 0);
+
+ compileList(node->stmts);
+
+ uint incrementPos = _currentAssembly->size();
+ code1(LC::c_eval);
+ codeString(node->var->c_str());
+ code1(LC::c_intpush);
+ codeInt(1);
+ if (node->down) {
+ code1(LC::c_sub);
+ } else {
+ code1(LC::c_add);
+ }
+ code1(LC::c_varpush);
+ codeString(node->var->c_str());
+ code1(LC::c_assign);
+
+ uint jmpPos = _currentAssembly->size();
+ code2(LC::c_jump, 0);
+ uint endPos = _currentAssembly->size();
+
+ inst jzOffset = 0;
+ WRITE_UINT32(&jzOffset, endPos - jzPos);
+ (*_currentAssembly)[jzPos + 1] = jzOffset;
+
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, startPos - jmpPos);
+ (*_currentAssembly)[jmpPos + 1] = jmpOffset;
+
+ updateLoopJumps(incrementPos, endPos);
+ _currentLoop = prevLoop;
+}
+
+/* NextRepeatNode */
+
+void LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
+ if (_currentLoop) {
+ _currentLoop->nextRepeats.push_back(_currentAssembly->size());
+ code2(LC::c_jump, 0);
+ } else {
+ warning("# LINGO: next repeat not inside repeat loop");
+ }
+}
+
+/* ExitRepeatNode */
+
+void LingoCompiler::visitExitRepeatNode(ExitRepeatNode *node) {
+ if (_currentLoop) {
+ _currentLoop->exitRepeats.push_back(_currentAssembly->size());
+ code2(LC::c_jump, 0);
+ } else {
+ warning("# LINGO: exit repeat not inside repeat loop");
+ }
+}
+
/* IntNode */
void LingoCompiler::visitIntNode(IntNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 9d2b9425b9..5f70560120 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -48,7 +48,9 @@ public:
int codeInt(int val);
int codeString(const char *s);
void registerFactory(Common::String &s);
+ VarType globalCheck();
void registerMethodVar(const Common::String &name, VarType type);
+ void updateLoopJumps(uint nextTargetPos, uint exitTargetPos);
LingoArchive *_assemblyArchive;
ScriptContext *_assemblyContext;
@@ -60,6 +62,7 @@ public:
uint _bytenumber;
const char *_lines[3];
bool _inFactory;
+ LoopNode *_currentLoop;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
@@ -79,6 +82,10 @@ public:
virtual void visitInstanceNode(InstanceNode *node);
virtual void visitIfStmtNode(IfStmtNode *node);
virtual void visitIfElseStmtNode(IfElseStmtNode *node);
+ virtual void visitRepeatWhileNode(RepeatWhileNode *node);
+ virtual void visitRepeatWithToNode(RepeatWithToNode *node);
+ virtual void visitNextRepeatNode(NextRepeatNode *node);
+ virtual void visitExitRepeatNode(ExitRepeatNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
virtual void visitSymbolNode(SymbolNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index e0b8a3da49..ee6f7077dd 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -263,14 +263,15 @@ enum yysymbol_kind_t
YYSYMBOL_definevars = 108, /* definevars */
YYSYMBOL_ifstmt = 109, /* ifstmt */
YYSYMBOL_ifelsestmt = 110, /* ifelsestmt */
- YYSYMBOL_stmtlist = 111, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 112, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 113, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 114, /* simpleexprnoparens */
- YYSYMBOL_simpleexpr = 115, /* simpleexpr */
- YYSYMBOL_expr = 116, /* expr */
- YYSYMBOL_exprlist = 117, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 118 /* nonemptyexprlist */
+ YYSYMBOL_loop = 111, /* loop */
+ YYSYMBOL_stmtlist = 112, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 113, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 114, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 115, /* simpleexprnoparens */
+ YYSYMBOL_simpleexpr = 116, /* simpleexpr */
+ YYSYMBOL_expr = 117, /* expr */
+ YYSYMBOL_exprlist = 118, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 119 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -590,18 +591,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 81
+#define YYFINAL 89
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1016
+#define YYLAST 1362
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 90
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 29
+#define YYNNTS 30
/* YYNRULES -- Number of rules. */
-#define YYNRULES 121
+#define YYNRULES 127
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 189
+#define YYNSTATES 218
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -664,13 +665,13 @@ static const yytype_int16 yyrline[] =
290, 293, 295, 298, 300, 301, 302, 303, 306, 307,
308, 309, 310, 312, 313, 314, 315, 316, 318, 319,
320, 321, 322, 323, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 336, 337, 340, 344, 351, 352, 353,
- 356, 357, 360, 361, 364, 365, 366, 369, 373, 377,
- 383, 387, 391, 395, 396, 400, 406, 413, 414, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 430, 431,
- 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 454, 455,
- 458, 462
+ 331, 332, 333, 336, 337, 340, 344, 354, 355, 356,
+ 357, 360, 361, 364, 365, 366, 367, 370, 371, 372,
+ 375, 379, 383, 389, 393, 397, 401, 403, 405, 409,
+ 410, 414, 420, 427, 428, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 444, 445, 448, 449, 450, 451,
+ 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
+ 462, 463, 464, 465, 468, 469, 472, 476
};
#endif
@@ -704,8 +705,8 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"scriptpart", "macro", "factory", "method", "methodlist",
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
"idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "definevars",
- "ifstmt", "ifelsestmt", "stmtlist", "nonemptystmtlist", "stmtlistline",
- "simpleexprnoparens", "simpleexpr", "expr", "exprlist",
+ "ifstmt", "ifelsestmt", "loop", "stmtlist", "nonemptystmtlist",
+ "stmtlistline", "simpleexprnoparens", "simpleexpr", "expr", "exprlist",
"nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
@@ -729,7 +730,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-91)
+#define YYPACT_NINF (-158)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -743,25 +744,28 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 313, -91, -91, -91, -91, -91, -91, -91, -91, 863,
- 173, -91, -91, 863, -91, -91, -91, -91, -91, -91,
- -91, -91, -91, -91, -91, 863, -91, -91, 863, -91,
- -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
- -91, -91, -91, -91, 863, 863, -91, -91, 4, 313,
- -91, -91, -91, -91, 243, -91, -91, -91, -91, -91,
- -91, -91, -76, -66, -91, -91, -91, -91, 173, 173,
- 173, 173, -73, -91, -91, -21, 863, -64, -63, -60,
- 863, -91, -91, 173, 897, -59, -52, -91, 863, -91,
- -91, -91, 884, 173, 621, 173, 173, 173, 173, 173,
- 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
- 173, 173, -44, -72, -91, -91, -40, 884, -65, -91,
- 173, -91, -91, -42, 682, 24, 38, 38, 38, 38,
- 932, 932, -91, -14, 38, 38, 38, 38, -14, -46,
- -46, -91, -91, 682, 863, -91, -91, -36, -91, -91,
- 682, -34, 897, -91, -91, -91, 374, -91, -91, 743,
- 682, 863, -72, 436, -91, 804, -33, -91, 682, -91,
- -30, -91, 863, 682, -91, -91, 497, 682, -69, -91,
- 559, -22, 682, -91, 863, -15, -91, -91, -91
+ 346, -158, -158, -158, -158, -158, -158, -158, -35, 1086,
+ 206, -158, -158, 1086, -158, -32, -158, -158, -158, -18,
+ -158, -158, -158, -158, -158, 1086, -158, -158, 1086, -158,
+ -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+ -158, -158, -158, -158, 1086, 1086, -158, -158, 12, 346,
+ -158, -158, -158, -158, 276, -158, -158, -158, -158, -158,
+ -158, -158, -158, -158, -158, -158, -158, -76, -68, -158,
+ -158, -158, -158, 206, 206, 206, 206, -67, -158, -158,
+ 1130, 1086, -158, 1086, 206, -44, -40, -38, 1086, -158,
+ -158, 206, 1265, -34, -37, -158, 1086, -158, -158, -158,
+ 1165, 206, 844, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ -29, 6, 1178, -72, -158, -158, -25, 1165, -24, -158,
+ 206, -158, -158, -21, 905, 36, 10, 10, 10, 10,
+ 1278, 1278, -158, -49, 10, 10, 10, 10, -49, -54,
+ -54, -158, -158, 905, 206, 905, 1086, -158, -158, -23,
+ -158, -158, 905, -22, 1265, -158, -158, -158, 407, -158,
+ -158, 966, 905, 1115, 469, 1086, -72, 537, -158, 1027,
+ -17, -158, 905, -158, 29, 206, -13, -12, -158, 1086,
+ 905, -158, -158, 598, 206, 1215, -158, 905, -46, -158,
+ 660, -11, 1228, 905, 905, -158, 1086, -10, -158, 905,
+ 722, -158, -158, 783, -9, -7, -158, -158
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -774,36 +778,39 @@ static const yytype_int8 yydefact[] =
51, 54, 57, 60, 58, 0, 43, 45, 63, 26,
44, 41, 38, 25, 27, 52, 29, 36, 37, 62,
56, 34, 61, 53, 63, 0, 55, 5, 0, 2,
- 3, 6, 7, 8, 118, 9, 67, 70, 71, 68,
- 69, 65, 0, 64, 89, 90, 92, 91, 41, 0,
- 0, 0, 97, 98, 100, 0, 63, 0, 0, 0,
- 63, 1, 4, 118, 120, 0, 119, 74, 0, 95,
- 93, 94, 0, 118, 0, 0, 0, 0, 0, 0,
+ 3, 6, 7, 8, 124, 9, 67, 71, 72, 68,
+ 69, 70, 76, 31, 40, 49, 65, 0, 64, 95,
+ 96, 98, 97, 41, 0, 0, 0, 103, 104, 106,
+ 0, 63, 75, 0, 0, 0, 0, 0, 63, 1,
+ 4, 124, 126, 0, 125, 77, 0, 101, 99, 100,
+ 0, 124, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 76, 75, 0, 120, 0, 73,
- 0, 66, 99, 0, 83, 77, 110, 111, 108, 109,
- 112, 113, 105, 115, 116, 117, 107, 106, 114, 101,
- 102, 103, 104, 83, 0, 17, 18, 11, 14, 15,
- 83, 0, 121, 96, 87, 88, 0, 84, 85, 0,
- 10, 63, 0, 20, 72, 0, 0, 86, 83, 79,
- 0, 16, 21, 83, 81, 78, 0, 83, 0, 22,
- 0, 0, 12, 19, 0, 0, 80, 23, 82
+ 0, 0, 0, 13, 79, 78, 0, 126, 0, 74,
+ 0, 66, 105, 0, 89, 80, 116, 117, 114, 115,
+ 118, 119, 111, 121, 122, 123, 113, 112, 120, 107,
+ 108, 109, 110, 89, 0, 89, 0, 17, 18, 11,
+ 14, 15, 89, 0, 127, 102, 93, 94, 0, 90,
+ 91, 0, 10, 0, 0, 63, 0, 20, 73, 0,
+ 0, 92, 89, 82, 0, 0, 0, 0, 16, 21,
+ 89, 84, 81, 0, 0, 0, 86, 89, 0, 22,
+ 0, 0, 0, 89, 12, 19, 0, 0, 83, 89,
+ 0, 23, 85, 0, 0, 0, 87, 88
};
/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
+static const yytype_int16 yypgoto[] =
{
- -91, -91, -91, 16, -91, -91, -91, -91, -91, -90,
- -91, -91, 0, -25, -91, 5, -91, -91, -91, -91,
- -91, -77, -91, -31, -91, -62, 6, -81, -91
+ -158, -158, -158, 31, -158, -158, -158, -158, -158, -94,
+ -158, -158, 0, -26, -158, 5, -158, -158, -158, -158,
+ -158, -158, -131, -158, -157, -158, -36, 13, -85, -158
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 146, 147, 148, 149,
- 53, 178, 72, 62, 63, 155, 56, 57, 58, 59,
- 60, 156, 157, 158, 73, 74, 84, 85, 86
+ 0, 48, 49, 50, 51, 52, 158, 159, 160, 161,
+ 53, 198, 77, 67, 68, 167, 56, 57, 58, 59,
+ 60, 61, 168, 169, 170, 78, 79, 92, 93, 94
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -811,165 +818,191 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 54, 144, 118, 78, 81, 55, 89, 90, 91, 61,
- 87, 101, 123, 76, 145, 93, 75, 183, 184, 79,
- 94, 88, 113, 114, 151, 77, 115, 119, 61, 95,
- 96, 97, 98, 99, 100, 120, 101, 110, 111, 102,
- 103, 104, 143, 101, 61, 80, 150, 153, 159, 54,
- 162, 112, 164, 175, 55, 116, 177, 105, 106, 107,
- 108, 109, 110, 111, 186, 82, 160, 108, 109, 110,
- 111, 188, 171, 163, 0, 0, 61, 92, 0, 0,
- 61, 0, 0, 0, 0, 0, 0, 0, 121, 117,
- 0, 176, 0, 0, 54, 101, 180, 0, 102, 125,
- 182, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 107, 108,
- 109, 110, 111, 0, 54, 167, 152, 0, 0, 167,
- 0, 0, 167, 0, 0, 0, 170, 0, 0, 0,
- 0, 0, 0, 54, 161, 167, 0, 0, 0, 167,
- 54, 167, 0, 0, 0, 0, 54, 0, 0, 54,
- 54, 61, 0, 54, 169, 54, 0, 0, 54, 0,
- 174, 0, 179, 54, 0, 0, 54, 54, 64, 0,
- 54, 0, 54, 65, 187, 0, 1, 66, 67, 0,
- 2, 0, 3, 4, 5, 6, 7, 0, 0, 8,
- 0, 0, 0, 0, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 0, 0, 0, 0, 29, 30, 68,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 0, 0, 0, 0, 64, 0,
- 46, 0, 0, 65, 69, 70, 1, 66, 67, 0,
- 2, 71, 3, 4, 5, 6, 7, 0, 0, 8,
- 0, 0, 0, 0, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 0, 0, 0, 0, 29, 30, 68,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
- 46, 0, 0, 0, 69, 70, 1, 0, 0, 0,
- 2, 83, 3, 4, 5, 6, 7, 0, 0, 8,
- 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 165, 47,
- 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 166, 1,
- 0, 46, 172, 2, 0, 3, 4, 5, 6, 7,
- 154, 0, 8, 9, 0, 0, 10, 11, 12, 0,
+ 54, 156, 86, 109, 62, 55, 128, 82, 109, 66,
+ 95, 181, 89, 81, 157, 181, 133, 181, 87, 96,
+ 181, 101, 172, 80, 174, 85, 83, 84, 66, 118,
+ 119, 177, 116, 117, 118, 119, 181, 97, 98, 99,
+ 205, 206, 123, 181, 66, 88, 124, 181, 125, 54,
+ 130, 193, 129, 181, 55, 120, 181, 153, 154, 200,
+ 171, 162, 126, 176, 178, 163, 204, 109, 165, 192,
+ 110, 194, 210, 196, 197, 208, 212, 216, 213, 217,
+ 90, 66, 188, 121, 0, 0, 0, 0, 66, 100,
+ 115, 116, 117, 118, 119, 0, 131, 122, 0, 0,
+ 0, 0, 54, 0, 127, 0, 0, 135, 0, 0,
+ 0, 0, 0, 0, 0, 0, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 0, 54, 0, 0, 0, 0, 0,
+ 0, 0, 0, 164, 0, 0, 0, 0, 0, 187,
+ 0, 0, 0, 54, 0, 54, 175, 0, 0, 0,
+ 0, 0, 54, 0, 0, 0, 0, 173, 54, 0,
+ 0, 54, 54, 0, 54, 66, 183, 54, 0, 54,
+ 0, 0, 54, 0, 191, 0, 0, 0, 0, 199,
+ 54, 0, 0, 54, 0, 0, 0, 54, 195, 0,
+ 54, 0, 0, 54, 54, 0, 211, 202, 0, 54,
+ 54, 69, 0, 54, 0, 0, 70, 0, 0, 1,
+ 71, 72, 0, 2, 0, 3, 4, 5, 6, 7,
+ 0, 0, 63, 0, 0, 0, 0, 11, 12, 0,
+ 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
+ 29, 30, 73, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 69, 0, 46, 0, 0, 70, 74, 75, 1,
+ 71, 72, 0, 2, 76, 3, 4, 5, 6, 7,
+ 0, 0, 63, 0, 0, 0, 0, 11, 12, 0,
+ 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
+ 29, 30, 73, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 0, 0, 46, 0, 0, 0, 74, 75, 1,
+ 0, 0, 0, 2, 91, 3, 4, 5, 6, 7,
+ 0, 0, 8, 9, 0, 0, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 0, 0, 0,
29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
- 7, 0, 154, 8, 9, 0, 0, 10, 11, 12,
+ 7, 179, 47, 8, 9, 0, 0, 10, 11, 12,
0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 181, 1, 0, 46, 0, 2, 0, 3, 4,
- 5, 6, 7, 154, 0, 8, 9, 0, 0, 10,
+ 0, 180, 1, 0, 46, 0, 2, 0, 3, 4,
+ 5, 6, 7, 166, 0, 8, 9, 0, 0, 10,
11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 185, 1, 0, 46, 0, 2, 0,
- 3, 4, 5, 6, 7, 154, 0, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
- 0, 3, 4, 5, 6, 7, 0, 124, 8, 9,
+ 44, 0, 0, 0, 186, 0, 46, 0, 0, 0,
+ 1, 0, 0, 189, 2, 166, 3, 4, 5, 6,
+ 7, 0, 0, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
+ 0, 1, 0, 0, 46, 2, 0, 3, 4, 5,
+ 6, 7, 0, 166, 8, 9, 0, 0, 10, 11,
+ 12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
+ 21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
+ 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 201, 1, 0, 46, 0, 2, 0, 3,
+ 4, 5, 6, 7, 166, 0, 8, 9, 0, 0,
+ 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
+ 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
+ 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 207, 1, 0, 46, 0, 2,
+ 0, 3, 4, 5, 6, 7, 166, 0, 8, 9,
0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
- 2, 0, 3, 4, 5, 6, 7, 0, 154, 8,
+ 41, 42, 43, 44, 0, 0, 1, 214, 0, 46,
+ 2, 0, 3, 4, 5, 6, 7, 0, 166, 8,
9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 0, 168,
+ 40, 41, 42, 43, 44, 0, 0, 1, 215, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 0, 166,
8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 1, 0, 0, 0,
- 2, 46, 3, 4, 5, 6, 7, 0, 0, 8,
- 173, 0, 0, 0, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 95, 96, 97, 98, 99, 100,
- 46, 101, 0, 0, 102, 103, 104, 95, 96, 97,
- 98, 99, 100, 0, 101, 0, 0, 102, 103, 104,
- 0, 0, 105, 106, 107, 108, 109, 110, 111, 0,
- 0, 0, 0, 122, 0, 105, 106, 107, 108, 109,
- 110, 111, 95, 96, 97, 98, 0, 0, 0, 101,
- 0, 0, 102, 103, 104, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 105, 106, 107, 108, 109, 110, 111
+ 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
+ 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
+ 134, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
+ 0, 0, 46, 2, 0, 3, 4, 5, 6, 7,
+ 0, 166, 8, 9, 0, 0, 10, 11, 12, 0,
+ 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
+ 7, 0, 182, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 1,
+ 0, 0, 0, 2, 46, 3, 4, 5, 6, 7,
+ 0, 0, 63, 190, 0, 0, 0, 11, 12, 0,
+ 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 0, 0, 0, 184, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 185, 0, 0,
+ 0, 0, 0, 46, 0, 103, 104, 105, 106, 107,
+ 108, 102, 109, 0, 0, 110, 111, 112, 0, 0,
+ 103, 104, 105, 106, 107, 108, 0, 109, 0, 0,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 0, 0, 0, 0, 0, 0, 0, 0, 113, 114,
+ 115, 116, 117, 118, 119, 103, 104, 105, 106, 107,
+ 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
+ 105, 106, 107, 108, 0, 109, 0, 0, 110, 111,
+ 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
+ 0, 0, 0, 0, 132, 0, 113, 114, 115, 116,
+ 117, 118, 119, 0, 155, 103, 104, 105, 106, 107,
+ 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
+ 105, 106, 107, 108, 0, 109, 0, 0, 110, 111,
+ 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
+ 0, 203, 0, 0, 0, 0, 113, 114, 115, 116,
+ 117, 118, 119, 0, 209, 103, 104, 105, 106, 107,
+ 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
+ 105, 106, 0, 0, 0, 109, 0, 0, 110, 111,
+ 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
+ 0, 0, 0, 0, 0, 0, 113, 114, 115, 116,
+ 117, 118, 119
};
static const yytype_int16 yycheck[] =
{
- 0, 73, 83, 28, 0, 0, 68, 69, 70, 9,
- 86, 57, 93, 13, 86, 88, 10, 86, 87, 44,
- 41, 87, 86, 86, 89, 25, 86, 86, 28, 50,
- 51, 52, 53, 54, 55, 87, 57, 83, 84, 60,
- 61, 62, 86, 57, 44, 45, 86, 89, 24, 49,
- 86, 76, 86, 86, 49, 80, 86, 78, 79, 80,
- 81, 82, 83, 84, 86, 49, 143, 81, 82, 83,
- 84, 86, 162, 150, -1, -1, 76, 71, -1, -1,
- 80, -1, -1, -1, -1, -1, -1, -1, 88, 83,
- -1, 168, -1, -1, 94, 57, 173, -1, 60, 94,
- 177, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 80, 81,
- 82, 83, 84, -1, 124, 156, 120, -1, -1, 160,
- -1, -1, 163, -1, -1, -1, 161, -1, -1, -1,
- -1, -1, -1, 143, 144, 176, -1, -1, -1, 180,
- 150, 182, -1, -1, -1, -1, 156, -1, -1, 159,
- 160, 161, -1, 163, 159, 165, -1, -1, 168, -1,
- 165, -1, 172, 173, -1, -1, 176, 177, 5, -1,
- 180, -1, 182, 10, 184, -1, 13, 14, 15, -1,
- 17, -1, 19, 20, 21, 22, 23, -1, -1, 26,
- -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, 5, -1,
- 77, -1, -1, 10, 81, 82, 13, 14, 15, -1,
- 17, 88, 19, 20, 21, 22, 23, -1, -1, 26,
- -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, 13, -1, -1, -1,
- 17, 88, 19, 20, 21, 22, 23, -1, -1, 26,
- 27, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, -1, 13, -1, -1,
- 77, 17, -1, 19, 20, 21, 22, 23, 24, 86,
- 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
- -1, 77, 16, 17, -1, 19, 20, 21, 22, 23,
- 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
+ 0, 73, 28, 57, 39, 0, 91, 39, 57, 9,
+ 86, 168, 0, 13, 86, 172, 101, 174, 44, 87,
+ 177, 88, 153, 10, 155, 25, 44, 45, 28, 83,
+ 84, 162, 81, 82, 83, 84, 193, 73, 74, 75,
+ 86, 87, 86, 200, 44, 45, 86, 204, 86, 49,
+ 87, 182, 86, 210, 49, 81, 213, 86, 52, 190,
+ 24, 86, 88, 86, 86, 89, 197, 57, 89, 86,
+ 60, 42, 203, 86, 86, 86, 86, 86, 209, 86,
+ 49, 81, 176, 83, -1, -1, -1, -1, 88, 76,
+ 80, 81, 82, 83, 84, -1, 96, 84, -1, -1,
+ -1, -1, 102, -1, 91, -1, -1, 102, -1, -1,
+ -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, -1, 134, -1, -1, -1, -1, -1,
+ -1, -1, -1, 130, -1, -1, -1, -1, -1, 175,
+ -1, -1, -1, 153, -1, 155, 156, -1, -1, -1,
+ -1, -1, 162, -1, -1, -1, -1, 154, 168, -1,
+ -1, 171, 172, -1, 174, 175, 171, 177, -1, 179,
+ -1, -1, 182, -1, 179, -1, -1, -1, -1, 189,
+ 190, -1, -1, 193, -1, -1, -1, 197, 185, -1,
+ 200, -1, -1, 203, 204, -1, 206, 194, -1, 209,
+ 210, 5, -1, 213, -1, -1, 10, -1, -1, 13,
+ 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
+ -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, 5, -1, 77, -1, -1, 10, 81, 82, 13,
+ 14, 15, -1, 17, 88, 19, 20, 21, 22, 23,
+ -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 81, 82, 13,
+ -1, -1, -1, 17, 88, 19, 20, 21, 22, 23,
+ -1, -1, 26, 27, -1, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, 46, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
+ 23, 24, 86, 26, 27, -1, -1, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
@@ -980,45 +1013,89 @@ static const yytype_int16 yycheck[] =
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 74, 13, -1, 77, -1, 17, -1,
- 19, 20, 21, 22, 23, 86, -1, 26, 27, -1,
- -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ 71, -1, -1, -1, 75, -1, 77, -1, -1, -1,
+ 13, -1, -1, 16, 17, 86, 19, 20, 21, 22,
+ 23, -1, -1, 26, 27, -1, -1, 30, 31, 32,
+ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
+ -1, 13, -1, -1, 77, 17, -1, 19, 20, 21,
+ 22, 23, -1, 86, 26, 27, -1, -1, 30, 31,
+ 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, 74, 13, -1, 77, -1, 17, -1, 19,
+ 20, 21, 22, 23, 86, -1, 26, 27, -1, -1,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 74, 13, -1, 77, -1, 17,
+ -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
-1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ 68, 69, 70, 71, -1, -1, 13, 75, -1, 77,
17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
+ 67, 68, 69, 70, 71, -1, -1, 13, 75, -1,
77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
-1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 13, -1, -1, -1,
- 17, 77, 19, 20, 21, 22, 23, -1, -1, 26,
- 86, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 50, 51, 52, 53, 54, 55,
- 77, 57, -1, -1, 60, 61, 62, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, -1, 89, -1, 78, 79, 80, 81, 82,
- 83, 84, 50, 51, 52, 53, -1, -1, -1, 57,
- -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 78, 79, 80, 81, 82, 83, 84
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
+ -1, 77, 17, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ -1, -1, 77, 17, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
+ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 13,
+ -1, -1, -1, 17, 77, 19, 20, 21, 22, 23,
+ -1, -1, 26, 86, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, -1, -1, -1, 23, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 42, -1, -1,
+ -1, -1, -1, 77, -1, 50, 51, 52, 53, 54,
+ 55, 41, 57, -1, -1, 60, 61, 62, -1, -1,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, -1, -1, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1031,19 +1108,22 @@ static const yytype_int8 yystos[] =
55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 77, 86, 91, 92,
93, 94, 95, 100, 102, 105, 106, 107, 108, 109,
- 110, 102, 103, 104, 5, 10, 14, 15, 56, 81,
- 82, 88, 102, 114, 115, 116, 102, 102, 103, 103,
- 102, 0, 93, 88, 116, 117, 118, 86, 87, 115,
- 115, 115, 116, 88, 41, 50, 51, 52, 53, 54,
- 55, 57, 60, 61, 62, 78, 79, 80, 81, 82,
- 83, 84, 103, 86, 86, 86, 103, 116, 117, 86,
- 87, 102, 89, 117, 86, 105, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 86, 73, 86, 96, 97, 98, 99,
- 86, 89, 116, 89, 86, 105, 111, 112, 113, 24,
- 111, 102, 86, 111, 86, 24, 74, 113, 86, 105,
- 103, 99, 16, 86, 105, 86, 111, 86, 101, 102,
- 111, 74, 111, 86, 87, 74, 86, 102, 86
+ 110, 111, 39, 26, 35, 39, 102, 103, 104, 5,
+ 10, 14, 15, 56, 81, 82, 88, 102, 115, 116,
+ 117, 102, 39, 44, 45, 102, 103, 103, 102, 0,
+ 93, 88, 117, 118, 119, 86, 87, 116, 116, 116,
+ 117, 88, 41, 50, 51, 52, 53, 54, 55, 57,
+ 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
+ 103, 102, 117, 86, 86, 86, 103, 117, 118, 86,
+ 87, 102, 89, 118, 86, 105, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 86, 52, 86, 73, 86, 96, 97,
+ 98, 99, 86, 89, 117, 89, 86, 105, 112, 113,
+ 114, 24, 112, 117, 112, 102, 86, 112, 86, 24,
+ 74, 114, 86, 105, 23, 42, 75, 103, 99, 16,
+ 86, 105, 86, 112, 42, 117, 86, 86, 101, 102,
+ 112, 74, 117, 86, 112, 86, 87, 74, 86, 86,
+ 112, 102, 86, 112, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1056,12 +1136,12 @@ static const yytype_int8 yyr1[] =
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 103, 103, 104, 104, 105, 105, 105,
- 106, 106, 107, 107, 108, 108, 108, 109, 109, 110,
- 110, 110, 110, 111, 111, 112, 112, 113, 113, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 115, 115,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 117, 117,
- 118, 118
+ 105, 106, 106, 107, 107, 107, 107, 108, 108, 108,
+ 109, 109, 110, 110, 110, 110, 111, 111, 111, 112,
+ 112, 113, 113, 114, 114, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 116, 116, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 118, 118, 119, 119
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1074,12 +1154,12 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 1, 3, 1, 1, 1,
- 1, 1, 5, 3, 3, 3, 3, 4, 7, 6,
- 9, 7, 10, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 2, 2, 2, 4, 1, 1, 3,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 0, 1,
- 1, 3
+ 1, 1, 1, 5, 3, 2, 2, 3, 3, 3,
+ 4, 7, 6, 9, 7, 10, 7, 11, 12, 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
+ 2, 2, 4, 1, 1, 3, 1, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 0, 1, 1, 3
};
@@ -1353,49 +1433,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1357 "engines/director/lingo/lingo-gr.cpp"
+#line 1437 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1363 "engines/director/lingo/lingo-gr.cpp"
+#line 1443 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1369 "engines/director/lingo/lingo-gr.cpp"
+#line 1449 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1375 "engines/director/lingo/lingo-gr.cpp"
+#line 1455 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1381 "engines/director/lingo/lingo-gr.cpp"
+#line 1461 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1387 "engines/director/lingo/lingo-gr.cpp"
+#line 1467 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1393 "engines/director/lingo/lingo-gr.cpp"
+#line 1473 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 184 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1399 "engines/director/lingo/lingo-gr.cpp"
+#line 1479 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1663,7 +1743,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 190 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1667 "engines/director/lingo/lingo-gr.cpp"
+#line 1747 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -1674,7 +1754,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1678 "engines/director/lingo/lingo-gr.cpp"
+#line 1758 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -1684,37 +1764,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1688 "engines/director/lingo/lingo-gr.cpp"
+#line 1768 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 205 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1694 "engines/director/lingo/lingo-gr.cpp"
+#line 1774 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 238 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1700 "engines/director/lingo/lingo-gr.cpp"
+#line 1780 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 242 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1706 "engines/director/lingo/lingo-gr.cpp"
+#line 1786 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1712 "engines/director/lingo/lingo-gr.cpp"
+#line 1792 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1718 "engines/director/lingo/lingo-gr.cpp"
+#line 1798 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -1725,7 +1805,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1729 "engines/director/lingo/lingo-gr.cpp"
+#line 1809 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -1735,13 +1815,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1739 "engines/director/lingo/lingo-gr.cpp"
+#line 1819 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 263 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1745 "engines/director/lingo/lingo-gr.cpp"
+#line 1825 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -1750,260 +1830,260 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1754 "engines/director/lingo/lingo-gr.cpp"
+#line 1834 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 273 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1761 "engines/director/lingo/lingo-gr.cpp"
+#line 1841 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 278 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1767 "engines/director/lingo/lingo-gr.cpp"
+#line 1847 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 279 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1773 "engines/director/lingo/lingo-gr.cpp"
+#line 1853 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 285 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1779 "engines/director/lingo/lingo-gr.cpp"
+#line 1859 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 286 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1785 "engines/director/lingo/lingo-gr.cpp"
+#line 1865 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 287 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1791 "engines/director/lingo/lingo-gr.cpp"
+#line 1871 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 288 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1797 "engines/director/lingo/lingo-gr.cpp"
+#line 1877 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 289 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1803 "engines/director/lingo/lingo-gr.cpp"
+#line 1883 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1809 "engines/director/lingo/lingo-gr.cpp"
+#line 1889 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tEXIT */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 1815 "engines/director/lingo/lingo-gr.cpp"
+#line 1895 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFIELD */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1821 "engines/director/lingo/lingo-gr.cpp"
+#line 1901 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 1827 "engines/director/lingo/lingo-gr.cpp"
+#line 1907 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 1833 "engines/director/lingo/lingo-gr.cpp"
+#line 1913 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 1839 "engines/director/lingo/lingo-gr.cpp"
+#line 1919 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 1845 "engines/director/lingo/lingo-gr.cpp"
+#line 1925 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 1851 "engines/director/lingo/lingo-gr.cpp"
+#line 1931 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 1857 "engines/director/lingo/lingo-gr.cpp"
+#line 1937 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 1863 "engines/director/lingo/lingo-gr.cpp"
+#line 1943 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 1869 "engines/director/lingo/lingo-gr.cpp"
+#line 1949 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 1875 "engines/director/lingo/lingo-gr.cpp"
+#line 1955 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 1881 "engines/director/lingo/lingo-gr.cpp"
+#line 1961 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 1887 "engines/director/lingo/lingo-gr.cpp"
+#line 1967 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 1893 "engines/director/lingo/lingo-gr.cpp"
+#line 1973 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAY */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 1899 "engines/director/lingo/lingo-gr.cpp"
+#line 1979 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPLAYACCEL */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 1905 "engines/director/lingo/lingo-gr.cpp"
+#line 1985 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tPREVIOUS */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 1911 "engines/director/lingo/lingo-gr.cpp"
+#line 1991 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tPUT */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 1917 "engines/director/lingo/lingo-gr.cpp"
+#line 1997 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tREPEAT */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 1923 "engines/director/lingo/lingo-gr.cpp"
+#line 2003 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSCRIPT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 1929 "engines/director/lingo/lingo-gr.cpp"
+#line 2009 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tSET */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 1935 "engines/director/lingo/lingo-gr.cpp"
+#line 2015 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tSTARTS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 1941 "engines/director/lingo/lingo-gr.cpp"
+#line 2021 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tTELL */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 1947 "engines/director/lingo/lingo-gr.cpp"
+#line 2027 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tTO */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 1953 "engines/director/lingo/lingo-gr.cpp"
+#line 2033 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tASSERTERROR */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 1959 "engines/director/lingo/lingo-gr.cpp"
+#line 2039 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tSPRITE */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 1965 "engines/director/lingo/lingo-gr.cpp"
+#line 2045 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWHEN */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 1971 "engines/director/lingo/lingo-gr.cpp"
+#line 2051 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWHILE */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 1977 "engines/director/lingo/lingo-gr.cpp"
+#line 2057 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWINDOW */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 1983 "engines/director/lingo/lingo-gr.cpp"
+#line 2063 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWITH */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 2069 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tWITHIN */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2075 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* ID: tWORD */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* idlist: %empty */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2087 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* nonemptyidlist: ID */
@@ -2012,7 +2092,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2016 "engines/director/lingo/lingo-gr.cpp"
+#line 2096 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2020,317 +2100,350 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2024 "engines/director/lingo/lingo-gr.cpp"
+#line 2104 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* proc: ID '(' exprlist ')' '\n' */
-#line 360 "engines/director/lingo/lingo-gr.y"
+ case 73: /* proc: ID '(' exprlist ')' '\n' */
+#line 364 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 2030 "engines/director/lingo/lingo-gr.cpp"
+#line 2110 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: ID exprlist '\n' */
-#line 361 "engines/director/lingo/lingo-gr.y"
+ case 74: /* proc: ID exprlist '\n' */
+#line 365 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2036 "engines/director/lingo/lingo-gr.cpp"
+#line 2116 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* definevars: tGLOBAL idlist '\n' */
-#line 364 "engines/director/lingo/lingo-gr.y"
+ case 75: /* proc: tNEXT tREPEAT */
+#line 366 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new NextRepeatNode(); }
+#line 2122 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 76: /* proc: tEXIT tREPEAT */
+#line 367 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new ExitRepeatNode(); }
+#line 2128 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 77: /* definevars: tGLOBAL idlist '\n' */
+#line 370 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2042 "engines/director/lingo/lingo-gr.cpp"
+#line 2134 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* definevars: tPROPERTY idlist '\n' */
-#line 365 "engines/director/lingo/lingo-gr.y"
+ case 78: /* definevars: tPROPERTY idlist '\n' */
+#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2048 "engines/director/lingo/lingo-gr.cpp"
+#line 2140 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* definevars: tINSTANCE idlist '\n' */
-#line 366 "engines/director/lingo/lingo-gr.y"
+ case 79: /* definevars: tINSTANCE idlist '\n' */
+#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2054 "engines/director/lingo/lingo-gr.cpp"
+#line 2146 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* ifstmt: tIF expr tTHEN stmt */
-#line 369 "engines/director/lingo/lingo-gr.y"
+ case 80: /* ifstmt: tIF expr tTHEN stmt */
+#line 375 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2063 "engines/director/lingo/lingo-gr.cpp"
+#line 2155 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+ case 81: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 379 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2070 "engines/director/lingo/lingo-gr.cpp"
+#line 2162 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 377 "engines/director/lingo/lingo-gr.y"
+ case 82: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 383 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2173 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 383 "engines/director/lingo/lingo-gr.y"
+ case 83: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 389 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2090 "engines/director/lingo/lingo-gr.cpp"
+#line 2182 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 387 "engines/director/lingo/lingo-gr.y"
+ case 84: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 393 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2099 "engines/director/lingo/lingo-gr.cpp"
+#line 2191 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 391 "engines/director/lingo/lingo-gr.y"
+ case 85: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 397 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2106 "engines/director/lingo/lingo-gr.cpp"
+#line 2198 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* stmtlist: %empty */
-#line 395 "engines/director/lingo/lingo-gr.y"
+ case 86: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 401 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
+#line 2205 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 87: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 403 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
+#line 2212 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 88: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 405 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
+#line 2219 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 89: /* stmtlist: %empty */
+#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2112 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* nonemptystmtlist: stmtlistline */
-#line 400 "engines/director/lingo/lingo-gr.y"
+ case 91: /* nonemptystmtlist: stmtlistline */
+#line 414 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2123 "engines/director/lingo/lingo-gr.cpp"
+#line 2236 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 92: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 420 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2133 "engines/director/lingo/lingo-gr.cpp"
+#line 2246 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* stmtlistline: '\n' */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 93: /* stmtlistline: '\n' */
+#line 427 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2139 "engines/director/lingo/lingo-gr.cpp"
+#line 2252 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* simpleexprnoparens: tINT */
-#line 419 "engines/director/lingo/lingo-gr.y"
+ case 95: /* simpleexprnoparens: tINT */
+#line 433 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2145 "engines/director/lingo/lingo-gr.cpp"
+#line 2258 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* simpleexprnoparens: tFLOAT */
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 96: /* simpleexprnoparens: tFLOAT */
+#line 434 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2151 "engines/director/lingo/lingo-gr.cpp"
+#line 2264 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* simpleexprnoparens: tSYMBOL */
-#line 421 "engines/director/lingo/lingo-gr.y"
+ case 97: /* simpleexprnoparens: tSYMBOL */
+#line 435 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2157 "engines/director/lingo/lingo-gr.cpp"
+#line 2270 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* simpleexprnoparens: tSTRING */
-#line 422 "engines/director/lingo/lingo-gr.y"
+ case 98: /* simpleexprnoparens: tSTRING */
+#line 436 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2163 "engines/director/lingo/lingo-gr.cpp"
+#line 2276 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* simpleexprnoparens: '+' simpleexpr */
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 99: /* simpleexprnoparens: '+' simpleexpr */
+#line 437 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2169 "engines/director/lingo/lingo-gr.cpp"
+#line 2282 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* simpleexprnoparens: '-' simpleexpr */
-#line 424 "engines/director/lingo/lingo-gr.y"
+ case 100: /* simpleexprnoparens: '-' simpleexpr */
+#line 438 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2175 "engines/director/lingo/lingo-gr.cpp"
+#line 2288 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* simpleexprnoparens: tNOT simpleexpr */
-#line 425 "engines/director/lingo/lingo-gr.y"
+ case 101: /* simpleexprnoparens: tNOT simpleexpr */
+#line 439 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2181 "engines/director/lingo/lingo-gr.cpp"
+#line 2294 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 426 "engines/director/lingo/lingo-gr.y"
+ case 102: /* simpleexprnoparens: ID '(' exprlist ')' */
+#line 440 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2187 "engines/director/lingo/lingo-gr.cpp"
+#line 2300 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* simpleexprnoparens: ID */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 103: /* simpleexprnoparens: ID */
+#line 441 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2193 "engines/director/lingo/lingo-gr.cpp"
+#line 2306 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* simpleexpr: '(' expr ')' */
-#line 431 "engines/director/lingo/lingo-gr.y"
+ case 105: /* simpleexpr: '(' expr ')' */
+#line 445 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2199 "engines/director/lingo/lingo-gr.cpp"
+#line 2312 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* expr: simpleexpr */
-#line 434 "engines/director/lingo/lingo-gr.y"
+ case 106: /* expr: simpleexpr */
+#line 448 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2205 "engines/director/lingo/lingo-gr.cpp"
+#line 2318 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* expr: expr '+' expr */
-#line 435 "engines/director/lingo/lingo-gr.y"
+ case 107: /* expr: expr '+' expr */
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2211 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* expr: expr '-' expr */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 108: /* expr: expr '-' expr */
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2217 "engines/director/lingo/lingo-gr.cpp"
+#line 2330 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* expr: expr '*' expr */
-#line 437 "engines/director/lingo/lingo-gr.y"
+ case 109: /* expr: expr '*' expr */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2223 "engines/director/lingo/lingo-gr.cpp"
+#line 2336 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* expr: expr '/' expr */
-#line 438 "engines/director/lingo/lingo-gr.y"
+ case 110: /* expr: expr '/' expr */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2229 "engines/director/lingo/lingo-gr.cpp"
+#line 2342 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* expr: expr tMOD expr */
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 111: /* expr: expr tMOD expr */
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2235 "engines/director/lingo/lingo-gr.cpp"
+#line 2348 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* expr: expr '>' expr */
-#line 440 "engines/director/lingo/lingo-gr.y"
+ case 112: /* expr: expr '>' expr */
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2241 "engines/director/lingo/lingo-gr.cpp"
+#line 2354 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* expr: expr '<' expr */
-#line 441 "engines/director/lingo/lingo-gr.y"
+ case 113: /* expr: expr '<' expr */
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2247 "engines/director/lingo/lingo-gr.cpp"
+#line 2360 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* expr: expr tEQ expr */
-#line 442 "engines/director/lingo/lingo-gr.y"
+ case 114: /* expr: expr tEQ expr */
+#line 456 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2253 "engines/director/lingo/lingo-gr.cpp"
+#line 2366 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* expr: expr tNEQ expr */
-#line 443 "engines/director/lingo/lingo-gr.y"
+ case 115: /* expr: expr tNEQ expr */
+#line 457 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2259 "engines/director/lingo/lingo-gr.cpp"
+#line 2372 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* expr: expr tGE expr */
-#line 444 "engines/director/lingo/lingo-gr.y"
+ case 116: /* expr: expr tGE expr */
+#line 458 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2265 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* expr: expr tLE expr */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 117: /* expr: expr tLE expr */
+#line 459 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2271 "engines/director/lingo/lingo-gr.cpp"
+#line 2384 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* expr: expr tAND expr */
-#line 446 "engines/director/lingo/lingo-gr.y"
+ case 118: /* expr: expr tAND expr */
+#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2277 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* expr: expr tOR expr */
-#line 447 "engines/director/lingo/lingo-gr.y"
+ case 119: /* expr: expr tOR expr */
+#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2283 "engines/director/lingo/lingo-gr.cpp"
+#line 2396 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* expr: expr '&' expr */
-#line 448 "engines/director/lingo/lingo-gr.y"
+ case 120: /* expr: expr '&' expr */
+#line 462 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2289 "engines/director/lingo/lingo-gr.cpp"
+#line 2402 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* expr: expr tCONCAT expr */
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 121: /* expr: expr tCONCAT expr */
+#line 463 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2295 "engines/director/lingo/lingo-gr.cpp"
+#line 2408 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* expr: expr tCONTAINS expr */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 122: /* expr: expr tCONTAINS expr */
+#line 464 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2301 "engines/director/lingo/lingo-gr.cpp"
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* expr: expr tSTARTS expr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 123: /* expr: expr tSTARTS expr */
+#line 465 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2307 "engines/director/lingo/lingo-gr.cpp"
+#line 2420 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* exprlist: %empty */
-#line 454 "engines/director/lingo/lingo-gr.y"
+ case 124: /* exprlist: %empty */
+#line 468 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2313 "engines/director/lingo/lingo-gr.cpp"
+#line 2426 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* nonemptyexprlist: expr */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 126: /* nonemptyexprlist: expr */
+#line 472 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2322 "engines/director/lingo/lingo-gr.cpp"
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 127: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 476 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2330 "engines/director/lingo/lingo-gr.cpp"
+#line 2443 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2529,7 +2642,7 @@ yyreturn:
return yyresult;
}
-#line 467 "engines/director/lingo/lingo-gr.y"
+#line 481 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 73f4e4e801..4030e5758d 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -164,7 +164,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<idlist> idlist nonemptyidlist
// STATEMENT
-%type<node> stmt stmtoneliner proc definevars ifstmt ifelsestmt
+%type<node> stmt stmtoneliner proc definevars ifstmt ifelsestmt loop
%type<nodelist> stmtlist nonemptystmtlist
%type<node> stmtlistline
@@ -354,6 +354,7 @@ nonemptyidlist: ID[item] {
stmt: stmtoneliner
| ifstmt
| ifelsestmt
+ | loop
;
stmtoneliner: proc
@@ -362,6 +363,8 @@ stmtoneliner: proc
proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
| ID exprlist[args] '\n' { $$ = new CmdNode($ID, $args); }
+ | tNEXT tREPEAT { $$ = new NextRepeatNode(); }
+ | tEXIT tREPEAT { $$ = new ExitRepeatNode(); }
;
definevars: tGLOBAL idlist '\n' { $$ = new GlobalNode($idlist); }
@@ -395,6 +398,14 @@ ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
$$ = new IfElseStmtNode($expr, $stmtlist1, $stmtlist2); }
;
+loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' {
+ $$ = new RepeatWhileNode($expr, $stmtlist); }
+ | tREPEAT tWITH ID tEQ expr[start] tTO expr[end] '\n' stmtlist tENDREPEAT '\n' {
+ $$ = new RepeatWithToNode($ID, $start, false, $end, $stmtlist); }
+ | tREPEAT tWITH ID tEQ expr[start] tDOWN tTO expr[end] '\n' stmtlist tENDREPEAT '\n' {
+ $$ = new RepeatWithToNode($ID, $start, true, $end, $stmtlist); }
+ ;
+
stmtlist: /* empty */ { $$ = new NodeList; }
| nonemptystmtlist
;
Commit: 2b19132d971b7af247646a5ad57b423faedd343b
https://github.com/scummvm/scummvm/commit/2b19132d971b7af247646a5ad57b423faedd343b
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add global, local, prop reference types
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
engines/director/types.h
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 2377334092..f228fe8c22 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -506,15 +506,19 @@ void LB::b_delete(int nargs) {
Datum field;
int start, end;
- if (d.type == FIELDREF || d.type == VAR) {
+ if (d.type == CHUNKREF) {
+ if (d.u.cref->source.isVarRef()) {
+ field = d.u.cref->source;
+ start = d.u.cref->start;
+ end = d.u.cref->end;
+ } else {
+ warning("b_delete: bad chunk ref field type: %s", d.type2str());
+ return;
+ }
+ } else if (d.isRef()) {
field = d;
start = 0;
end = -1;
- } else if (d.type == CHUNKREF) {
- TYPECHECK2(d.u.cref->source, FIELDREF, VAR);
- field = d.u.cref->source;
- start = d.u.cref->start;
- end = d.u.cref->end;
} else {
warning("b_delete: bad field type: %s", d.type2str());
return;
@@ -1511,8 +1515,8 @@ void LB::b_startTimer(int nargs) {
///////////////////
void LB::b_factory(int nargs) {
Datum factoryName = g_lingo->pop();
- factoryName.type = VAR;
- Datum o = g_lingo->varFetch(factoryName, true);
+ factoryName.type = GLOBALREF;
+ Datum o = g_lingo->varFetch(factoryName);
if (o.type == OBJECT && (o.u.obj->getObjType() & (kFactoryObj | kXObj))
&& o.u.obj->getName().equalsIgnoreCase(*factoryName.u.s) && o.u.obj->getInheritanceLevel() == 1) {
g_lingo->push(o);
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 1c887706c5..e6a75491f7 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -312,10 +312,11 @@ Datum Lingo::findVarV4(int varType, const Datum &id) {
case 1: // global
case 2: // global
case 3: // property/instance
- if (id.type == VAR) {
+ if (id.type == SYMBOL) {
res = id;
+ res.type = (varType == 3) ? PROPREF : GLOBALREF;
} else {
- warning("BUILDBOT: findVarV4: expected ID for var type %d to be VAR, got %s", varType, id.type2str());
+ warning("BUILDBOT: findVarV4: expected ID for var type %d to be SYMBOL, got %s", varType, id.type2str());
}
break;
case 4: // arg
@@ -336,7 +337,7 @@ Datum Lingo::findVarV4(int varType, const Datum &id) {
if (varIndex < (int)varNames->size()) {
res = (*varNames)[varIndex];
- res.type = VAR;
+ res.type = LOCALREF;
} else {
warning("BUILDBOT: findVarV4: invalid var ID %d for var type %d (too high)", id.asInt(), varType);
}
@@ -409,7 +410,7 @@ void LC::cb_objectcall() {
Datum nargs = g_lingo->pop();
Datum var = g_lingo->findVarV4(varType, varId);
- if (var.type != VAR) {
+ if (var.isVarRef()) {
warning("cb_objectcall: first arg did not resolve to variable");
return;
}
@@ -423,7 +424,7 @@ void LC::cb_objectcall() {
Datum &firstArg = g_lingo->_stack[g_lingo->_stack.size() - nargs.u.i];
// The first arg could be either a method name or a variable name
if (firstArg.type == SYMBOL) {
- firstArg.type = VAR;
+ firstArg.type = VARREF;
}
}
@@ -519,9 +520,9 @@ void LC::cb_globalpush() {
int nameId = g_lingo->readInt();
Common::String name = g_lingo->_currentArchive->getName(nameId);
Datum target(name);
- target.type = VAR;
+ target.type = GLOBALREF;
debugC(3, kDebugLingoExec, "cb_globalpush: pushing %s to stack", name.c_str());
- Datum result = g_lingo->varFetch(target, true);
+ Datum result = g_lingo->varFetch(target);
g_lingo->push(result);
}
@@ -530,16 +531,10 @@ void LC::cb_globalassign() {
int nameId = g_lingo->readInt();
Common::String name = g_lingo->_currentArchive->getName(nameId);
Datum target(name);
- target.type = VAR;
+ target.type = GLOBALREF;
debugC(3, kDebugLingoExec, "cb_globalassign: assigning to %s", name.c_str());
Datum source = g_lingo->pop();
- // Lingo lets you declare globals inside a method.
- // This doesn't define them in the script list, but you can still
- // read and write to them???
- if (!g_lingo->_globalvars.contains(name)) {
- g_lingo->_globalvars[name] = Datum();
- }
- g_lingo->varAssign(target, source, true);
+ g_lingo->varAssign(target, source);
}
void LC::cb_objectfieldassign() {
@@ -561,7 +556,7 @@ void LC::cb_varrefpush() {
int nameId = g_lingo->readInt();
Common::String name = g_lingo->_currentArchive->getName(nameId);
Datum result(name);
- result.type = VAR;
+ result.type = SYMBOL;
g_lingo->push(result);
}
@@ -626,9 +621,9 @@ void LC::cb_varpush() {
int nameId = g_lingo->readInt();
Common::String name = g_lingo->_currentArchive->getName(nameId);
Datum target(name);
- target.type = VAR;
+ target.type = LOCALREF;
debugC(3, kDebugLingoExec, "cb_varpush: pushing %s to stack", name.c_str());
- Datum result = g_lingo->varFetch(target, false);
+ Datum result = g_lingo->varFetch(target);
g_lingo->push(result);
}
@@ -637,11 +632,11 @@ void LC::cb_varassign() {
int nameId = g_lingo->readInt();
Common::String name = g_lingo->_currentArchive->getName(nameId);
Datum target(name);
- target.type = VAR;
+ target.type = LOCALREF;
debugC(3, kDebugLingoExec, "cb_varassign: assigning to %s", name.c_str());
Datum source = g_lingo->pop();
// Local variables should be initialised by the script, no varCreate here
- g_lingo->varAssign(target, source, false);
+ g_lingo->varAssign(target, source);
}
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index db3b064c22..eddb105606 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -263,11 +263,8 @@ void Lingo::pushContext(const Symbol funcSym, bool allowRetVal, Datum defaultRet
for (int i = symNArgs - 1; i >= 0; i--) {
Common::String name = (*funcSym.argNames)[i];
if (!localvars->contains(name)) {
- (*localvars)[name] = Datum();
- Datum arg(name);
- arg.type = VAR;
Datum value = g_lingo->pop();
- g_lingo->varAssign(arg, value, false, localvars);
+ (*localvars)[name] = value;
} else {
warning("Argument %s already defined", name.c_str());
g_lingo->pop();
@@ -458,7 +455,7 @@ void LC::c_varpush() {
}
d = Datum(Common::String(name));
- d.type = VAR;
+ d.type = VARREF;
g_lingo->push(d);
}
@@ -493,7 +490,7 @@ void LC::c_eval() {
Datum d;
d = g_lingo->pop(false);
- if (d.type != VAR) { // It could be cast ref
+ if (d.type.isVarRef()) { // It could be cast ref
g_lingo->push(d);
return;
}
@@ -556,7 +553,7 @@ void LC::c_themenuitementityassign() {
void LC::c_objectproppush() {
Datum objName(g_lingo->readString());
- objName.type = VAR;
+ objName.type = VARREF;
Datum obj = g_lingo->varFetch(objName);
Common::String propName = g_lingo->readString();
@@ -565,7 +562,7 @@ void LC::c_objectproppush() {
void LC::c_objectpropassign() {
Datum objName(g_lingo->readString());
- objName.type = VAR;
+ objName.type = VARREF;
Datum obj = g_lingo->varFetch(objName);
Common::String propName = g_lingo->readString();
@@ -1034,8 +1031,7 @@ void LC::c_charOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
g_lingo->lingoError("LC::c_charOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1050,7 +1046,7 @@ void LC::c_charToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ || (src.type != STRING && src.isRef())) {
warning("LC::c_charToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1063,8 +1059,7 @@ void LC::c_itemOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
warning("LC::c_itemOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1079,7 +1074,7 @@ void LC::c_itemToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ || (src.type != STRING && src.isRef())) {
warning("LC::c_itemToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1092,8 +1087,7 @@ void LC::c_lineOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
warning("LC::c_lineOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1108,7 +1102,7 @@ void LC::c_lineToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ || (src.type != STRING && src.isRef())) {
warning("LC::c_lineToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1121,8 +1115,7 @@ void LC::c_wordOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
warning("LC::c_wordOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1137,7 +1130,7 @@ void LC::c_wordToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ || (src.type != STRING && src.isRef())) {
warning("LC::c_wordToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1460,10 +1453,10 @@ void LC::call(const Common::String &name, int nargs, bool allowRetVal) {
Datum firstArg = g_lingo->_stack[g_lingo->_stack.size() - nargs];
// Factory/XObject method call
- if (firstArg.type == VAR) { // first arg could be method name
+ if (firstArg.type == VARREF) { // first arg could be method name
Datum objName(name);
- objName.type = VAR;
- Datum obj = g_lingo->varFetch(objName, false, nullptr, true);
+ objName.type = VARREF;
+ Datum obj = g_lingo->varFetch(objName, nullptr, true);
if (obj.type == OBJECT && (obj.u.obj->getObjType() & (kFactoryObj | kXObj))) {
debugC(3, kDebugLingoExec, "Method called on object: <%s>", obj.asString(true).c_str());
AbstractObject *target = obj.u.obj;
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 3a178b3cdd..af42868983 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -252,17 +252,11 @@ int LingoCompiler::codeFunc(Common::String *s, int numpar) {
return ret;
}
-VarType LingoCompiler::globalCheck() {
- // If in a definition, assume variables are local unless
- // they were declared global with `global varname`
- if (_indef) {
- return kVarLocal;
- }
- return kVarGlobal;
-}
-
void LingoCompiler::registerMethodVar(const Common::String &name, VarType type) {
if (!_methodVars->contains(name)) {
+ if (_indef && type == kVarGeneric) {
+ type = kVarLocal;
+ }
(*_methodVars)[name] = type;
if (type == kVarProperty || type == kVarInstance) {
_assemblyContext->_properties[name] = Datum();
@@ -494,7 +488,7 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
LoopNode *prevLoop = _currentLoop;
_currentLoop = node;
- registerMethodVar(*node->var, globalCheck());
+ registerMethodVar(*node->var);
compile(node->start);
code1(LC::c_varpush);
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 5f70560120..b61363fff2 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -48,8 +48,7 @@ public:
int codeInt(int val);
int codeString(const char *s);
void registerFactory(Common::String &s);
- VarType globalCheck();
- void registerMethodVar(const Common::String &name, VarType type);
+ void registerMethodVar(const Common::String &name, VarType type = kVarGeneric);
void updateLoopJumps(uint nextTargetPos, uint exitTargetPos);
LingoArchive *_assemblyArchive;
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 760e5dd767..d47f197677 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -636,7 +636,10 @@ void Datum::reset() {
#ifndef __COVERITY__
if (*refCount <= 0) {
switch (type) {
- case VAR:
+ case VARREF:
+ case GLOBALREF:
+ case LOCALREF:
+ case PROPREF:
case STRING:
case SYMBOL:
delete u.s;
@@ -671,7 +674,7 @@ void Datum::reset() {
}
Datum Datum::eval() const {
- if (type == VAR || type == FIELDREF || type == CHUNKREF) {
+ if (isRef()) {
return g_lingo->varFetch(*this);
}
@@ -786,9 +789,18 @@ Common::String Datum::asString(bool printonly) const {
case VOID:
s = "#void";
break;
- case VAR:
+ case VARREF:
s = Common::String::format("var: #%s", u.s->c_str());
break;
+ case GLOBALREF:
+ s = Common::String::format("global: #%s", u.s->c_str());
+ break;
+ case LOCALREF:
+ s = Common::String::format("local: #%s", u.s->c_str());
+ break;
+ case PROPREF:
+ s = Common::String::format("property: #%s", u.s->c_str());
+ break;
case CASTREF:
s = Common::String::format("cast %d", u.i);
break;
@@ -899,6 +911,18 @@ int Datum::asCastId() const {
return castId;
}
+bool Datum::isRef() const {
+ return (isVarRef() || isCastRef() || type == CHUNKREF);
+}
+
+bool Datum::isVarRef() const {
+ return (type == VARREF || type == GLOBALREF || type == LOCALREF || type == PROPREF);
+}
+
+bool Datum::isCastRef() const {
+ return (type == CASTREF || type == FIELDREF);
+}
+
const char *Datum::type2str(bool isk) const {
static char res[20];
@@ -923,8 +947,14 @@ const char *Datum::type2str(bool isk) const {
return "FIELDREF";
case CHUNKREF:
return "CHUNKREF";
- case VAR:
- return isk ? "#var" : "VAR";
+ case VARREF:
+ return "VARREF";
+ case GLOBALREF:
+ return "GLOBALREF";
+ case LOCALREF:
+ return "LOCALREF";
+ case PROPREF:
+ return "PROPREF";
default:
snprintf(res, 20, "-- (%d) --", type);
return res;
@@ -1108,120 +1138,180 @@ int Lingo::getInt(uint pc) {
return (int)READ_UINT32(&((*_currentScript)[pc]));
}
-void Lingo::varAssign(const Datum &var, Datum &value, bool global, DatumHash *localvars) {
+void Lingo::varAssign(const Datum &var, Datum &value, DatumHash *localvars) {
if (localvars == nullptr) {
localvars = _localvars;
}
- if (var.type == VAR) {
- Common::String name = *var.u.s;
-
- if (localvars && localvars->contains(name)) {
- (*localvars)[name] = value;
- if (global)
- warning("varAssign: variable %s is local, not global", name.c_str());
- return;
- }
- if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
- _currentMe.u.obj->setProp(name, value);
- if (global)
- warning("varAssign: variable %s is instance or property, not global", name.c_str());
- return;
- }
- if (_globalvars.contains(name)) {
+ switch (var.type) {
+ case VARREF:
+ {
+ Common::String name = *var.u.s;
+ if (localvars && localvars->contains(name)) {
+ (*localvars)[name] = value;
+ return;
+ }
+ if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
+ _currentMe.u.obj->setProp(name, value);
+ return;
+ }
_globalvars[name] = value;
- if (!global)
- warning("varAssign: variable %s is global, not local", name.c_str());
- return;
}
-
- warning("varAssign: variable %s not defined", name.c_str());
- } else if (var.type == FIELDREF || var.type == CASTREF) {
- Movie *movie = g_director->getCurrentMovie();
- if (!movie) {
- warning("varAssign: Assigning to a reference to an empty movie");
- return;
+ break;
+ case GLOBALREF:
+ // Global variables declared by `global varname` within a handler are not listed anywhere
+ // in Lscr, unlike globals declared outside of a handler and every other variable type.
+ // So while we require other variable types to be initialized before assigning to them,
+ // let's not enforce that for globals.
+ _globalvars[*var.u.s] = value;
+ break;
+ case LOCALREF:
+ {
+ Common::String name = *var.u.s;
+ if (localvars && localvars->contains(name)) {
+ (*localvars)[name] = value;
+ } else {
+ warning("varAssign: local variable %s not defined", name.c_str());
+ }
}
- int castId = var.u.i;
- CastMember *member = movie->getCastMember(castId);
- if (!member) {
- warning("varAssign: Unknown cast id %d", castId);
- return;
+ break;
+ case PROPREF:
+ {
+ Common::String name = *var.u.s;
+ if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
+ _currentMe.u.obj->setProp(name, value);
+ } else {
+ warning("varAssign: property %s not defined", name.c_str());
+ }
}
- switch (member->_type) {
- case kCastText:
- ((TextCastMember *)member)->setText(value.asString().c_str());
- break;
- default:
- warning("varAssign: Unhandled cast type %d", member->_type);
- break;
+ break;
+ case FIELDREF:
+ case CASTREF:
+ {
+ Movie *movie = g_director->getCurrentMovie();
+ if (!movie) {
+ warning("varAssign: Assigning to a reference to an empty movie");
+ return;
+ }
+ int castId = var.u.i;
+ CastMember *member = movie->getCastMember(castId);
+ if (!member) {
+ warning("varAssign: Unknown cast id %d", castId);
+ return;
+ }
+ switch (member->_type) {
+ case kCastText:
+ ((TextCastMember *)member)->setText(value.asString().c_str());
+ break;
+ default:
+ warning("varAssign: Unhandled cast type %d", member->_type);
+ break;
+ }
}
- } else {
+ break;
+ default:
warning("varAssign: assignment to non-variable");
+ break;
}
}
-Datum Lingo::varFetch(const Datum &var, bool global, DatumHash *localvars, bool silent) {
+Datum Lingo::varFetch(const Datum &var, DatumHash *localvars, bool silent) {
if (localvars == nullptr) {
localvars = _localvars;
}
Datum result;
- if (var.type == VAR) {
- Datum d;
- Common::String name = *var.u.s;
+ switch (var.type) {
+ case VARREF:
+ {
+ Datum d;
+ Common::String name = *var.u.s;
+
+ if (localvars && localvars->contains(name)) {
+ return (*localvars)[name];
+ }
+ if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
+ return _currentMe.u.obj->getProp(name);
+ }
+ if (_globalvars.contains(name)) {
+ return _globalvars[name];
+ }
- if (localvars && localvars->contains(name)) {
- if (global)
- warning("varFetch: variable %s is local, not global", name.c_str());
- return (*localvars)[name];
- }
- if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
- if (global)
- warning("varFetch: variable %s is instance or property, not global", name.c_str());
- return _currentMe.u.obj->getProp(name);
+ if (!silent)
+ warning("varFetch: variable %s not found", name.c_str());
+ return result;
}
- if (_globalvars.contains(name)) {
- if (!global)
- warning("varFetch: variable %s is global, not local", name.c_str());
- return _globalvars[name];
+ break;
+ case GLOBALREF:
+ {
+ Common::String name = *var.u.s;
+ if (_globalvars.contains(name)) {
+ return _globalvars[name];
+ }
+ warning("varAssign: global variable %s not defined", name.c_str());
+ return result;
}
-
- if (!silent)
- warning("varFetch: variable %s not found", name.c_str());
- return result;
- } else if (var.type == FIELDREF || var.type == CASTREF) {
- Movie *movie = g_director->getCurrentMovie();
- if (!movie) {
- warning("varFetch: Assigning to a reference to an empty movie");
+ break;
+ case LOCALREF:
+ {
+ Common::String name = *var.u.s;
+ if (localvars && localvars->contains(name)) {
+ return (*localvars)[name];
+ }
+ warning("varAssign: local variable %s not defined", name.c_str());
return result;
}
- int castId = var.u.i;
- CastMember *member = movie->getCastMember(castId);
- if (!member) {
- warning("varFetch: Unknown cast id %d", castId);
+ break;
+ case PROPREF:
+ {
+ Common::String name = *var.u.s;
+ if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
+ return _currentMe.u.obj->getProp(name);
+ }
+ warning("varAssign: property %s not defined", name.c_str());
return result;
}
- switch (member->_type) {
- case kCastText:
- result.type = STRING;
- result.u.s = new Common::String(((TextCastMember *)member)->getText());
- break;
- default:
- warning("varFetch: Unhandled cast type %d", member->_type);
- break;
+ break;
+ case FIELDREF:
+ case CASTREF:
+ {
+ Movie *movie = g_director->getCurrentMovie();
+ if (!movie) {
+ warning("varFetch: Assigning to a reference to an empty movie");
+ return result;
+ }
+ int castId = var.u.i;
+ CastMember *member = movie->getCastMember(castId);
+ if (!member) {
+ warning("varFetch: Unknown cast id %d", castId);
+ return result;
+ }
+ switch (member->_type) {
+ case kCastText:
+ result.type = STRING;
+ result.u.s = new Common::String(((TextCastMember *)member)->getText());
+ break;
+ default:
+ warning("varFetch: Unhandled cast type %d", member->_type);
+ break;
+ }
}
- } else if (var.type == CHUNKREF) {
- Common::String src = var.u.cref->source.eval().asString();
- result.type = STRING;
- if (var.u.cref->start == -1) {
- result.u.s = new Common::String("");
- } else {
- result.u.s = new Common::String(src.substr(var.u.cref->start, var.u.cref->end - var.u.cref->start));
+ break;
+ case CHUNKREF:
+ {
+ Common::String src = var.u.cref->source.eval().asString();
+ result.type = STRING;
+ if (var.u.cref->start == -1) {
+ result.u.s = new Common::String("");
+ } else {
+ result.u.s = new Common::String(src.substr(var.u.cref->start, var.u.cref->end - var.u.cref->start));
+ }
}
- } else {
+ break;
+ default:
warning("varFetch: fetch from non-variable");
+ break;
}
return result;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 4e74b5f9e3..13b71e2fe8 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -107,7 +107,7 @@ struct Datum { /* interpreter stack type */
union {
int i; /* INT, ARGC, ARGCNORET */
double f; /* FLOAT */
- Common::String *s; /* STRING, VAR, OBJECT */
+ Common::String *s; /* STRING, VARREF, OBJECT */
DatumArray *farr; /* ARRAY, POINT, RECT */
PropertyArray *parr; /* PARRAY */
AbstractObject *obj; /* OBJECT */
@@ -135,6 +135,10 @@ struct Datum { /* interpreter stack type */
Common::String asString(bool printonly = false) const;
int asCastId() const;
+ bool isRef() const;
+ bool isVarRef() const;
+ bool isCastRef() const;
+
const char *type2str(bool isk = false) const;
int equalTo(Datum &d, bool ignoreCase = false) const;
@@ -273,8 +277,8 @@ public:
void pushContext(const Symbol funcSym, bool allowRetVal, Datum defaultRetVal);
void popContext();
void cleanLocalVars();
- void varAssign(const Datum &var, Datum &value, bool global = false, DatumHash *localvars = nullptr);
- Datum varFetch(const Datum &var, bool global = false, DatumHash *localvars = nullptr, bool silent = false);
+ void varAssign(const Datum &var, Datum &value, DatumHash *localvars = nullptr);
+ Datum varFetch(const Datum &var, DatumHash *localvars = nullptr, bool silent = false);
Datum findVarV4(int varType, const Datum &id);
int getAlignedType(const Datum &d1, const Datum &d2, bool numsOnly);
diff --git a/engines/director/types.h b/engines/director/types.h
index 3b3e544c53..fa64f4c11b 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -346,12 +346,16 @@ enum DatumType {
POINT,
STRING,
SYMBOL,
- VAR,
+ VARREF,
+ GLOBALREF,
+ LOCALREF,
+ PROPREF,
VOID,
RECT
};
enum VarType {
+ kVarGeneric,
kVarArgument,
kVarProperty,
kVarInstance,
Commit: 6a1829a7d5fec6c3b7d40010ce774cf241b7c122
https://github.com/scummvm/scummvm/commit/6a1829a7d5fec6c3b7d40010ce774cf241b7c122
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Alphabetize putafter & putbefore
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index eddb105606..933600b1c9 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -68,14 +68,12 @@ static struct FuncDescr {
{ LC::c_asserterror, "c_asserterror", "" },
{ LC::c_asserterrordone,"c_asserterrordone","" },
{ LC::c_add, "c_add", "" },
- { LC::c_putafter, "c_putafter", "" }, // D3
{ LC::c_ampersand, "c_ampersand", "" },
{ LC::c_and, "c_and", "" },
{ LC::c_argcnoretpush, "c_argcnoretpush", "i" },
{ LC::c_argcpush, "c_argcpush", "i" },
{ LC::c_arraypush, "c_arraypush", "i" },
{ LC::c_assign, "c_assign", "" },
- { LC::c_putbefore, "c_putbefore", "" }, // D3
{ LC::c_callcmd, "c_callcmd", "si" },
{ LC::c_callfunc, "c_callfunc", "si" },
{ LC::c_charOf, "c_charOf", "" }, // D3
@@ -85,7 +83,6 @@ static struct FuncDescr {
{ LC::c_contains, "c_contains", "" },
{ LC::c_div, "c_div", "" },
{ LC::c_eq, "c_eq", "" },
- { LC::c_eval, "c_eval", "s" },
{ LC::c_floatpush, "c_floatpush", "f" },
{ LC::c_ge, "c_ge", "" },
{ LC::c_goto, "c_goto", "" },
@@ -117,6 +114,8 @@ static struct FuncDescr {
{ LC::c_play, "c_play", "" },
{ LC::c_procret, "c_procret", "" },
{ LC::c_proparraypush, "c_proparraypush", "i" },
+ { LC::c_putafter, "c_putafter", "" }, // D3
+ { LC::c_putbefore, "c_putbefore", "" }, // D3
{ LC::c_starts, "c_starts", "" },
{ LC::c_stringpush, "c_stringpush", "s" },
{ LC::c_sub, "c_sub", "" },
Commit: ad934d5960d759a1c903b1a96e089cf31991fe01
https://github.com/scummvm/scummvm/commit/ad934d5960d759a1c903b1a96e089cf31991fe01
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add missing newlines
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index ee6f7077dd..0bf0f17553 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -593,7 +593,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 89
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1362
+#define YYLAST 1360
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 90
@@ -602,7 +602,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 127
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 218
+#define YYNSTATES 220
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -730,7 +730,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-158)
+#define YYPACT_NINF (-161)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -744,28 +744,28 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 346, -158, -158, -158, -158, -158, -158, -158, -35, 1086,
- 206, -158, -158, 1086, -158, -32, -158, -158, -158, -18,
- -158, -158, -158, -158, -158, 1086, -158, -158, 1086, -158,
- -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
- -158, -158, -158, -158, 1086, 1086, -158, -158, 12, 346,
- -158, -158, -158, -158, 276, -158, -158, -158, -158, -158,
- -158, -158, -158, -158, -158, -158, -158, -76, -68, -158,
- -158, -158, -158, 206, 206, 206, 206, -67, -158, -158,
- 1130, 1086, -158, 1086, 206, -44, -40, -38, 1086, -158,
- -158, 206, 1265, -34, -37, -158, 1086, -158, -158, -158,
- 1165, 206, 844, 206, 206, 206, 206, 206, 206, 206,
- 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
- -29, 6, 1178, -72, -158, -158, -25, 1165, -24, -158,
- 206, -158, -158, -21, 905, 36, 10, 10, 10, 10,
- 1278, 1278, -158, -49, 10, 10, 10, 10, -49, -54,
- -54, -158, -158, 905, 206, 905, 1086, -158, -158, -23,
- -158, -158, 905, -22, 1265, -158, -158, -158, 407, -158,
- -158, 966, 905, 1115, 469, 1086, -72, 537, -158, 1027,
- -17, -158, 905, -158, 29, 206, -13, -12, -158, 1086,
- 905, -158, -158, 598, 206, 1215, -158, 905, -46, -158,
- 660, -11, 1228, 905, 905, -158, 1086, -10, -158, 905,
- 722, -158, -158, 783, -9, -7, -158, -158
+ 344, -161, -161, -161, -161, -161, -161, -161, -33, 1084,
+ 204, -161, -161, 1084, -161, -31, -161, -161, -161, -21,
+ -161, -161, -161, -161, -161, 1084, -161, -161, 1084, -161,
+ -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+ -161, -161, -161, -161, 1084, 1084, -161, -161, 15, 344,
+ -161, -161, -161, -161, 274, -161, -161, -161, -161, -161,
+ -161, -161, -68, -161, -161, -161, -161, -57, -54, -161,
+ -161, -161, -161, 204, 204, 204, 204, -52, -161, -161,
+ 1128, 1084, -49, 1084, 204, -47, -45, -43, 1084, -161,
+ -161, 204, 1263, -38, -37, -161, -161, 1084, -161, -161,
+ -161, 1163, 204, 842, 204, 204, 204, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
+ 204, -26, -161, -18, 1176, -66, -161, -161, -16, 1163,
+ -22, -161, 204, -161, -161, -15, 903, 44, 9, 9,
+ 9, 9, 1276, 1276, -161, -19, 9, 9, 9, 9,
+ -19, -53, -53, -161, -161, 903, 204, 903, 1084, -161,
+ -161, -14, -161, -161, 903, -13, 1263, -161, -161, -161,
+ 405, -161, -161, 964, 903, 1113, 467, 1084, -66, 535,
+ -161, 1025, -11, -161, 903, -161, 29, 204, -10, -9,
+ -161, 1084, 903, -161, -161, 596, 204, 1213, -161, 903,
+ -60, -161, 658, -8, 1226, 903, 903, -161, 1084, -7,
+ -161, 903, 720, -161, -161, 781, -6, -4, -161, -161
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -779,38 +779,38 @@ static const yytype_int8 yydefact[] =
44, 41, 38, 25, 27, 52, 29, 36, 37, 62,
56, 34, 61, 53, 63, 0, 55, 5, 0, 2,
3, 6, 7, 8, 124, 9, 67, 71, 72, 68,
- 69, 70, 76, 31, 40, 49, 65, 0, 64, 95,
+ 69, 70, 0, 31, 40, 49, 65, 0, 64, 95,
96, 98, 97, 41, 0, 0, 0, 103, 104, 106,
- 0, 63, 75, 0, 0, 0, 0, 0, 63, 1,
- 4, 124, 126, 0, 125, 77, 0, 101, 99, 100,
- 0, 124, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 63, 0, 0, 0, 0, 0, 0, 63, 1,
+ 4, 124, 126, 0, 125, 76, 77, 0, 101, 99,
+ 100, 0, 124, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 79, 78, 0, 126, 0, 74,
- 0, 66, 105, 0, 89, 80, 116, 117, 114, 115,
- 118, 119, 111, 121, 122, 123, 113, 112, 120, 107,
- 108, 109, 110, 89, 0, 89, 0, 17, 18, 11,
- 14, 15, 89, 0, 127, 102, 93, 94, 0, 90,
- 91, 0, 10, 0, 0, 63, 0, 20, 73, 0,
- 0, 92, 89, 82, 0, 0, 0, 0, 16, 21,
- 89, 84, 81, 0, 0, 0, 86, 89, 0, 22,
- 0, 0, 0, 89, 12, 19, 0, 0, 83, 89,
- 0, 23, 85, 0, 0, 0, 87, 88
+ 0, 0, 75, 0, 0, 13, 79, 78, 0, 126,
+ 0, 74, 0, 66, 105, 0, 89, 80, 116, 117,
+ 114, 115, 118, 119, 111, 121, 122, 123, 113, 112,
+ 120, 107, 108, 109, 110, 89, 0, 89, 0, 17,
+ 18, 11, 14, 15, 89, 0, 127, 102, 93, 94,
+ 0, 90, 91, 0, 10, 0, 0, 63, 0, 20,
+ 73, 0, 0, 92, 89, 82, 0, 0, 0, 0,
+ 16, 21, 89, 84, 81, 0, 0, 0, 86, 89,
+ 0, 22, 0, 0, 0, 89, 12, 19, 0, 0,
+ 83, 89, 0, 23, 85, 0, 0, 0, 87, 88
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -158, -158, -158, 31, -158, -158, -158, -158, -158, -94,
- -158, -158, 0, -26, -158, 5, -158, -158, -158, -158,
- -158, -158, -131, -158, -157, -158, -36, 13, -85, -158
+ -161, -161, -161, 35, -161, -161, -161, -161, -161, -93,
+ -161, -161, 0, -27, -161, 2, -161, -161, -161, -161,
+ -161, -161, -152, -161, -160, -161, -17, 11, -80, -161
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 158, 159, 160, 161,
- 53, 198, 77, 67, 68, 167, 56, 57, 58, 59,
- 60, 61, 168, 169, 170, 78, 79, 92, 93, 94
+ 0, 48, 49, 50, 51, 52, 160, 161, 162, 163,
+ 53, 200, 77, 67, 68, 169, 56, 57, 58, 59,
+ 60, 61, 170, 171, 172, 78, 79, 92, 93, 94
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -818,210 +818,216 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 54, 156, 86, 109, 62, 55, 128, 82, 109, 66,
- 95, 181, 89, 81, 157, 181, 133, 181, 87, 96,
- 181, 101, 172, 80, 174, 85, 83, 84, 66, 118,
- 119, 177, 116, 117, 118, 119, 181, 97, 98, 99,
- 205, 206, 123, 181, 66, 88, 124, 181, 125, 54,
- 130, 193, 129, 181, 55, 120, 181, 153, 154, 200,
- 171, 162, 126, 176, 178, 163, 204, 109, 165, 192,
- 110, 194, 210, 196, 197, 208, 212, 216, 213, 217,
- 90, 66, 188, 121, 0, 0, 0, 0, 66, 100,
- 115, 116, 117, 118, 119, 0, 131, 122, 0, 0,
- 0, 0, 54, 0, 127, 0, 0, 135, 0, 0,
- 0, 0, 0, 0, 0, 0, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 0, 54, 0, 0, 0, 0, 0,
- 0, 0, 0, 164, 0, 0, 0, 0, 0, 187,
- 0, 0, 0, 54, 0, 54, 175, 0, 0, 0,
- 0, 0, 54, 0, 0, 0, 0, 173, 54, 0,
- 0, 54, 54, 0, 54, 66, 183, 54, 0, 54,
- 0, 0, 54, 0, 191, 0, 0, 0, 0, 199,
- 54, 0, 0, 54, 0, 0, 0, 54, 195, 0,
- 54, 0, 0, 54, 54, 0, 211, 202, 0, 54,
- 54, 69, 0, 54, 0, 0, 70, 0, 0, 1,
- 71, 72, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 63, 0, 0, 0, 0, 11, 12, 0,
- 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
- 29, 30, 73, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
- 0, 69, 0, 46, 0, 0, 70, 74, 75, 1,
- 71, 72, 0, 2, 76, 3, 4, 5, 6, 7,
- 0, 0, 63, 0, 0, 0, 0, 11, 12, 0,
- 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
- 29, 30, 73, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
- 0, 0, 0, 46, 0, 0, 0, 74, 75, 1,
- 0, 0, 0, 2, 91, 3, 4, 5, 6, 7,
- 0, 0, 8, 9, 0, 0, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
- 23, 24, 25, 26, 27, 28, 0, 0, 0, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
- 7, 179, 47, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 180, 1, 0, 46, 0, 2, 0, 3, 4,
- 5, 6, 7, 166, 0, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 0, 186, 0, 46, 0, 0, 0,
- 1, 0, 0, 189, 2, 166, 3, 4, 5, 6,
- 7, 0, 0, 8, 9, 0, 0, 10, 11, 12,
+ 54, 86, 55, 174, 110, 176, 62, 158, 82, 66,
+ 183, 130, 179, 81, 183, 89, 183, 87, 95, 183,
+ 159, 80, 135, 83, 84, 85, 207, 208, 66, 96,
+ 119, 120, 195, 97, 156, 183, 102, 122, 110, 125,
+ 202, 126, 183, 127, 66, 88, 183, 206, 131, 54,
+ 132, 55, 183, 212, 121, 183, 98, 99, 100, 215,
+ 155, 128, 117, 118, 119, 120, 110, 165, 173, 111,
+ 164, 196, 178, 180, 167, 194, 198, 199, 210, 214,
+ 218, 66, 219, 123, 90, 190, 0, 101, 66, 116,
+ 117, 118, 119, 120, 0, 124, 0, 133, 0, 0,
+ 0, 0, 129, 54, 0, 137, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 0, 0, 0, 0, 54, 0, 0, 0,
+ 0, 0, 0, 166, 0, 0, 0, 0, 0, 0,
+ 189, 0, 0, 0, 0, 54, 0, 54, 177, 0,
+ 0, 0, 0, 0, 54, 0, 0, 175, 0, 0,
+ 54, 0, 0, 54, 54, 185, 54, 66, 0, 54,
+ 0, 54, 0, 193, 54, 0, 0, 0, 0, 0,
+ 0, 201, 54, 0, 0, 54, 0, 0, 197, 54,
+ 0, 0, 54, 0, 0, 54, 54, 204, 213, 69,
+ 0, 54, 54, 0, 70, 54, 0, 1, 71, 72,
+ 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
+ 63, 0, 0, 0, 0, 11, 12, 0, 14, 64,
+ 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
+ 73, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 0, 0, 0, 0, 69,
+ 0, 46, 0, 0, 70, 74, 75, 1, 71, 72,
+ 0, 2, 76, 3, 4, 5, 6, 7, 0, 0,
+ 63, 0, 0, 0, 0, 11, 12, 0, 14, 64,
+ 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
+ 73, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
+ 0, 46, 0, 0, 0, 74, 75, 1, 0, 0,
+ 0, 2, 91, 3, 4, 5, 6, 7, 0, 0,
+ 8, 9, 0, 0, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
+ 25, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 0, 1, 0,
+ 0, 46, 2, 0, 3, 4, 5, 6, 7, 181,
+ 47, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 182,
+ 1, 0, 46, 0, 2, 0, 3, 4, 5, 6,
+ 7, 168, 0, 8, 9, 0, 0, 10, 11, 12,
0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 1, 0, 0, 46, 2, 0, 3, 4, 5,
- 6, 7, 0, 166, 8, 9, 0, 0, 10, 11,
+ 0, 0, 188, 0, 46, 0, 0, 0, 1, 0,
+ 0, 191, 2, 168, 3, 4, 5, 6, 7, 0,
+ 0, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
+ 0, 0, 46, 2, 0, 3, 4, 5, 6, 7,
+ 0, 168, 8, 9, 0, 0, 10, 11, 12, 0,
+ 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
+ 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 203, 1, 0, 46, 0, 2, 0, 3, 4, 5,
+ 6, 7, 168, 0, 8, 9, 0, 0, 10, 11,
12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 201, 1, 0, 46, 0, 2, 0, 3,
- 4, 5, 6, 7, 166, 0, 8, 9, 0, 0,
+ 0, 0, 209, 1, 0, 46, 0, 2, 0, 3,
+ 4, 5, 6, 7, 168, 0, 8, 9, 0, 0,
10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 207, 1, 0, 46, 0, 2,
- 0, 3, 4, 5, 6, 7, 166, 0, 8, 9,
+ 43, 44, 0, 0, 1, 216, 0, 46, 2, 0,
+ 3, 4, 5, 6, 7, 0, 168, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 1, 217, 0, 46, 2,
+ 0, 3, 4, 5, 6, 7, 0, 168, 8, 9,
0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 1, 214, 0, 46,
- 2, 0, 3, 4, 5, 6, 7, 0, 166, 8,
+ 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
+ 2, 0, 3, 4, 5, 6, 7, 0, 136, 8,
9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 1, 215, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 0, 166,
+ 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 0, 168,
8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
- 134, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 184, 8, 9, 0, 0, 10, 11, 12, 0, 14,
15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
- 0, 0, 46, 2, 0, 3, 4, 5, 6, 7,
- 0, 166, 8, 9, 0, 0, 10, 11, 12, 0,
- 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
- 7, 0, 182, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 1,
- 0, 0, 0, 2, 46, 3, 4, 5, 6, 7,
- 0, 0, 63, 190, 0, 0, 0, 11, 12, 0,
- 14, 64, 16, 17, 18, 65, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 0, 0, 0, 184, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 185, 0, 0,
- 0, 0, 0, 46, 0, 103, 104, 105, 106, 107,
- 108, 102, 109, 0, 0, 110, 111, 112, 0, 0,
- 103, 104, 105, 106, 107, 108, 0, 109, 0, 0,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 0, 0, 0, 0, 0, 0, 0, 0, 113, 114,
- 115, 116, 117, 118, 119, 103, 104, 105, 106, 107,
- 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
- 105, 106, 107, 108, 0, 109, 0, 0, 110, 111,
- 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
- 0, 0, 0, 0, 132, 0, 113, 114, 115, 116,
- 117, 118, 119, 0, 155, 103, 104, 105, 106, 107,
- 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
- 105, 106, 107, 108, 0, 109, 0, 0, 110, 111,
- 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
- 0, 203, 0, 0, 0, 0, 113, 114, 115, 116,
- 117, 118, 119, 0, 209, 103, 104, 105, 106, 107,
- 108, 0, 109, 0, 0, 110, 111, 112, 103, 104,
- 105, 106, 0, 0, 0, 109, 0, 0, 110, 111,
- 112, 0, 0, 113, 114, 115, 116, 117, 118, 119,
- 0, 0, 0, 0, 0, 0, 113, 114, 115, 116,
- 117, 118, 119
+ 38, 39, 40, 41, 42, 43, 44, 1, 0, 0,
+ 0, 2, 46, 3, 4, 5, 6, 7, 0, 0,
+ 63, 192, 0, 0, 0, 11, 12, 0, 14, 64,
+ 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 0, 0, 0, 186, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 187, 0, 0, 0, 0,
+ 0, 46, 0, 104, 105, 106, 107, 108, 109, 103,
+ 110, 0, 0, 111, 112, 113, 0, 0, 104, 105,
+ 106, 107, 108, 109, 0, 110, 0, 0, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 0, 0,
+ 0, 0, 0, 0, 0, 0, 114, 115, 116, 117,
+ 118, 119, 120, 104, 105, 106, 107, 108, 109, 0,
+ 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
+ 108, 109, 0, 110, 0, 0, 111, 112, 113, 0,
+ 0, 114, 115, 116, 117, 118, 119, 120, 0, 0,
+ 0, 0, 134, 0, 114, 115, 116, 117, 118, 119,
+ 120, 0, 157, 104, 105, 106, 107, 108, 109, 0,
+ 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
+ 108, 109, 0, 110, 0, 0, 111, 112, 113, 0,
+ 0, 114, 115, 116, 117, 118, 119, 120, 0, 205,
+ 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
+ 120, 0, 211, 104, 105, 106, 107, 108, 109, 0,
+ 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
+ 0, 0, 0, 110, 0, 0, 111, 112, 113, 0,
+ 0, 114, 115, 116, 117, 118, 119, 120, 0, 0,
+ 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
+ 120
};
static const yytype_int16 yycheck[] =
{
- 0, 73, 28, 57, 39, 0, 91, 39, 57, 9,
- 86, 168, 0, 13, 86, 172, 101, 174, 44, 87,
- 177, 88, 153, 10, 155, 25, 44, 45, 28, 83,
- 84, 162, 81, 82, 83, 84, 193, 73, 74, 75,
- 86, 87, 86, 200, 44, 45, 86, 204, 86, 49,
- 87, 182, 86, 210, 49, 81, 213, 86, 52, 190,
- 24, 86, 88, 86, 86, 89, 197, 57, 89, 86,
- 60, 42, 203, 86, 86, 86, 86, 86, 209, 86,
- 49, 81, 176, 83, -1, -1, -1, -1, 88, 76,
- 80, 81, 82, 83, 84, -1, 96, 84, -1, -1,
- -1, -1, 102, -1, 91, -1, -1, 102, -1, -1,
- -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, -1, 134, -1, -1, -1, -1, -1,
- -1, -1, -1, 130, -1, -1, -1, -1, -1, 175,
- -1, -1, -1, 153, -1, 155, 156, -1, -1, -1,
- -1, -1, 162, -1, -1, -1, -1, 154, 168, -1,
- -1, 171, 172, -1, 174, 175, 171, 177, -1, 179,
- -1, -1, 182, -1, 179, -1, -1, -1, -1, 189,
- 190, -1, -1, 193, -1, -1, -1, 197, 185, -1,
- 200, -1, -1, 203, 204, -1, 206, 194, -1, 209,
- 210, 5, -1, 213, -1, -1, 10, -1, -1, 13,
- 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, 5, -1, 77, -1, -1, 10, 81, 82, 13,
- 14, 15, -1, 17, 88, 19, 20, 21, 22, 23,
- -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, 81, 82, 13,
- -1, -1, -1, 17, 88, 19, 20, 21, 22, 23,
- -1, -1, 26, 27, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, 46, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
- 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
- 23, 24, 86, 26, 27, -1, -1, 30, 31, 32,
- -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 74, 13, -1, 77, -1, 17, -1, 19, 20,
- 21, 22, 23, 86, -1, 26, 27, -1, -1, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, 75, -1, 77, -1, -1, -1,
- 13, -1, -1, 16, 17, 86, 19, 20, 21, 22,
- 23, -1, -1, 26, 27, -1, -1, 30, 31, 32,
+ 0, 28, 0, 155, 57, 157, 39, 73, 39, 9,
+ 170, 91, 164, 13, 174, 0, 176, 44, 86, 179,
+ 86, 10, 102, 44, 45, 25, 86, 87, 28, 86,
+ 83, 84, 184, 87, 52, 195, 88, 86, 57, 86,
+ 192, 86, 202, 86, 44, 45, 206, 199, 86, 49,
+ 87, 49, 212, 205, 81, 215, 73, 74, 75, 211,
+ 86, 88, 81, 82, 83, 84, 57, 89, 24, 60,
+ 86, 42, 86, 86, 89, 86, 86, 86, 86, 86,
+ 86, 81, 86, 83, 49, 178, -1, 76, 88, 80,
+ 81, 82, 83, 84, -1, 84, -1, 97, -1, -1,
+ -1, -1, 91, 103, -1, 103, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, -1, -1, -1, -1, 136, -1, -1, -1,
+ -1, -1, -1, 132, -1, -1, -1, -1, -1, -1,
+ 177, -1, -1, -1, -1, 155, -1, 157, 158, -1,
+ -1, -1, -1, -1, 164, -1, -1, 156, -1, -1,
+ 170, -1, -1, 173, 174, 173, 176, 177, -1, 179,
+ -1, 181, -1, 181, 184, -1, -1, -1, -1, -1,
+ -1, 191, 192, -1, -1, 195, -1, -1, 187, 199,
+ -1, -1, 202, -1, -1, 205, 206, 196, 208, 5,
+ -1, 211, 212, -1, 10, 215, -1, 13, 14, 15,
+ -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
+ 26, -1, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, 5,
+ -1, 77, -1, -1, 10, 81, 82, 13, 14, 15,
+ -1, 17, 88, 19, 20, 21, 22, 23, -1, -1,
+ 26, -1, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, 13, -1, -1,
+ -1, 17, 88, 19, 20, 21, 22, 23, -1, -1,
+ 26, 27, -1, -1, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ 46, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, -1, 13, -1,
+ -1, 77, 17, -1, 19, 20, 21, 22, 23, 24,
+ 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
+ 13, -1, 77, -1, 17, -1, 19, 20, 21, 22,
+ 23, 86, -1, 26, 27, -1, -1, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, -1, -1, 77, 17, -1, 19, 20, 21,
- 22, 23, -1, 86, 26, 27, -1, -1, 30, 31,
+ -1, -1, 75, -1, 77, -1, -1, -1, 13, -1,
+ -1, 16, 17, 86, 19, 20, 21, 22, 23, -1,
+ -1, 26, 27, -1, -1, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ -1, -1, 77, 17, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 74, 13, -1, 77, -1, 17, -1, 19, 20, 21,
+ 22, 23, 86, -1, 26, 27, -1, -1, 30, 31,
32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
@@ -1032,19 +1038,25 @@ static const yytype_int16 yycheck[] =
40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 74, 13, -1, 77, -1, 17,
- -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
+ 70, 71, -1, -1, 13, 75, -1, 77, 17, -1,
+ 19, 20, 21, 22, 23, -1, 86, 26, 27, -1,
+ -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, 75, -1, 77, 17,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
-1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, 75, -1, 77,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, 75, -1,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
@@ -1056,46 +1068,34 @@ static const yytype_int16 yycheck[] =
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- -1, -1, 77, 17, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
- -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 13,
- -1, -1, -1, 17, 77, 19, 20, 21, 22, 23,
- -1, -1, 26, 86, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, -1, -1, -1, 23, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 42, -1, -1,
- -1, -1, -1, 77, -1, 50, 51, 52, 53, 54,
- 55, 41, 57, -1, -1, 60, 61, 62, -1, -1,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 65, 66, 67, 68, 69, 70, 71, 13, -1, -1,
+ -1, 17, 77, 19, 20, 21, 22, 23, -1, -1,
+ 26, 86, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, 23, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 42, -1, -1, -1, -1,
+ -1, 77, -1, 50, 51, 52, 53, 54, 55, 41,
+ 57, -1, -1, 60, 61, 62, -1, -1, 50, 51,
52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, -1, -1, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ 62, 78, 79, 80, 81, 82, 83, 84, -1, -1,
-1, -1, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84
+ 82, 83, 84, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, 89, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ -1, -1, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1111,19 +1111,19 @@ static const yytype_int8 yystos[] =
110, 111, 39, 26, 35, 39, 102, 103, 104, 5,
10, 14, 15, 56, 81, 82, 88, 102, 115, 116,
117, 102, 39, 44, 45, 102, 103, 103, 102, 0,
- 93, 88, 117, 118, 119, 86, 87, 116, 116, 116,
- 117, 88, 41, 50, 51, 52, 53, 54, 55, 57,
- 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
- 103, 102, 117, 86, 86, 86, 103, 117, 118, 86,
- 87, 102, 89, 118, 86, 105, 117, 117, 117, 117,
+ 93, 88, 117, 118, 119, 86, 86, 87, 116, 116,
+ 116, 117, 88, 41, 50, 51, 52, 53, 54, 55,
+ 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
+ 84, 103, 86, 102, 117, 86, 86, 86, 103, 117,
+ 118, 86, 87, 102, 89, 118, 86, 105, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 86, 52, 86, 73, 86, 96, 97,
- 98, 99, 86, 89, 117, 89, 86, 105, 112, 113,
- 114, 24, 112, 117, 112, 102, 86, 112, 86, 24,
- 74, 114, 86, 105, 23, 42, 75, 103, 99, 16,
- 86, 105, 86, 112, 42, 117, 86, 86, 101, 102,
- 112, 74, 117, 86, 112, 86, 87, 74, 86, 86,
- 112, 102, 86, 112, 75, 75, 86, 86
+ 117, 117, 117, 117, 117, 86, 52, 86, 73, 86,
+ 96, 97, 98, 99, 86, 89, 117, 89, 86, 105,
+ 112, 113, 114, 24, 112, 117, 112, 102, 86, 112,
+ 86, 24, 74, 114, 86, 105, 23, 42, 75, 103,
+ 99, 16, 86, 105, 86, 112, 42, 117, 86, 86,
+ 101, 102, 112, 74, 117, 86, 112, 86, 87, 74,
+ 86, 86, 112, 102, 86, 112, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1154,7 +1154,7 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 1, 3, 1, 1, 1,
- 1, 1, 1, 5, 3, 2, 2, 3, 3, 3,
+ 1, 1, 1, 5, 3, 3, 3, 3, 3, 3,
4, 7, 6, 9, 7, 10, 7, 11, 12, 0,
1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
2, 2, 4, 1, 1, 3, 1, 3, 3, 3,
@@ -2115,15 +2115,15 @@ yyreduce:
#line 2116 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tNEXT tREPEAT */
+ case 75: /* proc: tNEXT tREPEAT '\n' */
#line 366 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new NextRepeatNode(); }
+ { (yyval.node) = new NextRepeatNode(); }
#line 2122 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tEXIT tREPEAT */
+ case 76: /* proc: tEXIT tREPEAT '\n' */
#line 367 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new ExitRepeatNode(); }
+ { (yyval.node) = new ExitRepeatNode(); }
#line 2128 "engines/director/lingo/lingo-gr.cpp"
break;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 4030e5758d..97c8ef2dd7 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -363,8 +363,8 @@ stmtoneliner: proc
proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
| ID exprlist[args] '\n' { $$ = new CmdNode($ID, $args); }
- | tNEXT tREPEAT { $$ = new NextRepeatNode(); }
- | tEXIT tREPEAT { $$ = new ExitRepeatNode(); }
+ | tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
+ | tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
;
definevars: tGLOBAL idlist '\n' { $$ = new GlobalNode($idlist); }
Commit: 4f29ef7b29cbaf64166f00d0f0c91f7f210c3571
https://github.com/scummvm/scummvm/commit/4f29ef7b29cbaf64166f00d0f0c91f7f210c3571
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement basic var instructions
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index c5546a2d0f..630ed4b845 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -30,6 +30,10 @@ struct ScriptNode;
struct FactoryNode;
struct HandlerNode;
struct CmdNode;
+struct PutIntoNode;
+struct PutAfterNode;
+struct PutBeforeNode;
+struct SetNode;
struct GlobalNode;
struct PropertyNode;
struct InstanceNode;
@@ -67,6 +71,10 @@ enum NodeType {
kFactoryNode,
kHandlerNode,
kCmdNode,
+ kPutIntoNode,
+ kPutAfterNode,
+ kPutBeforeNode,
+ kSetNode,
kGlobalNode,
kPropertyNode,
kInstanceNode,
@@ -98,6 +106,10 @@ public:
virtual void visitFactoryNode(FactoryNode *node) = 0;
virtual void visitHandlerNode(HandlerNode *node) = 0;
virtual void visitCmdNode(CmdNode *node) = 0;
+ virtual void visitPutIntoNode(PutIntoNode *node) = 0;
+ virtual void visitPutAfterNode(PutAfterNode *node) = 0;
+ virtual void visitPutBeforeNode(PutBeforeNode *node) = 0;
+ virtual void visitSetNode(SetNode *node) = 0;
virtual void visitGlobalNode(GlobalNode *node) = 0;
virtual void visitPropertyNode(PropertyNode *node) = 0;
virtual void visitInstanceNode(InstanceNode *node) = 0;
@@ -228,6 +240,74 @@ struct CmdNode : StmtNode {
}
};
+/* PutIntoNode */
+
+struct PutIntoNode : StmtNode {
+ Node *val;
+ Node *var;
+
+ PutIntoNode(Node *valIn, Node *varIn)
+ : StmtNode(kPutIntoNode), val(valIn), var(varIn) {}
+ virtual ~PutIntoNode() {
+ delete val;
+ delete var;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPutIntoNode(this);
+ }
+};
+
+/* PutAfterNode */
+
+struct PutAfterNode : StmtNode {
+ Node *val;
+ Node *var;
+
+ PutAfterNode(Node *valIn, Node *varIn)
+ : StmtNode(kPutAfterNode), val(valIn), var(varIn) {}
+ virtual ~PutAfterNode() {
+ delete val;
+ delete var;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPutAfterNode(this);
+ }
+};
+
+/* PutBeforeNode */
+
+struct PutBeforeNode : StmtNode {
+ Node *val;
+ Node *var;
+
+ PutBeforeNode(Node *valIn, Node *varIn)
+ : StmtNode(kPutBeforeNode), val(valIn), var(varIn) {}
+ virtual ~PutBeforeNode() {
+ delete val;
+ delete var;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPutBeforeNode(this);
+ }
+};
+
+/* SetNode */
+
+struct SetNode : StmtNode {
+ Node *var;
+ Node *val;
+
+ SetNode(Node *varIn, Node *valIn)
+ : StmtNode(kSetNode), var(varIn), val(valIn) {}
+ virtual ~SetNode() {
+ delete var;
+ delete val;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitSetNode(this);
+ }
+};
+
/* GlobalNode */
struct GlobalNode : StmtNode {
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 933600b1c9..6c3c960e3f 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -84,6 +84,8 @@ static struct FuncDescr {
{ LC::c_div, "c_div", "" },
{ LC::c_eq, "c_eq", "" },
{ LC::c_floatpush, "c_floatpush", "f" },
+ { LC::c_globalpush, "c_globalpush", "s" },
+ { LC::c_globalrefpush, "c_globalrefpush", "s" },
{ LC::c_ge, "c_ge", "" },
{ LC::c_goto, "c_goto", "" },
{ LC::c_gotoloop, "c_gotoloop", "" },
@@ -100,6 +102,8 @@ static struct FuncDescr {
{ LC::c_le, "c_le", "" },
{ LC::c_lineOf, "c_lineOf", "" }, // D3
{ LC::c_lineToOf, "c_lineToOf", "" }, // D3
+ { LC::c_localpush, "c_localpush", "s" },
+ { LC::c_localrefpush, "c_localrefpush", "s" },
{ LC::c_lt, "c_lt", "" },
{ LC::c_mod, "c_mod", "" },
{ LC::c_mul, "c_mul", "" },
@@ -114,6 +118,8 @@ static struct FuncDescr {
{ LC::c_play, "c_play", "" },
{ LC::c_procret, "c_procret", "" },
{ LC::c_proparraypush, "c_proparraypush", "i" },
+ { LC::c_proppush, "c_proppush", "s" },
+ { LC::c_proprefpush, "c_proprefpush", "s" },
{ LC::c_putafter, "c_putafter", "" }, // D3
{ LC::c_putbefore, "c_putbefore", "" }, // D3
{ LC::c_starts, "c_starts", "" },
@@ -128,6 +134,7 @@ static struct FuncDescr {
{ LC::c_themenuentitypush,"c_themenuentitypush","EF" },
{ LC::c_themenuitementityassign,"c_themenuitementityassign","EF" },
{ LC::c_varpush, "c_varpush", "s" },
+ { LC::c_varrefpush, "c_varrefpush", "s" },
{ LC::c_voidpush, "c_voidpush", "" },
{ LC::c_whencode, "c_whencode", "s" },
{ LC::c_within, "c_within", "" },
@@ -437,27 +444,58 @@ void LC::c_proparraypush() {
g_lingo->push(d);
}
-void LC::c_varpush() {
+void LC::c_varrefpush() {
Common::String name(g_lingo->readString());
- Datum d;
+ Datum d(name);
+ d.type = VARREF;
+ g_lingo->push(d);
+}
- // Looking for the cast member constants
- if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
- int val = castNumToNum(name.c_str());
+void LC::c_globalrefpush() {
+ Common::String name(g_lingo->readString());
+ Datum d(name);
+ d.type = GLOBALREF;
+ g_lingo->push(d);
+}
- if (val != -1) {
- d.type = INT;
- d.u.i = val;
- g_lingo->push(d);
- return;
- }
- }
+void LC::c_localrefpush() {
+ Common::String name(g_lingo->readString());
+ Datum d(name);
+ d.type = LOCALREF;
+ g_lingo->push(d);
+}
- d = Datum(Common::String(name));
- d.type = VARREF;
+void LC::c_proprefpush() {
+ Common::String name(g_lingo->readString());
+ Datum d(name);
+ d.type = PROPREF;
g_lingo->push(d);
}
+void LC::c_varpush() {
+ LC::c_varrefpush();
+ Datum d = g_lingo->pop(false);
+ g_lingo->push(g_lingo->varFetch(d));
+}
+
+void LC::c_globalpush() {
+ LC::c_globalrefpush();
+ Datum d = g_lingo->pop(false);
+ g_lingo->push(g_lingo->varFetch(d));
+}
+
+void LC::c_localpush() {
+ LC::c_localrefpush();
+ Datum d = g_lingo->pop(false);
+ g_lingo->push(g_lingo->varFetch(d));
+}
+
+void LC::c_proppush() {
+ LC::c_proprefpush();
+ Datum d = g_lingo->pop(false);
+ g_lingo->push(g_lingo->varFetch(d));
+}
+
void LC::c_stackpeek() {
int peekOffset = g_lingo->readInt();
g_lingo->push(g_lingo->peek(peekOffset));
@@ -478,28 +516,6 @@ void LC::c_assign() {
g_lingo->varAssign(d1, d2);
}
-void LC::c_eval() {
- LC::c_varpush();
-
- // HACK: The grammar currently doesn't differentiate between cases
- // when it should push a reference (e.g. delete char 2 of "abc")
- // and cases when it should push the value (e.g. put char 2 of "abc")
- // Until that's fixed, just push the reference, and it will be evaluated by pop.
-#if 0
- Datum d;
- d = g_lingo->pop(false);
-
- if (d.type.isVarRef()) { // It could be cast ref
- g_lingo->push(d);
- return;
- }
-
- d = g_lingo->varFetch(d);
-
- g_lingo->push(d);
-#endif
-}
-
void LC::c_theentitypush() {
Datum id = g_lingo->pop();
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index aa7616d77c..9bd1d94c75 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -76,7 +76,14 @@ void c_floatpush();
void c_stringpush();
void c_symbolpush();
void c_namepush();
+void c_varrefpush();
+void c_globalrefpush();
+void c_localrefpush();
+void c_proprefpush();
void c_varpush();
+void c_globalpush();
+void c_localpush();
+void c_proppush();
void c_argcpush();
void c_argcnoretpush();
void c_arraypush();
@@ -85,7 +92,6 @@ void c_stackpeek();
void c_stackdrop();
void c_assign();
bool verify(const Symbol &s);
-void c_eval();
void c_swap();
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index af42868983..7116267f03 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -46,6 +46,7 @@
#include "common/endian.h"
#include "director/director.h"
+#include "director/movie.h"
#include "director/lingo/lingo.h"
#include "director/lingo/lingo-ast.h"
#include "director/lingo/lingo-code.h"
@@ -67,6 +68,7 @@ LingoCompiler::LingoCompiler() {
_inFactory = false;
_currentLoop = nullptr;
+ _refMode = false;
_hadError = false;
}
@@ -252,6 +254,66 @@ int LingoCompiler::codeFunc(Common::String *s, int numpar) {
return ret;
}
+void LingoCompiler::codeVarSet(const Common::String &name) {
+ registerMethodVar(name);
+ codeVarRef(name);
+ code1(LC::c_assign);
+}
+
+void LingoCompiler::codeVarRef(const Common::String &name) {
+ VarType type;
+ if (_methodVars->contains(name)) {
+ type = (*_methodVars)[name];
+ } else {
+ warning("LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
+ type = kVarGeneric;
+ }
+ switch (type) {
+ case kVarGeneric:
+ code1(LC::c_varrefpush);
+ break;
+ case kVarGlobal:
+ code1(LC::c_globalrefpush);
+ break;
+ case kVarLocal:
+ case kVarArgument:
+ code1(LC::c_localrefpush);
+ break;
+ case kVarProperty:
+ case kVarInstance:
+ code1(LC::c_proprefpush);
+ break;
+ }
+ codeString(name.c_str());
+}
+
+void LingoCompiler::codeVarGet(const Common::String &name) {
+ VarType type;
+ if (_methodVars->contains(name)) {
+ type = (*_methodVars)[name];
+ } else {
+ warning("LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
+ type = kVarGeneric;
+ }
+ switch (type) {
+ case kVarGeneric:
+ code1(LC::c_varpush);
+ break;
+ case kVarGlobal:
+ code1(LC::c_globalpush);
+ break;
+ case kVarLocal:
+ case kVarArgument:
+ code1(LC::c_localpush);
+ break;
+ case kVarProperty:
+ case kVarInstance:
+ code1(LC::c_proppush);
+ break;
+ }
+ codeString(name.c_str());
+}
+
void LingoCompiler::registerMethodVar(const Common::String &name, VarType type) {
if (!_methodVars->contains(name)) {
if (_indef && type == kVarGeneric) {
@@ -304,6 +366,12 @@ void LingoCompiler::compile(Node *node) {
node->accept(this);
}
+void LingoCompiler::compileRef(Node *node) {
+ _refMode = true;
+ node->accept(this);
+ _refMode = false;
+}
+
void LingoCompiler::compileList(NodeList *nodes) {
for (uint i = 0; i < nodes->size(); i++) {
compile((*nodes)[i]);
@@ -394,6 +462,50 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
codeCmd(node->name, node->args->size());
}
+/* PutIntoNode */
+
+void LingoCompiler::visitPutIntoNode(PutIntoNode *node) {
+ if (node->var->type == kVarNode) {
+ registerMethodVar(*static_cast<VarNode *>(node->var)->name);
+ }
+ compile(node->val);
+ compileRef(node->var);
+ code1(LC::c_assign);
+}
+
+/* PutAfterNode */
+
+void LingoCompiler::visitPutAfterNode(PutAfterNode *node) {
+ if (node->var->type == kVarNode) {
+ registerMethodVar(*static_cast<VarNode *>(node->var)->name);
+ }
+ compile(node->val);
+ compileRef(node->var);
+ code1(LC::c_putafter);
+}
+
+/* PutBeforeNode */
+
+void LingoCompiler::visitPutBeforeNode(PutBeforeNode *node) {
+ if (node->var->type == kVarNode) {
+ registerMethodVar(*static_cast<VarNode *>(node->var)->name);
+ }
+ compile(node->val);
+ compileRef(node->var);
+ code1(LC::c_putbefore);
+}
+
+/* SetNode */
+
+void LingoCompiler::visitSetNode(SetNode *node) {
+ if (node->var->type == kVarNode) {
+ registerMethodVar(*static_cast<VarNode *>(node->var)->name);
+ }
+ compile(node->val);
+ compileRef(node->var);
+ code1(LC::c_assign);
+}
+
/* GlobalNode */
void LingoCompiler::visitGlobalNode(GlobalNode *node) {
@@ -488,16 +600,11 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
LoopNode *prevLoop = _currentLoop;
_currentLoop = node;
- registerMethodVar(*node->var);
-
compile(node->start);
- code1(LC::c_varpush);
- codeString(node->var->c_str());
- code1(LC::c_assign);
+ codeVarSet(*node->var);
uint startPos = _currentAssembly->size();
- code1(LC::c_eval);
- codeString(node->var->c_str());
+ codeVarGet(*node->var);
compile(node->end);
if (node->down) {
code1(LC::c_ge);
@@ -510,8 +617,7 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
compileList(node->stmts);
uint incrementPos = _currentAssembly->size();
- code1(LC::c_eval);
- codeString(node->var->c_str());
+ codeVarGet(*node->var);
code1(LC::c_intpush);
codeInt(1);
if (node->down) {
@@ -519,9 +625,7 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
} else {
code1(LC::c_add);
}
- code1(LC::c_varpush);
- codeString(node->var->c_str());
- code1(LC::c_assign);
+ codeVarSet(*node->var);
uint jmpPos = _currentAssembly->size();
code2(LC::c_jump, 0);
@@ -599,12 +703,24 @@ void LingoCompiler::visitFuncNode(FuncNode *node) {
/* VarNode */
void LingoCompiler::visitVarNode(VarNode *node) {
+ if (_refMode) {
+ codeVarRef(*node->name);
+ return;
+ }
if (g_lingo->_builtinConsts.contains(*node->name)) {
code1(LC::c_constpush);
- } else {
- code1(LC::c_eval);
+ codeString(node->name->c_str());
+ return;
+ }
+ if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
+ int val = castNumToNum(node->name->c_str());
+ if (val != -1) {
+ code1(LC::c_intpush);
+ codeInt(val);
+ return;
+ }
}
- codeString(node->name->c_str());
+ codeVarGet(*node->name);
}
/* ParensNode */
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index b61363fff2..e84efd67ec 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -47,6 +47,9 @@ public:
int codeFunc(Common::String *s, int numpar);
int codeInt(int val);
int codeString(const char *s);
+ void codeVarSet(const Common::String &name);
+ void codeVarRef(const Common::String &name);
+ void codeVarGet(const Common::String &name);
void registerFactory(Common::String &s);
void registerMethodVar(const Common::String &name, VarType type = kVarGeneric);
void updateLoopJumps(uint nextTargetPos, uint exitTargetPos);
@@ -62,6 +65,7 @@ public:
const char *_lines[3];
bool _inFactory;
LoopNode *_currentLoop;
+ bool _refMode;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVars;
Common::HashMap<Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> *_methodVarsStash;
@@ -70,12 +74,17 @@ public:
public:
void compile(Node *node);
+ void compileRef(Node *node);
void compileList(NodeList *nodes);
virtual void visitScriptNode(ScriptNode *node);
virtual void visitFactoryNode(FactoryNode *node);
virtual void visitHandlerNode(HandlerNode *node);
virtual void visitCmdNode(CmdNode *node);
+ virtual void visitPutIntoNode(PutIntoNode *node);
+ virtual void visitPutAfterNode(PutAfterNode *node);
+ virtual void visitPutBeforeNode(PutBeforeNode *node);
+ virtual void visitSetNode(SetNode *node);
virtual void visitGlobalNode(GlobalNode *node);
virtual void visitPropertyNode(PropertyNode *node);
virtual void visitInstanceNode(InstanceNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 0bf0f17553..d816255af9 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -260,18 +260,23 @@ enum yysymbol_kind_t
YYSYMBOL_stmt = 105, /* stmt */
YYSYMBOL_stmtoneliner = 106, /* stmtoneliner */
YYSYMBOL_proc = 107, /* proc */
- YYSYMBOL_definevars = 108, /* definevars */
- YYSYMBOL_ifstmt = 109, /* ifstmt */
- YYSYMBOL_ifelsestmt = 110, /* ifelsestmt */
- YYSYMBOL_loop = 111, /* loop */
- YYSYMBOL_stmtlist = 112, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 113, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 114, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 115, /* simpleexprnoparens */
- YYSYMBOL_simpleexpr = 116, /* simpleexpr */
- YYSYMBOL_expr = 117, /* expr */
- YYSYMBOL_exprlist = 118, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 119 /* nonemptyexprlist */
+ YYSYMBOL_asgn = 108, /* asgn */
+ YYSYMBOL_to = 109, /* to */
+ YYSYMBOL_definevars = 110, /* definevars */
+ YYSYMBOL_ifstmt = 111, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 112, /* ifelsestmt */
+ YYSYMBOL_loop = 113, /* loop */
+ YYSYMBOL_stmtlist = 114, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 115, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 116, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 117, /* simpleexprnoparens */
+ YYSYMBOL_var = 118, /* var */
+ YYSYMBOL_varorchunk = 119, /* varorchunk */
+ YYSYMBOL_varorthe = 120, /* varorthe */
+ YYSYMBOL_simpleexpr = 121, /* simpleexpr */
+ YYSYMBOL_expr = 122, /* expr */
+ YYSYMBOL_exprlist = 123, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 124 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -591,18 +596,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 89
+#define YYFINAL 99
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1360
+#define YYLAST 1520
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 90
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 30
+#define YYNNTS 35
/* YYNRULES -- Number of rules. */
-#define YYNRULES 127
+#define YYNRULES 138
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 220
+#define YYNSTATES 248
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -659,19 +664,20 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 190, 190, 192, 198, 205, 206, 207, 208, 209,
- 238, 242, 244, 246, 247, 250, 256, 263, 264, 269,
- 273, 277, 278, 279, 284, 285, 286, 287, 288, 289,
- 290, 293, 295, 298, 300, 301, 302, 303, 306, 307,
- 308, 309, 310, 312, 313, 314, 315, 316, 318, 319,
- 320, 321, 322, 323, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 336, 337, 340, 344, 354, 355, 356,
- 357, 360, 361, 364, 365, 366, 367, 370, 371, 372,
- 375, 379, 383, 389, 393, 397, 401, 403, 405, 409,
- 410, 414, 420, 427, 428, 433, 434, 435, 436, 437,
- 438, 439, 440, 441, 444, 445, 448, 449, 450, 451,
- 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
- 462, 463, 464, 465, 468, 469, 472, 476
+ 0, 193, 193, 195, 201, 208, 209, 210, 211, 212,
+ 241, 245, 247, 249, 250, 253, 259, 266, 267, 272,
+ 276, 280, 281, 282, 287, 288, 289, 290, 291, 292,
+ 293, 296, 298, 301, 303, 304, 305, 306, 309, 310,
+ 311, 312, 313, 315, 316, 317, 318, 319, 322, 323,
+ 324, 325, 326, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 339, 340, 343, 347, 357, 358, 359, 360,
+ 363, 364, 365, 368, 369, 370, 371, 372, 373, 376,
+ 377, 378, 379, 382, 382, 384, 385, 386, 389, 393,
+ 397, 403, 407, 411, 415, 417, 419, 423, 424, 428,
+ 434, 441, 442, 447, 448, 449, 450, 451, 452, 453,
+ 454, 455, 458, 460, 464, 468, 469, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 492, 493, 496, 500
};
#endif
@@ -704,9 +710,10 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"'\\n'", "','", "'('", "')'", "$accept", "script", "scriptpartlist",
"scriptpart", "macro", "factory", "method", "methodlist",
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
- "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "definevars",
- "ifstmt", "ifelsestmt", "loop", "stmtlist", "nonemptystmtlist",
- "stmtlistline", "simpleexprnoparens", "simpleexpr", "expr", "exprlist",
+ "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "asgn", "to",
+ "definevars", "ifstmt", "ifelsestmt", "loop", "stmtlist",
+ "nonemptystmtlist", "stmtlistline", "simpleexprnoparens", "var",
+ "varorchunk", "varorthe", "simpleexpr", "expr", "exprlist",
"nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
@@ -730,7 +737,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-161)
+#define YYPACT_NINF (-167)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -744,73 +751,81 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 344, -161, -161, -161, -161, -161, -161, -161, -33, 1084,
- 204, -161, -161, 1084, -161, -31, -161, -161, -161, -21,
- -161, -161, -161, -161, -161, 1084, -161, -161, 1084, -161,
- -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
- -161, -161, -161, -161, 1084, 1084, -161, -161, 15, 344,
- -161, -161, -161, -161, 274, -161, -161, -161, -161, -161,
- -161, -161, -68, -161, -161, -161, -161, -57, -54, -161,
- -161, -161, -161, 204, 204, 204, 204, -52, -161, -161,
- 1128, 1084, -49, 1084, 204, -47, -45, -43, 1084, -161,
- -161, 204, 1263, -38, -37, -161, -161, 1084, -161, -161,
- -161, 1163, 204, 842, 204, 204, 204, 204, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
- 204, -26, -161, -18, 1176, -66, -161, -161, -16, 1163,
- -22, -161, 204, -161, -161, -15, 903, 44, 9, 9,
- 9, 9, 1276, 1276, -161, -19, 9, 9, 9, 9,
- -19, -53, -53, -161, -161, 903, 204, 903, 1084, -161,
- -161, -14, -161, -161, 903, -13, 1263, -161, -161, -161,
- 405, -161, -161, 964, 903, 1113, 467, 1084, -66, 535,
- -161, 1025, -11, -161, 903, -161, 29, 204, -10, -9,
- -161, 1084, 903, -161, -161, 596, 204, 1213, -161, 903,
- -60, -161, 658, -8, 1226, 903, 903, -161, 1084, -7,
- -161, 903, 720, -161, -161, 781, -6, -4, -161, -161
+ 500, -167, -167, -167, -167, -167, -167, -167, -32, 1240,
+ 281, -167, -167, 1240, -167, -24, -167, -167, 360, -34,
+ 1240, -167, -167, -167, -167, 1240, -167, -167, 1240, -167,
+ -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+ -167, -167, -167, -167, 1240, 1240, -167, -167, 12, 500,
+ -167, -167, -167, -167, 430, -167, -167, -167, -167, -167,
+ -167, -167, -167, -59, -167, -167, -167, -167, -167, -54,
+ -47, -167, -167, -167, -167, 281, 281, 281, 281, -50,
+ -167, -167, -167, 1270, 1240, -45, 281, 42, -44, -40,
+ 1240, 281, -167, -167, -26, -38, -36, -33, 1240, -167,
+ -167, 281, 1423, -31, -167, -167, 1240, -167, -167, -167,
+ 1283, 281, 998, 281, 281, 281, 281, 281, 281, 281,
+ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
+ -28, -167, 1283, -29, 1240, 1240, 1240, -167, 281, 11,
+ 1323, -167, -167, 281, -65, -167, -167, -22, -21, -167,
+ -167, -167, -20, 1059, 41, 103, 103, 103, 103, 1436,
+ 1436, -167, -1, 103, 103, 103, 103, -1, -53, -53,
+ -167, -167, 1059, -14, -167, -11, -9, -8, 1423, 281,
+ 1059, 1336, 1240, -167, -167, 1, -167, -167, 1059, 3,
+ -167, -167, -167, 561, -167, -167, 1120, 1059, -167, -167,
+ -167, -167, 87, 623, -167, 1240, -65, 691, -167, 1181,
+ 5, -167, 1059, -167, 43, 281, 19, 21, -167, 1240,
+ 1059, -167, -167, 752, 281, 1373, -167, 1059, -68, -167,
+ 814, 22, 1386, 1059, 1059, -167, 1240, 23, -167, 1059,
+ 876, -167, -167, 937, 25, 27, -167, -167
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
-static const yytype_int8 yydefact[] =
+static const yytype_uint8 yydefact[] =
{
- 0, 24, 46, 28, 32, 50, 59, 30, 31, 63,
- 0, 33, 35, 0, 39, 40, 42, 47, 48, 49,
- 51, 54, 57, 60, 58, 0, 43, 45, 63, 26,
- 44, 41, 38, 25, 27, 52, 29, 36, 37, 62,
- 56, 34, 61, 53, 63, 0, 55, 5, 0, 2,
- 3, 6, 7, 8, 124, 9, 67, 71, 72, 68,
- 69, 70, 0, 31, 40, 49, 65, 0, 64, 95,
- 96, 98, 97, 41, 0, 0, 0, 103, 104, 106,
- 0, 63, 0, 0, 0, 0, 0, 0, 63, 1,
- 4, 124, 126, 0, 125, 76, 77, 0, 101, 99,
- 100, 0, 124, 0, 0, 0, 0, 0, 0, 0,
+ 0, 24, 46, 28, 32, 49, 58, 30, 31, 62,
+ 0, 33, 35, 0, 39, 40, 42, 47, 135, 48,
+ 50, 53, 56, 59, 57, 0, 43, 45, 62, 26,
+ 44, 41, 38, 25, 27, 51, 29, 36, 37, 61,
+ 55, 34, 60, 52, 62, 0, 54, 5, 0, 2,
+ 3, 6, 7, 8, 135, 9, 66, 70, 71, 72,
+ 67, 68, 69, 0, 31, 40, 48, 50, 64, 0,
+ 63, 103, 104, 106, 105, 41, 0, 0, 0, 112,
+ 115, 111, 117, 0, 62, 0, 135, 137, 0, 136,
+ 0, 0, 112, 114, 0, 0, 0, 0, 62, 1,
+ 4, 135, 137, 0, 78, 85, 0, 109, 107, 108,
+ 0, 135, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 75, 0, 0, 13, 79, 78, 0, 126,
- 0, 74, 0, 66, 105, 0, 89, 80, 116, 117,
- 114, 115, 118, 119, 111, 121, 122, 123, 113, 112,
- 120, 107, 108, 109, 110, 89, 0, 89, 0, 17,
- 18, 11, 14, 15, 89, 0, 127, 102, 93, 94,
- 0, 90, 91, 0, 10, 0, 0, 63, 0, 20,
- 73, 0, 0, 92, 89, 82, 0, 0, 0, 0,
- 16, 21, 89, 84, 81, 0, 0, 0, 86, 89,
- 0, 22, 0, 0, 0, 89, 12, 19, 0, 0,
- 83, 89, 0, 23, 85, 0, 0, 0, 87, 88
+ 0, 77, 137, 0, 0, 0, 0, 76, 0, 0,
+ 0, 83, 84, 0, 13, 87, 86, 0, 0, 74,
+ 65, 116, 0, 97, 88, 127, 128, 125, 126, 129,
+ 130, 122, 132, 133, 134, 124, 123, 131, 118, 119,
+ 120, 121, 97, 0, 113, 0, 0, 0, 138, 0,
+ 97, 0, 0, 17, 18, 11, 14, 15, 97, 0,
+ 110, 101, 102, 0, 98, 99, 0, 10, 75, 79,
+ 80, 81, 0, 0, 82, 62, 0, 20, 73, 0,
+ 0, 100, 97, 90, 0, 0, 0, 0, 16, 21,
+ 97, 92, 89, 0, 0, 0, 94, 97, 0, 22,
+ 0, 0, 0, 97, 12, 19, 0, 0, 91, 97,
+ 0, 23, 93, 0, 0, 0, 95, 96
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -161, -161, -161, 35, -161, -161, -161, -161, -161, -93,
- -161, -161, 0, -27, -161, 2, -161, -161, -161, -161,
- -161, -161, -152, -161, -160, -161, -17, 11, -80, -161
+ -167, -167, -167, 37, -167, -167, -167, -167, -167, -118,
+ -167, -167, 0, -27, -167, 2, -167, -167, -167, -167,
+ -167, -167, -167, -167, -166, -167, -164, -167, -17, -112,
+ -167, -41, 140, -49, -167
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 160, 161, 162, 163,
- 53, 200, 77, 67, 68, 169, 56, 57, 58, 59,
- 60, 61, 170, 171, 172, 78, 79, 92, 93, 94
+ 0, 48, 49, 50, 51, 52, 184, 185, 186, 187,
+ 53, 228, 79, 69, 70, 192, 56, 57, 58, 143,
+ 59, 60, 61, 62, 193, 194, 195, 80, 81, 175,
+ 94, 82, 102, 88, 89
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -818,273 +833,305 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 54, 86, 55, 174, 110, 176, 62, 158, 82, 66,
- 183, 130, 179, 81, 183, 89, 183, 87, 95, 183,
- 159, 80, 135, 83, 84, 85, 207, 208, 66, 96,
- 119, 120, 195, 97, 156, 183, 102, 122, 110, 125,
- 202, 126, 183, 127, 66, 88, 183, 206, 131, 54,
- 132, 55, 183, 212, 121, 183, 98, 99, 100, 215,
- 155, 128, 117, 118, 119, 120, 110, 165, 173, 111,
- 164, 196, 178, 180, 167, 194, 198, 199, 210, 214,
- 218, 66, 219, 123, 90, 190, 0, 101, 66, 116,
- 117, 118, 119, 120, 0, 124, 0, 133, 0, 0,
- 0, 0, 129, 54, 0, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 0, 0, 0, 0, 54, 0, 0, 0,
- 0, 0, 0, 166, 0, 0, 0, 0, 0, 0,
- 189, 0, 0, 0, 0, 54, 0, 54, 177, 0,
- 0, 0, 0, 0, 54, 0, 0, 175, 0, 0,
- 54, 0, 0, 54, 54, 185, 54, 66, 0, 54,
- 0, 54, 0, 193, 54, 0, 0, 0, 0, 0,
- 0, 201, 54, 0, 0, 54, 0, 0, 197, 54,
- 0, 0, 54, 0, 0, 54, 54, 204, 213, 69,
- 0, 54, 54, 0, 70, 54, 0, 1, 71, 72,
- 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
- 63, 0, 0, 0, 0, 11, 12, 0, 14, 64,
- 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
- 73, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 69,
- 0, 46, 0, 0, 70, 74, 75, 1, 71, 72,
- 0, 2, 76, 3, 4, 5, 6, 7, 0, 0,
- 63, 0, 0, 0, 0, 11, 12, 0, 14, 64,
- 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
- 73, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
- 0, 46, 0, 0, 0, 74, 75, 1, 0, 0,
- 0, 2, 91, 3, 4, 5, 6, 7, 0, 0,
- 8, 9, 0, 0, 10, 11, 12, 13, 14, 15,
+ 54, 96, 55, 93, 119, 103, 197, 63, 182, 68,
+ 90, 91, 99, 84, 203, 85, 141, 97, 235, 236,
+ 92, 183, 207, 176, 177, 95, 142, 104, 68, 211,
+ 128, 129, 105, 211, 107, 108, 109, 133, 111, 211,
+ 106, 131, 137, 211, 68, 98, 223, 138, 144, 54,
+ 145, 55, 148, 146, 230, 149, 119, 130, 172, 211,
+ 173, 234, 152, 179, 188, 196, 211, 240, 189, 190,
+ 211, 147, 198, 243, 134, 199, 211, 200, 201, 211,
+ 126, 127, 128, 129, 68, 224, 100, 206, 218, 208,
+ 139, 222, 113, 114, 115, 116, 117, 118, 68, 119,
+ 135, 136, 120, 121, 122, 226, 150, 227, 238, 242,
+ 214, 246, 54, 247, 154, 0, 0, 174, 174, 174,
+ 123, 124, 125, 126, 127, 128, 129, 0, 0, 215,
+ 0, 0, 0, 0, 92, 92, 92, 113, 114, 115,
+ 116, 117, 118, 0, 119, 0, 0, 120, 121, 122,
+ 83, 0, 0, 54, 0, 0, 0, 0, 87, 0,
+ 119, 0, 0, 120, 0, 123, 124, 125, 126, 127,
+ 128, 129, 54, 0, 0, 0, 0, 0, 217, 0,
+ 54, 0, 205, 125, 126, 127, 128, 129, 54, 0,
+ 0, 0, 0, 54, 0, 0, 54, 54, 213, 0,
+ 0, 0, 0, 54, 0, 68, 0, 54, 0, 54,
+ 0, 221, 54, 0, 0, 0, 0, 0, 110, 229,
+ 54, 0, 0, 54, 0, 0, 132, 54, 0, 0,
+ 54, 140, 0, 54, 54, 0, 241, 0, 0, 54,
+ 54, 132, 0, 54, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 0, 0, 0, 0, 0, 0, 0, 0, 178, 0,
+ 0, 0, 0, 181, 0, 0, 71, 0, 0, 0,
+ 0, 72, 0, 0, 1, 73, 74, 0, 2, 0,
+ 3, 4, 5, 6, 7, 0, 0, 64, 0, 0,
+ 0, 0, 11, 12, 0, 14, 65, 16, 17, 202,
+ 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
+ 0, 0, 0, 0, 0, 29, 30, 75, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 0, 0, 0, 225, 0, 0, 46, 0,
+ 0, 0, 76, 77, 232, 71, 0, 0, 0, 78,
+ 72, 0, 0, 1, 73, 74, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 64, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
+ 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 71, 0, 46, 0, 0,
+ 72, 76, 77, 1, 73, 74, 0, 2, 86, 3,
+ 4, 5, 6, 7, 0, 0, 64, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
+ 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 76, 77, 1, 0, 0, 0, 2, 101, 3,
+ 4, 5, 6, 7, 0, 0, 8, 9, 0, 0,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 0, 21, 22, 23, 24, 25, 26, 27, 28,
+ 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 0, 1, 0, 0, 46, 2, 0,
+ 3, 4, 5, 6, 7, 209, 47, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 210, 1, 0, 46, 0,
+ 2, 0, 3, 4, 5, 6, 7, 191, 0, 8,
+ 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 0, 216, 0,
+ 46, 0, 0, 0, 1, 0, 0, 219, 2, 191,
+ 3, 4, 5, 6, 7, 0, 0, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
+ 0, 3, 4, 5, 6, 7, 0, 191, 8, 9,
+ 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
+ 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
+ 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
+ 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 231, 1, 0, 46,
+ 0, 2, 0, 3, 4, 5, 6, 7, 191, 0,
+ 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 25, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 1, 0,
- 0, 46, 2, 0, 3, 4, 5, 6, 7, 181,
- 47, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 182,
- 1, 0, 46, 0, 2, 0, 3, 4, 5, 6,
- 7, 168, 0, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 0, 188, 0, 46, 0, 0, 0, 1, 0,
- 0, 191, 2, 168, 3, 4, 5, 6, 7, 0,
- 0, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
- 0, 0, 46, 2, 0, 3, 4, 5, 6, 7,
- 0, 168, 8, 9, 0, 0, 10, 11, 12, 0,
+ 39, 40, 41, 42, 43, 44, 0, 0, 237, 1,
+ 0, 46, 0, 2, 0, 3, 4, 5, 6, 7,
+ 191, 0, 8, 9, 0, 0, 10, 11, 12, 0,
14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 203, 1, 0, 46, 0, 2, 0, 3, 4, 5,
- 6, 7, 168, 0, 8, 9, 0, 0, 10, 11,
+ 1, 244, 0, 46, 2, 0, 3, 4, 5, 6,
+ 7, 0, 191, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
+ 0, 1, 245, 0, 46, 2, 0, 3, 4, 5,
+ 6, 7, 0, 191, 8, 9, 0, 0, 10, 11,
12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 209, 1, 0, 46, 0, 2, 0, 3,
- 4, 5, 6, 7, 168, 0, 8, 9, 0, 0,
+ 0, 0, 1, 0, 0, 46, 2, 0, 3, 4,
+ 5, 6, 7, 0, 153, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 1, 0, 0, 46, 2, 0, 3,
+ 4, 5, 6, 7, 0, 191, 8, 9, 0, 0,
10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 1, 216, 0, 46, 2, 0,
- 3, 4, 5, 6, 7, 0, 168, 8, 9, 0,
+ 43, 44, 0, 0, 1, 0, 0, 46, 2, 0,
+ 3, 4, 5, 6, 7, 0, 212, 8, 9, 0,
0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 1, 217, 0, 46, 2,
- 0, 3, 4, 5, 6, 7, 0, 168, 8, 9,
- 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
- 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
- 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
- 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
- 2, 0, 3, 4, 5, 6, 7, 0, 136, 8,
- 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 0, 168,
- 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
- 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
- 184, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 1, 0, 0,
- 0, 2, 46, 3, 4, 5, 6, 7, 0, 0,
- 63, 192, 0, 0, 0, 11, 12, 0, 14, 64,
- 16, 17, 18, 65, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 0, 0, 0, 186, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 187, 0, 0, 0, 0,
- 0, 46, 0, 104, 105, 106, 107, 108, 109, 103,
- 110, 0, 0, 111, 112, 113, 0, 0, 104, 105,
- 106, 107, 108, 109, 0, 110, 0, 0, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 0, 0,
- 0, 0, 0, 0, 0, 0, 114, 115, 116, 117,
- 118, 119, 120, 104, 105, 106, 107, 108, 109, 0,
- 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
- 108, 109, 0, 110, 0, 0, 111, 112, 113, 0,
- 0, 114, 115, 116, 117, 118, 119, 120, 0, 0,
- 0, 0, 134, 0, 114, 115, 116, 117, 118, 119,
- 120, 0, 157, 104, 105, 106, 107, 108, 109, 0,
- 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
- 108, 109, 0, 110, 0, 0, 111, 112, 113, 0,
- 0, 114, 115, 116, 117, 118, 119, 120, 0, 205,
- 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
- 120, 0, 211, 104, 105, 106, 107, 108, 109, 0,
- 110, 0, 0, 111, 112, 113, 104, 105, 106, 107,
- 0, 0, 0, 110, 0, 0, 111, 112, 113, 0,
- 0, 114, 115, 116, 117, 118, 119, 120, 0, 0,
- 0, 0, 0, 0, 114, 115, 116, 117, 118, 119,
- 120
+ 42, 43, 44, 1, 0, 0, 0, 2, 46, 3,
+ 4, 5, 6, 7, 0, 0, 64, 220, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
+ 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 112, 0, 0, 0, 0, 0, 46, 0, 0,
+ 113, 114, 115, 116, 117, 118, 0, 119, 0, 0,
+ 120, 121, 122, 113, 114, 115, 116, 117, 118, 0,
+ 119, 0, 0, 120, 121, 122, 0, 0, 123, 124,
+ 125, 126, 127, 128, 129, 0, 0, 0, 0, 0,
+ 0, 123, 124, 125, 126, 127, 128, 129, 0, 0,
+ 0, 0, 151, 113, 114, 115, 116, 117, 118, 0,
+ 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
+ 117, 118, 0, 119, 0, 0, 120, 121, 122, 0,
+ 0, 123, 124, 125, 126, 127, 128, 129, 0, 180,
+ 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
+ 129, 0, 204, 113, 114, 115, 116, 117, 118, 0,
+ 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
+ 117, 118, 0, 119, 0, 0, 120, 121, 122, 0,
+ 0, 123, 124, 125, 126, 127, 128, 129, 0, 233,
+ 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
+ 129, 0, 239, 113, 114, 115, 116, 117, 118, 0,
+ 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
+ 0, 0, 0, 119, 0, 0, 120, 121, 122, 0,
+ 0, 123, 124, 125, 126, 127, 128, 129, 0, 0,
+ 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
+ 129
};
static const yytype_int16 yycheck[] =
{
- 0, 28, 0, 155, 57, 157, 39, 73, 39, 9,
- 170, 91, 164, 13, 174, 0, 176, 44, 86, 179,
- 86, 10, 102, 44, 45, 25, 86, 87, 28, 86,
- 83, 84, 184, 87, 52, 195, 88, 86, 57, 86,
- 192, 86, 202, 86, 44, 45, 206, 199, 86, 49,
- 87, 49, 212, 205, 81, 215, 73, 74, 75, 211,
- 86, 88, 81, 82, 83, 84, 57, 89, 24, 60,
- 86, 42, 86, 86, 89, 86, 86, 86, 86, 86,
- 86, 81, 86, 83, 49, 178, -1, 76, 88, 80,
- 81, 82, 83, 84, -1, 84, -1, 97, -1, -1,
- -1, -1, 91, 103, -1, 103, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, -1, -1, -1, -1, 136, -1, -1, -1,
- -1, -1, -1, 132, -1, -1, -1, -1, -1, -1,
- 177, -1, -1, -1, -1, 155, -1, 157, 158, -1,
- -1, -1, -1, -1, 164, -1, -1, 156, -1, -1,
- 170, -1, -1, 173, 174, 173, 176, 177, -1, 179,
- -1, 181, -1, 181, 184, -1, -1, -1, -1, -1,
- -1, 191, 192, -1, -1, 195, -1, -1, 187, 199,
- -1, -1, 202, -1, -1, 205, 206, 196, 208, 5,
- -1, 211, 212, -1, 10, 215, -1, 13, 14, 15,
- -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
- 26, -1, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, 5,
- -1, 77, -1, -1, 10, 81, 82, 13, 14, 15,
- -1, 17, 88, 19, 20, 21, 22, 23, -1, -1,
- 26, -1, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, 13, -1, -1,
- -1, 17, 88, 19, 20, 21, 22, 23, -1, -1,
- 26, 27, -1, -1, 30, 31, 32, 33, 34, 35,
+ 0, 28, 0, 20, 57, 54, 172, 39, 73, 9,
+ 44, 45, 0, 13, 180, 39, 42, 44, 86, 87,
+ 20, 86, 188, 135, 136, 25, 52, 86, 28, 193,
+ 83, 84, 86, 197, 75, 76, 77, 86, 88, 203,
+ 87, 86, 86, 207, 44, 45, 212, 87, 86, 49,
+ 86, 49, 101, 86, 220, 86, 57, 84, 86, 223,
+ 89, 227, 111, 52, 86, 24, 230, 233, 89, 89,
+ 234, 98, 86, 239, 32, 86, 240, 86, 86, 243,
+ 81, 82, 83, 84, 84, 42, 49, 86, 206, 86,
+ 90, 86, 50, 51, 52, 53, 54, 55, 98, 57,
+ 58, 59, 60, 61, 62, 86, 106, 86, 86, 86,
+ 23, 86, 112, 86, 112, -1, -1, 134, 135, 136,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, 42,
+ -1, -1, -1, -1, 134, 135, 136, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 10, -1, -1, 153, -1, -1, -1, -1, 18, -1,
+ 57, -1, -1, 60, -1, 78, 79, 80, 81, 82,
+ 83, 84, 172, -1, -1, -1, -1, -1, 205, -1,
+ 180, -1, 182, 80, 81, 82, 83, 84, 188, -1,
+ -1, -1, -1, 193, -1, -1, 196, 197, 196, -1,
+ -1, -1, -1, 203, -1, 205, -1, 207, -1, 209,
+ -1, 209, 212, -1, -1, -1, -1, -1, 78, 219,
+ 220, -1, -1, 223, -1, -1, 86, 227, -1, -1,
+ 230, 91, -1, 233, 234, -1, 236, -1, -1, 239,
+ 240, 101, -1, 243, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ -1, -1, -1, -1, -1, -1, -1, -1, 138, -1,
+ -1, -1, -1, 143, -1, -1, 5, -1, -1, -1,
+ -1, 10, -1, -1, 13, 14, 15, -1, 17, -1,
+ 19, 20, 21, 22, 23, -1, -1, 26, -1, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, 179,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, 215, -1, -1, 77, -1,
+ -1, -1, 81, 82, 224, 5, -1, -1, -1, 88,
+ 10, -1, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, 26, -1, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, 5, -1, 77, -1, -1,
+ 10, 81, 82, 13, 14, 15, -1, 17, 88, 19,
+ 20, 21, 22, 23, -1, -1, 26, -1, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
+ -1, 81, 82, 13, -1, -1, -1, 17, 88, 19,
+ 20, 21, 22, 23, -1, -1, 26, 27, -1, -1,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, 46, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, -1, 13, -1, -1, 77, 17, -1,
+ 19, 20, 21, 22, 23, 24, 86, 26, 27, -1,
+ -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 74, 13, -1, 77, -1,
+ 17, -1, 19, 20, 21, 22, 23, 86, -1, 26,
+ 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, -1, 75, -1,
+ 77, -1, -1, -1, 13, -1, -1, 16, 17, 86,
+ 19, 20, 21, 22, 23, -1, -1, 26, 27, -1,
+ -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
+ -1, 17, -1, 19, 20, 21, 22, 23, 86, -1,
+ 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- 46, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, -1, 13, -1,
- -1, 77, 17, -1, 19, 20, 21, 22, 23, 24,
- 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
- 13, -1, 77, -1, 17, -1, 19, 20, 21, 22,
- 23, 86, -1, 26, 27, -1, -1, 30, 31, 32,
- -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, -1, 75, -1, 77, -1, -1, -1, 13, -1,
- -1, 16, 17, 86, 19, 20, 21, 22, 23, -1,
- -1, 26, 27, -1, -1, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- -1, -1, 77, 17, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
+ 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
+ -1, 77, -1, 17, -1, 19, 20, 21, 22, 23,
+ 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 74, 13, -1, 77, -1, 17, -1, 19, 20, 21,
- 22, 23, 86, -1, 26, 27, -1, -1, 30, 31,
+ 13, 75, -1, 77, 17, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
+ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
+ -1, 13, 75, -1, 77, 17, -1, 19, 20, 21,
+ 22, 23, -1, 86, 26, 27, -1, -1, 30, 31,
32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 74, 13, -1, 77, -1, 17, -1, 19,
- 20, 21, 22, 23, 86, -1, 26, 27, -1, -1,
+ -1, -1, 13, -1, -1, 77, 17, -1, 19, 20,
+ 21, 22, 23, -1, 86, 26, 27, -1, -1, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 13, -1, -1, 77, 17, -1, 19,
+ 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, 75, -1, 77, 17, -1,
+ 70, 71, -1, -1, 13, -1, -1, 77, 17, -1,
19, 20, 21, 22, 23, -1, 86, 26, 27, -1,
-1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, 75, -1, 77, 17,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
- -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- 17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
- 77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
- 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
- -1, 77, 17, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 13, -1, -1,
- -1, 17, 77, 19, 20, 21, 22, 23, -1, -1,
- 26, 86, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, 23, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 42, -1, -1, -1, -1,
- -1, 77, -1, 50, 51, 52, 53, 54, 55, 41,
- 57, -1, -1, 60, 61, 62, -1, -1, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, 50, 51, 52, 53, 54, 55, -1,
+ 69, 70, 71, 13, -1, -1, -1, 17, 77, 19,
+ 20, 21, 22, 23, -1, -1, 26, 86, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 41, -1, -1, -1, -1, -1, 77, -1, -1,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, -1, -1, -1, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, 89, 50, 51, 52, 53, 54, 55, -1,
57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, 89, -1, 78, 79, 80, 81, 82, 83,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
@@ -1107,23 +1154,26 @@ static const yytype_int8 yystos[] =
40, 42, 43, 44, 45, 46, 47, 48, 49, 54,
55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 77, 86, 91, 92,
- 93, 94, 95, 100, 102, 105, 106, 107, 108, 109,
- 110, 111, 39, 26, 35, 39, 102, 103, 104, 5,
- 10, 14, 15, 56, 81, 82, 88, 102, 115, 116,
- 117, 102, 39, 44, 45, 102, 103, 103, 102, 0,
- 93, 88, 117, 118, 119, 86, 86, 87, 116, 116,
- 116, 117, 88, 41, 50, 51, 52, 53, 54, 55,
- 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
- 84, 103, 86, 102, 117, 86, 86, 86, 103, 117,
- 118, 86, 87, 102, 89, 118, 86, 105, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 86, 52, 86, 73, 86,
- 96, 97, 98, 99, 86, 89, 117, 89, 86, 105,
- 112, 113, 114, 24, 112, 117, 112, 102, 86, 112,
- 86, 24, 74, 114, 86, 105, 23, 42, 75, 103,
- 99, 16, 86, 105, 86, 112, 42, 117, 86, 86,
- 101, 102, 112, 74, 117, 86, 112, 86, 87, 74,
- 86, 86, 112, 102, 86, 112, 75, 75, 86, 86
+ 93, 94, 95, 100, 102, 105, 106, 107, 108, 110,
+ 111, 112, 113, 39, 26, 35, 39, 40, 102, 103,
+ 104, 5, 10, 14, 15, 56, 81, 82, 88, 102,
+ 117, 118, 121, 122, 102, 39, 88, 122, 123, 124,
+ 44, 45, 102, 118, 120, 102, 103, 103, 102, 0,
+ 93, 88, 122, 123, 86, 86, 87, 121, 121, 121,
+ 122, 88, 41, 50, 51, 52, 53, 54, 55, 57,
+ 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
+ 103, 86, 122, 123, 32, 58, 59, 86, 87, 102,
+ 122, 42, 52, 109, 86, 86, 86, 103, 123, 86,
+ 102, 89, 123, 86, 105, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 86, 89, 118, 119, 119, 119, 122, 52,
+ 86, 122, 73, 86, 96, 97, 98, 99, 86, 89,
+ 89, 86, 105, 114, 115, 116, 24, 114, 86, 86,
+ 86, 86, 122, 114, 86, 102, 86, 114, 86, 24,
+ 74, 116, 86, 105, 23, 42, 75, 103, 99, 16,
+ 86, 105, 86, 114, 42, 122, 86, 86, 101, 102,
+ 114, 74, 122, 86, 114, 86, 87, 74, 86, 86,
+ 114, 102, 86, 114, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1135,13 +1185,14 @@ static const yytype_int8 yyr1[] =
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 103, 103, 104, 104, 105, 105, 105,
- 105, 106, 106, 107, 107, 107, 107, 108, 108, 108,
- 109, 109, 110, 110, 110, 110, 111, 111, 111, 112,
- 112, 113, 113, 114, 114, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 116, 116, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 118, 118, 119, 119
+ 102, 102, 103, 103, 104, 104, 105, 105, 105, 105,
+ 106, 106, 106, 107, 107, 107, 107, 107, 107, 108,
+ 108, 108, 108, 109, 109, 110, 110, 110, 111, 111,
+ 112, 112, 112, 112, 113, 113, 113, 114, 114, 115,
+ 115, 116, 116, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 118, 119, 120, 121, 121, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 123, 123, 124, 124
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1153,13 +1204,14 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 3, 1, 1, 1,
- 1, 1, 1, 5, 3, 3, 3, 3, 3, 3,
- 4, 7, 6, 9, 7, 10, 7, 11, 12, 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 4, 1, 1, 3, 1, 3, 3, 3,
+ 1, 1, 0, 1, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 5, 3, 5, 3, 3, 3, 5,
+ 5, 5, 5, 1, 1, 3, 3, 3, 4, 7,
+ 6, 9, 7, 10, 7, 11, 12, 0, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 4, 1, 1, 1, 1, 1, 3, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 0, 1, 1, 3
+ 3, 3, 3, 3, 3, 0, 1, 1, 3
};
@@ -1431,51 +1483,51 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1437 "engines/director/lingo/lingo-gr.cpp"
+#line 1489 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1443 "engines/director/lingo/lingo-gr.cpp"
+#line 1495 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1449 "engines/director/lingo/lingo-gr.cpp"
+#line 1501 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1455 "engines/director/lingo/lingo-gr.cpp"
+#line 1507 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1461 "engines/director/lingo/lingo-gr.cpp"
+#line 1513 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1467 "engines/director/lingo/lingo-gr.cpp"
+#line 1519 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1473 "engines/director/lingo/lingo-gr.cpp"
+#line 1525 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 184 "engines/director/lingo/lingo-gr.y"
+#line 187 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1479 "engines/director/lingo/lingo-gr.cpp"
+#line 1531 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1741,709 +1793,739 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 193 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1747 "engines/director/lingo/lingo-gr.cpp"
+#line 1799 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 192 "engines/director/lingo/lingo-gr.y"
+#line 195 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1758 "engines/director/lingo/lingo-gr.cpp"
+#line 1810 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 198 "engines/director/lingo/lingo-gr.y"
+#line 201 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1768 "engines/director/lingo/lingo-gr.cpp"
+#line 1820 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 205 "engines/director/lingo/lingo-gr.y"
+#line 208 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1774 "engines/director/lingo/lingo-gr.cpp"
+#line 1826 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 238 "engines/director/lingo/lingo-gr.y"
+#line 241 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1780 "engines/director/lingo/lingo-gr.cpp"
+#line 1832 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 242 "engines/director/lingo/lingo-gr.y"
+#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1786 "engines/director/lingo/lingo-gr.cpp"
+#line 1838 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 244 "engines/director/lingo/lingo-gr.y"
+#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1792 "engines/director/lingo/lingo-gr.cpp"
+#line 1844 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 246 "engines/director/lingo/lingo-gr.y"
+#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1798 "engines/director/lingo/lingo-gr.cpp"
+#line 1850 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 250 "engines/director/lingo/lingo-gr.y"
+#line 253 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1809 "engines/director/lingo/lingo-gr.cpp"
+#line 1861 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 256 "engines/director/lingo/lingo-gr.y"
+#line 259 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1819 "engines/director/lingo/lingo-gr.cpp"
+#line 1871 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 263 "engines/director/lingo/lingo-gr.y"
+#line 266 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1825 "engines/director/lingo/lingo-gr.cpp"
+#line 1877 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 269 "engines/director/lingo/lingo-gr.y"
+#line 272 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1834 "engines/director/lingo/lingo-gr.cpp"
+#line 1886 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 273 "engines/director/lingo/lingo-gr.y"
+#line 276 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1841 "engines/director/lingo/lingo-gr.cpp"
+#line 1893 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 278 "engines/director/lingo/lingo-gr.y"
+#line 281 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1847 "engines/director/lingo/lingo-gr.cpp"
+#line 1899 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 279 "engines/director/lingo/lingo-gr.y"
+#line 282 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1853 "engines/director/lingo/lingo-gr.cpp"
+#line 1905 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
-#line 285 "engines/director/lingo/lingo-gr.y"
+#line 288 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1859 "engines/director/lingo/lingo-gr.cpp"
+#line 1911 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
-#line 286 "engines/director/lingo/lingo-gr.y"
+#line 289 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1865 "engines/director/lingo/lingo-gr.cpp"
+#line 1917 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
-#line 287 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1871 "engines/director/lingo/lingo-gr.cpp"
+#line 1923 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
-#line 288 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1877 "engines/director/lingo/lingo-gr.cpp"
+#line 1929 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
-#line 289 "engines/director/lingo/lingo-gr.y"
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1883 "engines/director/lingo/lingo-gr.cpp"
+#line 1935 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
-#line 290 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1889 "engines/director/lingo/lingo-gr.cpp"
+#line 1941 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tEXIT */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 1895 "engines/director/lingo/lingo-gr.cpp"
+#line 1947 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFIELD */
-#line 295 "engines/director/lingo/lingo-gr.y"
+#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1901 "engines/director/lingo/lingo-gr.cpp"
+#line 1953 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
-#line 298 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 1907 "engines/director/lingo/lingo-gr.cpp"
+#line 1959 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
-#line 300 "engines/director/lingo/lingo-gr.y"
+#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 1913 "engines/director/lingo/lingo-gr.cpp"
+#line 1965 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 1919 "engines/director/lingo/lingo-gr.cpp"
+#line 1971 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 1925 "engines/director/lingo/lingo-gr.cpp"
+#line 1977 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 1931 "engines/director/lingo/lingo-gr.cpp"
+#line 1983 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 1937 "engines/director/lingo/lingo-gr.cpp"
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 1943 "engines/director/lingo/lingo-gr.cpp"
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 1949 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 1955 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 1961 "engines/director/lingo/lingo-gr.cpp"
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 1967 "engines/director/lingo/lingo-gr.cpp"
+#line 2019 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 1973 "engines/director/lingo/lingo-gr.cpp"
+#line 2025 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAY */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 1979 "engines/director/lingo/lingo-gr.cpp"
+#line 2031 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPLAYACCEL */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 1985 "engines/director/lingo/lingo-gr.cpp"
+#line 2037 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tPREVIOUS */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 1991 "engines/director/lingo/lingo-gr.cpp"
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 48: /* ID: tPUT */
-#line 318 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("put"); }
-#line 1997 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 49: /* ID: tREPEAT */
-#line 319 "engines/director/lingo/lingo-gr.y"
+ case 48: /* ID: tREPEAT */
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2003 "engines/director/lingo/lingo-gr.cpp"
+#line 2049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* ID: tSCRIPT */
-#line 320 "engines/director/lingo/lingo-gr.y"
+ case 49: /* ID: tSCRIPT */
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2009 "engines/director/lingo/lingo-gr.cpp"
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* ID: tSET */
-#line 321 "engines/director/lingo/lingo-gr.y"
+ case 50: /* ID: tSET */
+#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2015 "engines/director/lingo/lingo-gr.cpp"
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* ID: tSTARTS */
-#line 322 "engines/director/lingo/lingo-gr.y"
+ case 51: /* ID: tSTARTS */
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2021 "engines/director/lingo/lingo-gr.cpp"
+#line 2067 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ID: tTELL */
-#line 323 "engines/director/lingo/lingo-gr.y"
+ case 52: /* ID: tTELL */
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2027 "engines/director/lingo/lingo-gr.cpp"
+#line 2073 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ID: tTO */
-#line 325 "engines/director/lingo/lingo-gr.y"
+ case 53: /* ID: tTO */
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2033 "engines/director/lingo/lingo-gr.cpp"
+#line 2079 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tASSERTERROR */
-#line 326 "engines/director/lingo/lingo-gr.y"
+ case 54: /* ID: tASSERTERROR */
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2039 "engines/director/lingo/lingo-gr.cpp"
+#line 2085 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tSPRITE */
-#line 327 "engines/director/lingo/lingo-gr.y"
+ case 55: /* ID: tSPRITE */
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2045 "engines/director/lingo/lingo-gr.cpp"
+#line 2091 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tWHEN */
-#line 328 "engines/director/lingo/lingo-gr.y"
+ case 56: /* ID: tWHEN */
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2051 "engines/director/lingo/lingo-gr.cpp"
+#line 2097 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tWHILE */
-#line 329 "engines/director/lingo/lingo-gr.y"
+ case 57: /* ID: tWHILE */
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2057 "engines/director/lingo/lingo-gr.cpp"
+#line 2103 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tWINDOW */
-#line 330 "engines/director/lingo/lingo-gr.y"
+ case 58: /* ID: tWINDOW */
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2063 "engines/director/lingo/lingo-gr.cpp"
+#line 2109 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* ID: tWITH */
-#line 331 "engines/director/lingo/lingo-gr.y"
+ case 59: /* ID: tWITH */
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2069 "engines/director/lingo/lingo-gr.cpp"
+#line 2115 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* ID: tWITHIN */
-#line 332 "engines/director/lingo/lingo-gr.y"
+ case 60: /* ID: tWITHIN */
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2075 "engines/director/lingo/lingo-gr.cpp"
+#line 2121 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* ID: tWORD */
-#line 333 "engines/director/lingo/lingo-gr.y"
+ case 61: /* ID: tWORD */
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2127 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* idlist: %empty */
-#line 336 "engines/director/lingo/lingo-gr.y"
+ case 62: /* idlist: %empty */
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2087 "engines/director/lingo/lingo-gr.cpp"
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
break;
- case 65: /* nonemptyidlist: ID */
-#line 340 "engines/director/lingo/lingo-gr.y"
+ case 64: /* nonemptyidlist: ID */
+#line 343 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2096 "engines/director/lingo/lingo-gr.cpp"
+#line 2142 "engines/director/lingo/lingo-gr.cpp"
break;
- case 66: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 344 "engines/director/lingo/lingo-gr.y"
+ case 65: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 347 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2104 "engines/director/lingo/lingo-gr.cpp"
+#line 2150 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: ID '(' exprlist ')' '\n' */
-#line 364 "engines/director/lingo/lingo-gr.y"
+#line 368 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 2110 "engines/director/lingo/lingo-gr.cpp"
+#line 2156 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: ID exprlist '\n' */
-#line 365 "engines/director/lingo/lingo-gr.y"
+#line 369 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2116 "engines/director/lingo/lingo-gr.cpp"
+#line 2162 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 75: /* proc: tPUT '(' exprlist ')' '\n' */
+#line 370 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-2].nodelist)); }
+#line 2168 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 76: /* proc: tPUT exprlist '\n' */
+#line 371 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
+#line 2174 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tNEXT tREPEAT '\n' */
-#line 366 "engines/director/lingo/lingo-gr.y"
+ case 77: /* proc: tNEXT tREPEAT '\n' */
+#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2122 "engines/director/lingo/lingo-gr.cpp"
+#line 2180 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tEXIT tREPEAT '\n' */
-#line 367 "engines/director/lingo/lingo-gr.y"
+ case 78: /* proc: tEXIT tREPEAT '\n' */
+#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2128 "engines/director/lingo/lingo-gr.cpp"
+#line 2186 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* definevars: tGLOBAL idlist '\n' */
-#line 370 "engines/director/lingo/lingo-gr.y"
+ case 79: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 376 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+#line 2192 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 80: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 377 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+#line 2198 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 81: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 378 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+#line 2204 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 82: /* asgn: tSET varorthe to expr '\n' */
+#line 379 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+#line 2210 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 85: /* definevars: tGLOBAL idlist '\n' */
+#line 384 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2134 "engines/director/lingo/lingo-gr.cpp"
+#line 2216 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* definevars: tPROPERTY idlist '\n' */
-#line 371 "engines/director/lingo/lingo-gr.y"
+ case 86: /* definevars: tPROPERTY idlist '\n' */
+#line 385 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2140 "engines/director/lingo/lingo-gr.cpp"
+#line 2222 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* definevars: tINSTANCE idlist '\n' */
-#line 372 "engines/director/lingo/lingo-gr.y"
+ case 87: /* definevars: tINSTANCE idlist '\n' */
+#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2146 "engines/director/lingo/lingo-gr.cpp"
+#line 2228 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* ifstmt: tIF expr tTHEN stmt */
-#line 375 "engines/director/lingo/lingo-gr.y"
+ case 88: /* ifstmt: tIF expr tTHEN stmt */
+#line 389 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2155 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+ case 89: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 393 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2162 "engines/director/lingo/lingo-gr.cpp"
+#line 2244 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 383 "engines/director/lingo/lingo-gr.y"
+ case 90: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 397 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2173 "engines/director/lingo/lingo-gr.cpp"
+#line 2255 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 389 "engines/director/lingo/lingo-gr.y"
+ case 91: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 403 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2182 "engines/director/lingo/lingo-gr.cpp"
+#line 2264 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 92: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 407 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2191 "engines/director/lingo/lingo-gr.cpp"
+#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 93: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 411 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2280 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 94: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 415 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2205 "engines/director/lingo/lingo-gr.cpp"
+#line 2287 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+ case 95: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 417 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2212 "engines/director/lingo/lingo-gr.cpp"
+#line 2294 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 96: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 419 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2219 "engines/director/lingo/lingo-gr.cpp"
+#line 2301 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* stmtlist: %empty */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 97: /* stmtlist: %empty */
+#line 423 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2225 "engines/director/lingo/lingo-gr.cpp"
+#line 2307 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* nonemptystmtlist: stmtlistline */
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 99: /* nonemptystmtlist: stmtlistline */
+#line 428 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2236 "engines/director/lingo/lingo-gr.cpp"
+#line 2318 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 100: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 434 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2246 "engines/director/lingo/lingo-gr.cpp"
+#line 2328 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* stmtlistline: '\n' */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 101: /* stmtlistline: '\n' */
+#line 441 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2252 "engines/director/lingo/lingo-gr.cpp"
+#line 2334 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* simpleexprnoparens: tINT */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 103: /* simpleexprnoparens: tINT */
+#line 447 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2258 "engines/director/lingo/lingo-gr.cpp"
+#line 2340 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* simpleexprnoparens: tFLOAT */
-#line 434 "engines/director/lingo/lingo-gr.y"
+ case 104: /* simpleexprnoparens: tFLOAT */
+#line 448 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2346 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* simpleexprnoparens: tSYMBOL */
-#line 435 "engines/director/lingo/lingo-gr.y"
+ case 105: /* simpleexprnoparens: tSYMBOL */
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 2352 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* simpleexprnoparens: tSTRING */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 106: /* simpleexprnoparens: tSTRING */
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2358 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* simpleexprnoparens: '+' simpleexpr */
-#line 437 "engines/director/lingo/lingo-gr.y"
+ case 107: /* simpleexprnoparens: '+' simpleexpr */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2282 "engines/director/lingo/lingo-gr.cpp"
+#line 2364 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* simpleexprnoparens: '-' simpleexpr */
-#line 438 "engines/director/lingo/lingo-gr.y"
+ case 108: /* simpleexprnoparens: '-' simpleexpr */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2370 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* simpleexprnoparens: tNOT simpleexpr */
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 109: /* simpleexprnoparens: tNOT simpleexpr */
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2294 "engines/director/lingo/lingo-gr.cpp"
+#line 2376 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 440 "engines/director/lingo/lingo-gr.y"
+ case 110: /* simpleexprnoparens: ID '(' exprlist ')' */
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2300 "engines/director/lingo/lingo-gr.cpp"
+#line 2382 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* simpleexprnoparens: ID */
-#line 441 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2306 "engines/director/lingo/lingo-gr.cpp"
+ case 112: /* var: ID */
+#line 458 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new VarNode((yyvsp[0].s)); }
+#line 2388 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* simpleexpr: '(' expr ')' */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 116: /* simpleexpr: '(' expr ')' */
+#line 469 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2312 "engines/director/lingo/lingo-gr.cpp"
+#line 2394 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* expr: simpleexpr */
-#line 448 "engines/director/lingo/lingo-gr.y"
+ case 117: /* expr: simpleexpr */
+#line 472 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2318 "engines/director/lingo/lingo-gr.cpp"
+#line 2400 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* expr: expr '+' expr */
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 118: /* expr: expr '+' expr */
+#line 473 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2324 "engines/director/lingo/lingo-gr.cpp"
+#line 2406 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* expr: expr '-' expr */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 119: /* expr: expr '-' expr */
+#line 474 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2330 "engines/director/lingo/lingo-gr.cpp"
+#line 2412 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* expr: expr '*' expr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 120: /* expr: expr '*' expr */
+#line 475 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2336 "engines/director/lingo/lingo-gr.cpp"
+#line 2418 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* expr: expr '/' expr */
-#line 452 "engines/director/lingo/lingo-gr.y"
+ case 121: /* expr: expr '/' expr */
+#line 476 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2424 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* expr: expr tMOD expr */
-#line 453 "engines/director/lingo/lingo-gr.y"
+ case 122: /* expr: expr tMOD expr */
+#line 477 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2348 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* expr: expr '>' expr */
-#line 454 "engines/director/lingo/lingo-gr.y"
+ case 123: /* expr: expr '>' expr */
+#line 478 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2354 "engines/director/lingo/lingo-gr.cpp"
+#line 2436 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* expr: expr '<' expr */
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 124: /* expr: expr '<' expr */
+#line 479 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2360 "engines/director/lingo/lingo-gr.cpp"
+#line 2442 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* expr: expr tEQ expr */
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 125: /* expr: expr tEQ expr */
+#line 480 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2366 "engines/director/lingo/lingo-gr.cpp"
+#line 2448 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* expr: expr tNEQ expr */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 126: /* expr: expr tNEQ expr */
+#line 481 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2372 "engines/director/lingo/lingo-gr.cpp"
+#line 2454 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* expr: expr tGE expr */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 127: /* expr: expr tGE expr */
+#line 482 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2460 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* expr: expr tLE expr */
-#line 459 "engines/director/lingo/lingo-gr.y"
+ case 128: /* expr: expr tLE expr */
+#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2384 "engines/director/lingo/lingo-gr.cpp"
+#line 2466 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* expr: expr tAND expr */
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 129: /* expr: expr tAND expr */
+#line 484 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2390 "engines/director/lingo/lingo-gr.cpp"
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* expr: expr tOR expr */
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 130: /* expr: expr tOR expr */
+#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2396 "engines/director/lingo/lingo-gr.cpp"
+#line 2478 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* expr: expr '&' expr */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 131: /* expr: expr '&' expr */
+#line 486 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2402 "engines/director/lingo/lingo-gr.cpp"
+#line 2484 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* expr: expr tCONCAT expr */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 132: /* expr: expr tCONCAT expr */
+#line 487 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2408 "engines/director/lingo/lingo-gr.cpp"
+#line 2490 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* expr: expr tCONTAINS expr */
-#line 464 "engines/director/lingo/lingo-gr.y"
+ case 133: /* expr: expr tCONTAINS expr */
+#line 488 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2496 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* expr: expr tSTARTS expr */
-#line 465 "engines/director/lingo/lingo-gr.y"
+ case 134: /* expr: expr tSTARTS expr */
+#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2420 "engines/director/lingo/lingo-gr.cpp"
+#line 2502 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* exprlist: %empty */
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 135: /* exprlist: %empty */
+#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2426 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* nonemptyexprlist: expr */
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 137: /* nonemptyexprlist: expr */
+#line 496 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2435 "engines/director/lingo/lingo-gr.cpp"
+#line 2517 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 138: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 500 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2443 "engines/director/lingo/lingo-gr.cpp"
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2447 "engines/director/lingo/lingo-gr.cpp"
+#line 2529 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2642,7 +2724,7 @@ yyreturn:
return yyresult;
}
-#line 481 "engines/director/lingo/lingo-gr.y"
+#line 505 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 97c8ef2dd7..e8966441d9 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -164,12 +164,15 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<idlist> idlist nonemptyidlist
// STATEMENT
-%type<node> stmt stmtoneliner proc definevars ifstmt ifelsestmt loop
+%type<node> stmt stmtoneliner
+%type<node> proc asgn definevars
+%type<node> ifstmt ifelsestmt loop
%type<nodelist> stmtlist nonemptystmtlist
%type<node> stmtlistline
// EXPRESSION
%type<node> simpleexprnoparens simpleexpr expr
+%type<node> var varorchunk varorthe
%type<nodelist> exprlist nonemptyexprlist
%left tAND tOR
@@ -315,7 +318,7 @@ ID: tVARID
| tPLAYACCEL { $$ = new Common::String("playAccel"); }
| tPREVIOUS { $$ = new Common::String("previous"); }
// | tPROPERTY { $$ = new Common::String("property"); }
- | tPUT { $$ = new Common::String("put"); }
+ // | tPUT { $$ = new Common::String("put"); }
| tREPEAT { $$ = new Common::String("repeat"); }
| tSCRIPT { $$ = new Common::String("script"); }
| tSET { $$ = new Common::String("set"); }
@@ -358,15 +361,26 @@ stmt: stmtoneliner
;
stmtoneliner: proc
+ | asgn
| definevars
;
proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
| ID exprlist[args] '\n' { $$ = new CmdNode($ID, $args); }
+ | tPUT '(' exprlist[args] ')' '\n' { $$ = new CmdNode(new Common::String("put"), $args); }
+ | tPUT exprlist[args] '\n' { $$ = new CmdNode(new Common::String("put"), $args); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
;
+asgn: tPUT expr tINTO varorchunk '\n' { $$ = new PutIntoNode($expr, $varorchunk); }
+ | tPUT expr tAFTER varorchunk '\n' { $$ = new PutAfterNode($expr, $varorchunk); }
+ | tPUT expr tBEFORE varorchunk '\n' { $$ = new PutBeforeNode($expr, $varorchunk); }
+ | tSET varorthe to expr '\n' { $$ = new SetNode($varorthe, $expr); }
+ ;
+
+to: tTO | tEQ ;
+
definevars: tGLOBAL idlist '\n' { $$ = new GlobalNode($idlist); }
| tPROPERTY idlist '\n' { $$ = new PropertyNode($idlist); }
| tINSTANCE idlist '\n' { $$ = new InstanceNode($idlist); }
@@ -438,7 +452,17 @@ simpleexprnoparens: tINT { $$ = new IntNode($tINT); }
| '-' simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_negate, $arg); }
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
| ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
- | ID { $$ = new VarNode($ID); }
+ | var
+ ;
+
+var: ID { $$ = new VarNode($ID); } ;
+
+varorchunk: var
+ // TODO: chunk ref
+ ;
+
+varorthe: var
+ // TODO: the
;
simpleexpr: simpleexprnoparens
Commit: cb7d578a5534f83d6a2da3be7f7800a76e69b0fd
https://github.com/scummvm/scummvm/commit/cb7d578a5534f83d6a2da3be7f7800a76e69b0fd
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix ExprNode superclass
Changed paths:
engines/director/lingo/lingo-ast.h
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 630ed4b845..c15658b9b9 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -499,12 +499,12 @@ struct StringNode : ExprNode {
/* FuncNode */
-struct FuncNode : StmtNode {
+struct FuncNode : ExprNode {
Common::String *name;
NodeList *args;
FuncNode(Common::String *nameIn, NodeList *argsIn)
- : StmtNode(kFuncNode), name(nameIn), args(argsIn) {}
+ : ExprNode(kFuncNode), name(nameIn), args(argsIn) {}
virtual ~FuncNode() {
delete name;
deleteList(args);
Commit: ced5aaeb3f4d8c897413f78cc3042a682a9af243
https://github.com/scummvm/scummvm/commit/ced5aaeb3f4d8c897413f78cc3042a682a9af243
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix symbol token type
Changed paths:
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 63462ed4e2..c850233aa7 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -1100,7 +1100,7 @@ YY_RULE_SETUP
case 2:
YY_RULE_SETUP
#line 115 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
+{ count(); yylval.s = new Common::String(yytext + 1); return tSYMBOL; } // D3, skip '#'
YY_BREAK
case 3:
YY_RULE_SETUP
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index ed3a6d3322..49511cd61a 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -112,7 +112,7 @@ spc [ \t\xC2]
{spc}+ { count(); }
-[#]{identifier} { count(); yylval.s = new Common::String(yytext + 1); return SYMBOL; } // D3, skip '#'
+[#]{identifier} { count(); yylval.s = new Common::String(yytext + 1); return tSYMBOL; } // D3, skip '#'
after { count(); return tAFTER; } // D3
and { count(); return tAND; }
Commit: 38c0d5fddd75aa770689542747620f84954e5ade
https://github.com/scummvm/scummvm/commit/38c0d5fddd75aa770689542747620f84954e5ade
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Switch proplist value and prop order
It's the same order as the original now.
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 6c3c960e3f..594fb9cd89 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -434,8 +434,8 @@ void LC::c_proparraypush() {
d.u.parr = new PropertyArray;
for (int i = 0; i < arraySize; i++) {
- Datum p = g_lingo->pop();
Datum v = g_lingo->pop();
+ Datum p = g_lingo->pop();
PCell cell = PCell(p, v);
d.u.parr->insert_at(0, cell);
Commit: a6cfb4e2757841bfacd3695f624bbee5e543927c
https://github.com/scummvm/scummvm/commit/a6cfb4e2757841bfacd3695f624bbee5e543927c
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement lists
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index c15658b9b9..f39882280a 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -47,6 +47,9 @@ struct IntNode;
struct FloatNode;
struct SymbolNode;
struct StringNode;
+struct ListNode;
+struct PropListNode;
+struct PropPairNode;
struct FuncNode;
struct VarNode;
struct ParensNode;
@@ -88,6 +91,9 @@ enum NodeType {
kFloatNode,
kSymbolNode,
kStringNode,
+ kListNode,
+ kPropListNode,
+ kPropPairNode,
kFuncNode,
kVarNode,
kParensNode,
@@ -123,6 +129,9 @@ public:
virtual void visitFloatNode(FloatNode *node) = 0;
virtual void visitSymbolNode(SymbolNode *node) = 0;
virtual void visitStringNode(StringNode *node) = 0;
+ virtual void visitListNode(ListNode *node) = 0;
+ virtual void visitPropListNode(PropListNode *node) = 0;
+ virtual void visitPropPairNode(PropPairNode *node) = 0;
virtual void visitFuncNode(FuncNode *node) = 0;
virtual void visitVarNode(VarNode *node) = 0;
virtual void visitParensNode(ParensNode *node) = 0;
@@ -497,6 +506,51 @@ struct StringNode : ExprNode {
}
};
+/* ListNode */
+
+struct ListNode : ExprNode {
+ NodeList *items;
+
+ ListNode(NodeList *itemsIn) : ExprNode(kListNode), items(itemsIn) {}
+ virtual ~ListNode() {
+ deleteList(items);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitListNode(this);
+ }
+};
+
+/* PropListNode */
+
+struct PropListNode : ExprNode {
+ NodeList *items;
+
+ PropListNode(NodeList *itemsIn) : ExprNode(kListNode), items(itemsIn) {}
+ virtual ~PropListNode() {
+ deleteList(items);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPropListNode(this);
+ }
+};
+
+/* PropPairNode */
+
+struct PropPairNode : ExprNode {
+ Node *key;
+ Node *val;
+
+ PropPairNode(Node *keyIn, Node *valIn)
+ : ExprNode(kPropPairNode), key(keyIn), val(valIn) {}
+ virtual ~PropPairNode() {
+ delete key;
+ delete val;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitPropPairNode(this);
+ }
+};
+
/* FuncNode */
struct FuncNode : ExprNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 7116267f03..ecce15946e 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -693,6 +693,29 @@ void LingoCompiler::visitStringNode(StringNode *node) {
codeString(node->val->c_str());
}
+/* ListNode */
+
+void LingoCompiler::visitListNode(ListNode *node) {
+ compileList(node->items);
+ code1(LC::c_arraypush);
+ codeInt(node->items->size());
+}
+
+/* PropListNode */
+
+void LingoCompiler::visitPropListNode(PropListNode *node) {
+ compileList(node->items);
+ code1(LC::c_proparraypush);
+ codeInt(node->items->size());
+}
+
+/* PropPairNode */
+
+void LingoCompiler::visitPropPairNode(PropPairNode *node) {
+ compile(node->key);
+ compile(node->val);
+}
+
/* FuncNode */
void LingoCompiler::visitFuncNode(FuncNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index e84efd67ec..a6e73dcc3a 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -98,6 +98,9 @@ public:
virtual void visitFloatNode(FloatNode *node);
virtual void visitSymbolNode(SymbolNode *node);
virtual void visitStringNode(StringNode *node);
+ virtual void visitListNode(ListNode *node);
+ virtual void visitPropListNode(PropListNode *node);
+ virtual void visitPropPairNode(PropPairNode *node);
virtual void visitFuncNode(FuncNode *node);
virtual void visitVarNode(VarNode *node);
virtual void visitParensNode(ParensNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index d816255af9..0c7923eb10 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -242,41 +242,47 @@ enum yysymbol_kind_t
YYSYMBOL_87_ = 87, /* ',' */
YYSYMBOL_88_ = 88, /* '(' */
YYSYMBOL_89_ = 89, /* ')' */
- YYSYMBOL_YYACCEPT = 90, /* $accept */
- YYSYMBOL_script = 91, /* script */
- YYSYMBOL_scriptpartlist = 92, /* scriptpartlist */
- YYSYMBOL_scriptpart = 93, /* scriptpart */
- YYSYMBOL_macro = 94, /* macro */
- YYSYMBOL_factory = 95, /* factory */
- YYSYMBOL_method = 96, /* method */
- YYSYMBOL_methodlist = 97, /* methodlist */
- YYSYMBOL_nonemptymethodlist = 98, /* nonemptymethodlist */
- YYSYMBOL_methodlistline = 99, /* methodlistline */
- YYSYMBOL_handler = 100, /* handler */
- YYSYMBOL_endargdef = 101, /* endargdef */
- YYSYMBOL_ID = 102, /* ID */
- YYSYMBOL_idlist = 103, /* idlist */
- YYSYMBOL_nonemptyidlist = 104, /* nonemptyidlist */
- YYSYMBOL_stmt = 105, /* stmt */
- YYSYMBOL_stmtoneliner = 106, /* stmtoneliner */
- YYSYMBOL_proc = 107, /* proc */
- YYSYMBOL_asgn = 108, /* asgn */
- YYSYMBOL_to = 109, /* to */
- YYSYMBOL_definevars = 110, /* definevars */
- YYSYMBOL_ifstmt = 111, /* ifstmt */
- YYSYMBOL_ifelsestmt = 112, /* ifelsestmt */
- YYSYMBOL_loop = 113, /* loop */
- YYSYMBOL_stmtlist = 114, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 115, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 116, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 117, /* simpleexprnoparens */
- YYSYMBOL_var = 118, /* var */
- YYSYMBOL_varorchunk = 119, /* varorchunk */
- YYSYMBOL_varorthe = 120, /* varorthe */
- YYSYMBOL_simpleexpr = 121, /* simpleexpr */
- YYSYMBOL_expr = 122, /* expr */
- YYSYMBOL_exprlist = 123, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 124 /* nonemptyexprlist */
+ YYSYMBOL_90_ = 90, /* '[' */
+ YYSYMBOL_91_ = 91, /* ']' */
+ YYSYMBOL_92_ = 92, /* ':' */
+ YYSYMBOL_YYACCEPT = 93, /* $accept */
+ YYSYMBOL_script = 94, /* script */
+ YYSYMBOL_scriptpartlist = 95, /* scriptpartlist */
+ YYSYMBOL_scriptpart = 96, /* scriptpart */
+ YYSYMBOL_macro = 97, /* macro */
+ YYSYMBOL_factory = 98, /* factory */
+ YYSYMBOL_method = 99, /* method */
+ YYSYMBOL_methodlist = 100, /* methodlist */
+ YYSYMBOL_nonemptymethodlist = 101, /* nonemptymethodlist */
+ YYSYMBOL_methodlistline = 102, /* methodlistline */
+ YYSYMBOL_handler = 103, /* handler */
+ YYSYMBOL_endargdef = 104, /* endargdef */
+ YYSYMBOL_ID = 105, /* ID */
+ YYSYMBOL_idlist = 106, /* idlist */
+ YYSYMBOL_nonemptyidlist = 107, /* nonemptyidlist */
+ YYSYMBOL_stmt = 108, /* stmt */
+ YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
+ YYSYMBOL_proc = 110, /* proc */
+ YYSYMBOL_asgn = 111, /* asgn */
+ YYSYMBOL_to = 112, /* to */
+ YYSYMBOL_definevars = 113, /* definevars */
+ YYSYMBOL_ifstmt = 114, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 115, /* ifelsestmt */
+ YYSYMBOL_loop = 116, /* loop */
+ YYSYMBOL_stmtlist = 117, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 118, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 119, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 120, /* simpleexprnoparens */
+ YYSYMBOL_var = 121, /* var */
+ YYSYMBOL_varorchunk = 122, /* varorchunk */
+ YYSYMBOL_varorthe = 123, /* varorthe */
+ YYSYMBOL_simpleexpr = 124, /* simpleexpr */
+ YYSYMBOL_list = 125, /* list */
+ YYSYMBOL_proplist = 126, /* proplist */
+ YYSYMBOL_proppair = 127, /* proppair */
+ YYSYMBOL_expr = 128, /* expr */
+ YYSYMBOL_exprlist = 129, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 130 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -393,7 +399,7 @@ typedef int yytype_uint16;
/* Stored state numbers (used for stacks). */
-typedef yytype_uint8 yy_state_t;
+typedef yytype_int16 yy_state_t;
/* State numbers in computations. */
typedef int yy_state_fast_t;
@@ -596,18 +602,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 99
+#define YYFINAL 101
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1520
+#define YYLAST 1688
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 90
+#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 35
+#define YYNNTS 38
/* YYNRULES -- Number of rules. */
-#define YYNRULES 138
+#define YYNRULES 147
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 248
+#define YYNSTATES 271
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -629,11 +635,11 @@ static const yytype_int8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 85, 80, 2,
88, 89, 83, 81, 87, 82, 2, 84, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 92, 2,
78, 2, 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,
+ 2, 90, 2, 91, 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,
@@ -664,20 +670,21 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 193, 193, 195, 201, 208, 209, 210, 211, 212,
- 241, 245, 247, 249, 250, 253, 259, 266, 267, 272,
- 276, 280, 281, 282, 287, 288, 289, 290, 291, 292,
- 293, 296, 298, 301, 303, 304, 305, 306, 309, 310,
- 311, 312, 313, 315, 316, 317, 318, 319, 322, 323,
- 324, 325, 326, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 339, 340, 343, 347, 357, 358, 359, 360,
- 363, 364, 365, 368, 369, 370, 371, 372, 373, 376,
- 377, 378, 379, 382, 382, 384, 385, 386, 389, 393,
- 397, 403, 407, 411, 415, 417, 419, 423, 424, 428,
- 434, 441, 442, 447, 448, 449, 450, 451, 452, 453,
- 454, 455, 458, 460, 464, 468, 469, 472, 473, 474,
- 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
- 485, 486, 487, 488, 489, 492, 493, 496, 500
+ 0, 194, 194, 196, 202, 209, 210, 211, 212, 213,
+ 242, 246, 248, 250, 251, 254, 260, 267, 268, 273,
+ 277, 281, 282, 283, 288, 289, 290, 291, 292, 293,
+ 294, 297, 299, 302, 304, 305, 306, 307, 310, 311,
+ 312, 313, 314, 316, 317, 318, 319, 320, 323, 324,
+ 325, 326, 327, 329, 330, 331, 332, 333, 334, 335,
+ 336, 337, 340, 341, 344, 348, 358, 359, 360, 361,
+ 364, 365, 366, 369, 370, 371, 372, 373, 374, 377,
+ 378, 379, 380, 383, 383, 385, 386, 387, 390, 394,
+ 398, 404, 408, 412, 416, 418, 420, 424, 425, 429,
+ 435, 442, 443, 448, 449, 450, 451, 452, 453, 454,
+ 455, 456, 457, 460, 462, 466, 470, 471, 474, 475,
+ 476, 479, 483, 488, 489, 490, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
+ 507, 508, 509, 510, 513, 514, 517, 521
};
#endif
@@ -707,14 +714,14 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
"tPROPERTY", "tON", "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL",
"tASSERTERROR", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'",
- "'\\n'", "','", "'('", "')'", "$accept", "script", "scriptpartlist",
- "scriptpart", "macro", "factory", "method", "methodlist",
- "nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
- "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "asgn", "to",
- "definevars", "ifstmt", "ifelsestmt", "loop", "stmtlist",
- "nonemptystmtlist", "stmtlistline", "simpleexprnoparens", "var",
- "varorchunk", "varorthe", "simpleexpr", "expr", "exprlist",
- "nonemptyexprlist", YY_NULLPTR
+ "'\\n'", "','", "'('", "')'", "'['", "']'", "':'", "$accept", "script",
+ "scriptpartlist", "scriptpart", "macro", "factory", "method",
+ "methodlist", "nonemptymethodlist", "methodlistline", "handler",
+ "endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
+ "proc", "asgn", "to", "definevars", "ifstmt", "ifelsestmt", "loop",
+ "stmtlist", "nonemptystmtlist", "stmtlistline", "simpleexprnoparens",
+ "var", "varorchunk", "varorthe", "simpleexpr", "list", "proplist",
+ "proppair", "expr", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -733,11 +740,12 @@ static const yytype_int16 yytoknum[] =
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 60, 62,
- 38, 43, 45, 42, 47, 37, 10, 44, 40, 41
+ 38, 43, 45, 42, 47, 37, 10, 44, 40, 41,
+ 91, 93, 58
};
#endif
-#define YYPACT_NINF (-167)
+#define YYPACT_NINF (-183)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -751,31 +759,34 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 500, -167, -167, -167, -167, -167, -167, -167, -32, 1240,
- 281, -167, -167, 1240, -167, -24, -167, -167, 360, -34,
- 1240, -167, -167, -167, -167, 1240, -167, -167, 1240, -167,
- -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
- -167, -167, -167, -167, 1240, 1240, -167, -167, 12, 500,
- -167, -167, -167, -167, 430, -167, -167, -167, -167, -167,
- -167, -167, -167, -59, -167, -167, -167, -167, -167, -54,
- -47, -167, -167, -167, -167, 281, 281, 281, 281, -50,
- -167, -167, -167, 1270, 1240, -45, 281, 42, -44, -40,
- 1240, 281, -167, -167, -26, -38, -36, -33, 1240, -167,
- -167, 281, 1423, -31, -167, -167, 1240, -167, -167, -167,
- 1283, 281, 998, 281, 281, 281, 281, 281, 281, 281,
- 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
- -28, -167, 1283, -29, 1240, 1240, 1240, -167, 281, 11,
- 1323, -167, -167, 281, -65, -167, -167, -22, -21, -167,
- -167, -167, -20, 1059, 41, 103, 103, 103, 103, 1436,
- 1436, -167, -1, 103, 103, 103, 103, -1, -53, -53,
- -167, -167, 1059, -14, -167, -11, -9, -8, 1423, 281,
- 1059, 1336, 1240, -167, -167, 1, -167, -167, 1059, 3,
- -167, -167, -167, 561, -167, -167, 1120, 1059, -167, -167,
- -167, -167, 87, 623, -167, 1240, -65, 691, -167, 1181,
- 5, -167, 1059, -167, 43, 281, 19, 21, -167, 1240,
- 1059, -167, -167, 752, 281, 1373, -167, 1059, -68, -167,
- 814, 22, 1386, 1059, 1059, -167, 1240, 23, -167, 1059,
- 876, -167, -167, 937, 25, 27, -167, -167
+ 618, -183, -183, -183, -183, -183, -183, -183, -21, 1417,
+ 388, -183, -183, 1417, -183, -15, -183, -183, 467, 3,
+ 1417, -183, -183, -183, -183, 1417, -183, -183, 1417, -183,
+ -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+ -183, -183, -183, -183, 1417, 1417, -183, -183, 4, 618,
+ -183, -183, -183, -183, 546, -183, -183, -183, -183, -183,
+ -183, -183, -183, -74, -183, -183, -183, -183, -183, -59,
+ -58, -183, -183, -183, -183, 388, 388, 388, 388, 307,
+ -53, -183, -183, -183, -183, 96, 1417, -48, 388, 1438,
+ -43, -32, 1417, 388, -183, -183, -26, -34, -22, -20,
+ 1417, -183, -183, 388, 1591, -19, -183, -183, 1417, -183,
+ -183, -183, 1451, -23, -14, -10, -77, -68, -183, -9,
+ 388, 1116, 388, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, -16,
+ -183, 1451, -24, 1417, 1417, 1417, -183, 388, 20, 1491,
+ -183, -183, 388, -65, -183, -183, -2, -12, -183, -183,
+ -183, 388, 388, -183, 388, 1358, -183, -183, -4, 1177,
+ 64, 58, 58, 58, 58, 1604, 1604, -183, -50, 58,
+ 58, 58, 58, -50, -47, -47, -183, -183, 1177, 5,
+ -183, 9, 11, 12, 1591, 388, 1177, 1504, 1417, -183,
+ -183, 13, -183, -183, 1177, 15, 1591, 1591, 1591, -23,
+ -14, -3, -183, -183, -183, -183, 679, -183, -183, 1238,
+ 1177, -183, -183, -183, -183, 52, 741, -183, 1417, -65,
+ 809, -183, 1299, 24, -183, 1177, -183, 48, 388, 25,
+ 30, -183, 1417, 1177, -183, -183, 870, 388, 1541, -183,
+ 1177, -29, -183, 932, 31, 1554, 1177, 1177, -183, 1417,
+ 33, -183, 1177, 994, -183, -183, 1055, 34, 36, -183,
+ -183
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -784,290 +795,327 @@ static const yytype_int16 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 24, 46, 28, 32, 49, 58, 30, 31, 62,
- 0, 33, 35, 0, 39, 40, 42, 47, 135, 48,
+ 0, 33, 35, 0, 39, 40, 42, 47, 144, 48,
50, 53, 56, 59, 57, 0, 43, 45, 62, 26,
44, 41, 38, 25, 27, 51, 29, 36, 37, 61,
55, 34, 60, 52, 62, 0, 54, 5, 0, 2,
- 3, 6, 7, 8, 135, 9, 66, 70, 71, 72,
+ 3, 6, 7, 8, 144, 9, 66, 70, 71, 72,
67, 68, 69, 0, 31, 40, 48, 50, 64, 0,
- 63, 103, 104, 106, 105, 41, 0, 0, 0, 112,
- 115, 111, 117, 0, 62, 0, 135, 137, 0, 136,
- 0, 0, 112, 114, 0, 0, 0, 0, 62, 1,
- 4, 135, 137, 0, 78, 85, 0, 109, 107, 108,
- 0, 135, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 103, 104, 106, 105, 41, 0, 0, 0, 144,
+ 113, 116, 111, 126, 112, 0, 62, 0, 144, 146,
+ 0, 145, 0, 0, 113, 115, 0, 0, 0, 0,
+ 62, 1, 4, 144, 146, 0, 78, 85, 0, 109,
+ 107, 108, 0, 106, 105, 0, 113, 0, 121, 0,
+ 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 77, 137, 0, 0, 0, 0, 76, 0, 0,
- 0, 83, 84, 0, 13, 87, 86, 0, 0, 74,
- 65, 116, 0, 97, 88, 127, 128, 125, 126, 129,
- 130, 122, 132, 133, 134, 124, 123, 131, 118, 119,
- 120, 121, 97, 0, 113, 0, 0, 0, 138, 0,
- 97, 0, 0, 17, 18, 11, 14, 15, 97, 0,
- 110, 101, 102, 0, 98, 99, 0, 10, 75, 79,
- 80, 81, 0, 0, 82, 62, 0, 20, 73, 0,
- 0, 100, 97, 90, 0, 0, 0, 0, 16, 21,
- 97, 92, 89, 0, 0, 0, 94, 97, 0, 22,
- 0, 0, 0, 97, 12, 19, 0, 0, 91, 97,
- 0, 23, 93, 0, 0, 0, 95, 96
+ 77, 146, 0, 0, 0, 0, 76, 0, 0, 0,
+ 83, 84, 0, 13, 87, 86, 0, 0, 74, 65,
+ 117, 0, 0, 119, 0, 0, 120, 118, 0, 97,
+ 88, 136, 137, 134, 135, 138, 139, 131, 141, 142,
+ 143, 133, 132, 140, 127, 128, 129, 130, 97, 0,
+ 114, 0, 0, 0, 147, 0, 97, 0, 0, 17,
+ 18, 11, 14, 15, 97, 0, 125, 123, 124, 0,
+ 0, 0, 122, 110, 101, 102, 0, 98, 99, 0,
+ 10, 75, 79, 80, 81, 0, 0, 82, 62, 0,
+ 20, 73, 0, 0, 100, 97, 90, 0, 0, 0,
+ 0, 16, 21, 97, 92, 89, 0, 0, 0, 94,
+ 97, 0, 22, 0, 0, 0, 97, 12, 19, 0,
+ 0, 91, 97, 0, 23, 93, 0, 0, 0, 95,
+ 96
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -167, -167, -167, 37, -167, -167, -167, -167, -167, -118,
- -167, -167, 0, -27, -167, 2, -167, -167, -167, -167,
- -167, -167, -167, -167, -166, -167, -164, -167, -17, -112,
- -167, -41, 140, -49, -167
+ -183, -183, -183, 75, -183, -183, -183, -183, -183, -104,
+ -183, -183, 0, -27, -183, 2, -183, -183, -183, -183,
+ -183, -183, -183, -183, -182, -183, -170, -183, -17, -82,
+ -183, -35, -183, -183, -36, 145, -49, -183
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_uint8 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 184, 185, 186, 187,
- 53, 228, 79, 69, 70, 192, 56, 57, 58, 143,
- 59, 60, 61, 62, 193, 194, 195, 80, 81, 175,
- 94, 82, 102, 88, 89
+ 0, 48, 49, 50, 51, 52, 200, 201, 202, 203,
+ 53, 251, 80, 69, 70, 215, 56, 57, 58, 152,
+ 59, 60, 61, 62, 216, 217, 218, 81, 82, 191,
+ 96, 83, 84, 117, 118, 104, 90, 91
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_uint8 yytable[] =
+static const yytype_int16 yytable[] =
{
- 54, 96, 55, 93, 119, 103, 197, 63, 182, 68,
- 90, 91, 99, 84, 203, 85, 141, 97, 235, 236,
- 92, 183, 207, 176, 177, 95, 142, 104, 68, 211,
- 128, 129, 105, 211, 107, 108, 109, 133, 111, 211,
- 106, 131, 137, 211, 68, 98, 223, 138, 144, 54,
- 145, 55, 148, 146, 230, 149, 119, 130, 172, 211,
- 173, 234, 152, 179, 188, 196, 211, 240, 189, 190,
- 211, 147, 198, 243, 134, 199, 211, 200, 201, 211,
- 126, 127, 128, 129, 68, 224, 100, 206, 218, 208,
- 139, 222, 113, 114, 115, 116, 117, 118, 68, 119,
- 135, 136, 120, 121, 122, 226, 150, 227, 238, 242,
- 214, 246, 54, 247, 154, 0, 0, 174, 174, 174,
- 123, 124, 125, 126, 127, 128, 129, 0, 0, 215,
- 0, 0, 0, 0, 92, 92, 92, 113, 114, 115,
- 116, 117, 118, 0, 119, 0, 0, 120, 121, 122,
- 83, 0, 0, 54, 0, 0, 0, 0, 87, 0,
- 119, 0, 0, 120, 0, 123, 124, 125, 126, 127,
- 128, 129, 54, 0, 0, 0, 0, 0, 217, 0,
- 54, 0, 205, 125, 126, 127, 128, 129, 54, 0,
- 0, 0, 0, 54, 0, 0, 54, 54, 213, 0,
- 0, 0, 0, 54, 0, 68, 0, 54, 0, 54,
- 0, 221, 54, 0, 0, 0, 0, 0, 110, 229,
- 54, 0, 0, 54, 0, 0, 132, 54, 0, 0,
- 54, 140, 0, 54, 54, 0, 241, 0, 0, 54,
- 54, 132, 0, 54, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 0, 0, 0, 0, 0, 0, 0, 0, 178, 0,
- 0, 0, 0, 181, 0, 0, 71, 0, 0, 0,
- 0, 72, 0, 0, 1, 73, 74, 0, 2, 0,
- 3, 4, 5, 6, 7, 0, 0, 64, 0, 0,
- 0, 0, 11, 12, 0, 14, 65, 16, 17, 202,
- 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
- 0, 0, 0, 0, 0, 29, 30, 75, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 0, 0, 0, 225, 0, 0, 46, 0,
- 0, 0, 76, 77, 232, 71, 0, 0, 0, 78,
- 72, 0, 0, 1, 73, 74, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 64, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
- 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 71, 0, 46, 0, 0,
- 72, 76, 77, 1, 73, 74, 0, 2, 86, 3,
- 4, 5, 6, 7, 0, 0, 64, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
- 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 76, 77, 1, 0, 0, 0, 2, 101, 3,
- 4, 5, 6, 7, 0, 0, 8, 9, 0, 0,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 0, 21, 22, 23, 24, 25, 26, 27, 28,
- 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 1, 0, 0, 46, 2, 0,
- 3, 4, 5, 6, 7, 209, 47, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 210, 1, 0, 46, 0,
- 2, 0, 3, 4, 5, 6, 7, 191, 0, 8,
- 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 0, 216, 0,
- 46, 0, 0, 0, 1, 0, 0, 219, 2, 191,
- 3, 4, 5, 6, 7, 0, 0, 8, 9, 0,
+ 54, 98, 55, 95, 101, 105, 220, 128, 198, 68,
+ 128, 120, 106, 86, 226, 164, 150, 99, 63, 165,
+ 94, 199, 230, 166, 87, 97, 151, 107, 68, 108,
+ 119, 135, 136, 137, 138, 120, 137, 138, 140, 142,
+ 109, 110, 111, 146, 68, 100, 234, 92, 93, 54,
+ 234, 55, 153, 246, 157, 147, 234, 258, 259, 139,
+ 234, 253, 192, 193, 154, 189, 155, 158, 257, 161,
+ 188, 168, 195, 156, 263, 237, 234, 205, 162, 116,
+ 266, 163, 167, 234, 204, 213, 68, 234, 219, 164,
+ 247, 221, 148, 234, 238, 222, 234, 223, 224, 229,
+ 68, 231, 122, 123, 124, 125, 126, 127, 159, 128,
+ 245, 249, 129, 130, 131, 128, 250, 261, 129, 265,
+ 269, 54, 270, 170, 102, 241, 190, 190, 190, 212,
+ 132, 133, 134, 135, 136, 137, 138, 121, 134, 135,
+ 136, 137, 138, 94, 94, 94, 122, 123, 124, 125,
+ 126, 127, 0, 128, 0, 85, 129, 130, 131, 0,
+ 0, 0, 0, 89, 0, 211, 0, 0, 0, 54,
+ 0, 0, 0, 0, 132, 133, 134, 135, 136, 137,
+ 138, 0, 0, 0, 0, 0, 0, 0, 54, 0,
+ 0, 0, 0, 0, 0, 0, 54, 0, 228, 0,
+ 0, 240, 0, 0, 54, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 54, 0, 0, 54,
+ 54, 236, 0, 112, 0, 0, 54, 0, 68, 0,
+ 54, 0, 54, 141, 244, 54, 0, 0, 149, 0,
+ 0, 0, 252, 54, 0, 0, 54, 0, 141, 0,
+ 54, 0, 0, 54, 0, 0, 54, 54, 0, 264,
+ 0, 0, 54, 54, 0, 0, 54, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 0, 0, 0, 0, 0, 0,
+ 0, 0, 194, 0, 0, 0, 0, 197, 0, 0,
+ 0, 0, 0, 0, 0, 0, 206, 207, 0, 208,
+ 0, 0, 71, 0, 0, 0, 0, 72, 0, 0,
+ 1, 113, 114, 0, 2, 0, 3, 4, 5, 6,
+ 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 225, 14, 65, 16, 17, 0, 66, 67, 0, 21,
+ 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
+ 0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
+ 0, 0, 0, 248, 46, 0, 0, 0, 76, 77,
+ 0, 0, 255, 71, 0, 78, 0, 79, 72, 115,
+ 0, 1, 73, 74, 0, 2, 0, 3, 4, 5,
+ 6, 7, 0, 0, 64, 0, 0, 0, 0, 11,
+ 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
+ 21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
+ 0, 0, 29, 30, 75, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
+ 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
+ 77, 0, 71, 0, 0, 0, 78, 72, 79, 0,
+ 1, 73, 74, 0, 2, 0, 3, 4, 5, 6,
+ 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
+ 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
+ 0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 0, 76, 77,
+ 0, 71, 0, 0, 0, 88, 72, 79, 0, 1,
+ 73, 74, 0, 2, 0, 3, 4, 5, 6, 7,
+ 0, 0, 64, 0, 0, 0, 0, 11, 12, 0,
+ 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
+ 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
+ 29, 30, 75, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 0, 0, 46, 0, 0, 0, 76, 77, 0,
+ 0, 1, 0, 0, 103, 2, 79, 3, 4, 5,
+ 6, 7, 0, 0, 8, 9, 0, 0, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 0,
+ 21, 22, 23, 24, 25, 26, 27, 28, 0, 0,
+ 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 0, 1, 0, 0, 46, 2, 0, 3, 4,
+ 5, 6, 7, 232, 47, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 233, 1, 0, 46, 0, 2, 0,
+ 3, 4, 5, 6, 7, 214, 0, 8, 9, 0,
0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
- 0, 3, 4, 5, 6, 7, 0, 191, 8, 9,
+ 42, 43, 44, 0, 0, 0, 239, 0, 46, 0,
+ 0, 0, 1, 0, 0, 242, 2, 214, 3, 4,
+ 5, 6, 7, 0, 0, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 1, 0, 0, 46, 2, 0, 3,
+ 4, 5, 6, 7, 0, 214, 8, 9, 0, 0,
+ 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
+ 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
+ 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 254, 1, 0, 46, 0, 2,
+ 0, 3, 4, 5, 6, 7, 214, 0, 8, 9,
0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 231, 1, 0, 46,
- 0, 2, 0, 3, 4, 5, 6, 7, 191, 0,
+ 41, 42, 43, 44, 0, 0, 260, 1, 0, 46,
+ 0, 2, 0, 3, 4, 5, 6, 7, 214, 0,
8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 237, 1,
- 0, 46, 0, 2, 0, 3, 4, 5, 6, 7,
- 191, 0, 8, 9, 0, 0, 10, 11, 12, 0,
+ 39, 40, 41, 42, 43, 44, 0, 0, 1, 267,
+ 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
+ 214, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
+ 268, 0, 46, 2, 0, 3, 4, 5, 6, 7,
+ 0, 214, 8, 9, 0, 0, 10, 11, 12, 0,
14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 1, 244, 0, 46, 2, 0, 3, 4, 5, 6,
- 7, 0, 191, 8, 9, 0, 0, 10, 11, 12,
+ 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
+ 7, 0, 169, 8, 9, 0, 0, 10, 11, 12,
0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 1, 245, 0, 46, 2, 0, 3, 4, 5,
- 6, 7, 0, 191, 8, 9, 0, 0, 10, 11,
+ 0, 1, 0, 0, 46, 2, 0, 3, 4, 5,
+ 6, 7, 0, 214, 8, 9, 0, 0, 10, 11,
12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
0, 0, 1, 0, 0, 46, 2, 0, 3, 4,
- 5, 6, 7, 0, 153, 8, 9, 0, 0, 10,
+ 5, 6, 7, 0, 235, 8, 9, 0, 0, 10,
11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 1, 0, 0, 46, 2, 0, 3,
- 4, 5, 6, 7, 0, 191, 8, 9, 0, 0,
- 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
- 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
- 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 1, 0, 0, 46, 2, 0,
- 3, 4, 5, 6, 7, 0, 212, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 1, 0, 0, 0, 2, 46, 3,
- 4, 5, 6, 7, 0, 0, 64, 220, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 27, 0,
- 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 112, 0, 0, 0, 0, 0, 46, 0, 0,
- 113, 114, 115, 116, 117, 118, 0, 119, 0, 0,
- 120, 121, 122, 113, 114, 115, 116, 117, 118, 0,
- 119, 0, 0, 120, 121, 122, 0, 0, 123, 124,
- 125, 126, 127, 128, 129, 0, 0, 0, 0, 0,
- 0, 123, 124, 125, 126, 127, 128, 129, 0, 0,
- 0, 0, 151, 113, 114, 115, 116, 117, 118, 0,
- 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
- 117, 118, 0, 119, 0, 0, 120, 121, 122, 0,
- 0, 123, 124, 125, 126, 127, 128, 129, 0, 180,
- 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
- 129, 0, 204, 113, 114, 115, 116, 117, 118, 0,
- 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
- 117, 118, 0, 119, 0, 0, 120, 121, 122, 0,
- 0, 123, 124, 125, 126, 127, 128, 129, 0, 233,
- 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
- 129, 0, 239, 113, 114, 115, 116, 117, 118, 0,
- 119, 0, 0, 120, 121, 122, 113, 114, 115, 116,
- 0, 0, 0, 119, 0, 0, 120, 121, 122, 0,
- 0, 123, 124, 125, 126, 127, 128, 129, 0, 0,
- 0, 0, 0, 0, 123, 124, 125, 126, 127, 128,
- 129
+ 44, 1, 209, 210, 0, 2, 46, 3, 4, 5,
+ 6, 7, 0, 0, 64, 243, 0, 0, 0, 11,
+ 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
+ 21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
+ 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
+ 1, 0, 0, 0, 2, 46, 3, 4, 5, 6,
+ 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
+ 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
+ 143, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 122, 123,
+ 124, 125, 126, 127, 46, 128, 144, 145, 129, 130,
+ 131, 122, 123, 124, 125, 126, 127, 0, 128, 0,
+ 0, 129, 130, 131, 0, 0, 132, 133, 134, 135,
+ 136, 137, 138, 0, 0, 0, 0, 0, 0, 132,
+ 133, 134, 135, 136, 137, 138, 0, 0, 0, 0,
+ 160, 122, 123, 124, 125, 126, 127, 0, 128, 0,
+ 0, 129, 130, 131, 122, 123, 124, 125, 126, 127,
+ 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
+ 133, 134, 135, 136, 137, 138, 0, 196, 0, 0,
+ 0, 0, 132, 133, 134, 135, 136, 137, 138, 0,
+ 227, 122, 123, 124, 125, 126, 127, 0, 128, 0,
+ 0, 129, 130, 131, 122, 123, 124, 125, 126, 127,
+ 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
+ 133, 134, 135, 136, 137, 138, 0, 256, 0, 0,
+ 0, 0, 132, 133, 134, 135, 136, 137, 138, 0,
+ 262, 122, 123, 124, 125, 126, 127, 0, 128, 0,
+ 0, 129, 130, 131, 122, 123, 124, 125, 0, 0,
+ 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
+ 133, 134, 135, 136, 137, 138, 0, 0, 0, 0,
+ 0, 0, 132, 133, 134, 135, 136, 137, 138
};
static const yytype_int16 yycheck[] =
{
- 0, 28, 0, 20, 57, 54, 172, 39, 73, 9,
- 44, 45, 0, 13, 180, 39, 42, 44, 86, 87,
- 20, 86, 188, 135, 136, 25, 52, 86, 28, 193,
- 83, 84, 86, 197, 75, 76, 77, 86, 88, 203,
- 87, 86, 86, 207, 44, 45, 212, 87, 86, 49,
- 86, 49, 101, 86, 220, 86, 57, 84, 86, 223,
- 89, 227, 111, 52, 86, 24, 230, 233, 89, 89,
- 234, 98, 86, 239, 32, 86, 240, 86, 86, 243,
- 81, 82, 83, 84, 84, 42, 49, 86, 206, 86,
- 90, 86, 50, 51, 52, 53, 54, 55, 98, 57,
- 58, 59, 60, 61, 62, 86, 106, 86, 86, 86,
- 23, 86, 112, 86, 112, -1, -1, 134, 135, 136,
- 78, 79, 80, 81, 82, 83, 84, -1, -1, 42,
- -1, -1, -1, -1, 134, 135, 136, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 10, -1, -1, 153, -1, -1, -1, -1, 18, -1,
- 57, -1, -1, 60, -1, 78, 79, 80, 81, 82,
- 83, 84, 172, -1, -1, -1, -1, -1, 205, -1,
- 180, -1, 182, 80, 81, 82, 83, 84, 188, -1,
- -1, -1, -1, 193, -1, -1, 196, 197, 196, -1,
- -1, -1, -1, 203, -1, 205, -1, 207, -1, 209,
- -1, 209, 212, -1, -1, -1, -1, -1, 78, 219,
- 220, -1, -1, 223, -1, -1, 86, 227, -1, -1,
- 230, 91, -1, 233, 234, -1, 236, -1, -1, 239,
- 240, 101, -1, 243, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- -1, -1, -1, -1, -1, -1, -1, -1, 138, -1,
- -1, -1, -1, 143, -1, -1, 5, -1, -1, -1,
- -1, 10, -1, -1, 13, 14, 15, -1, 17, -1,
- 19, 20, 21, 22, 23, -1, -1, 26, -1, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, 179,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, 215, -1, -1, 77, -1,
- -1, -1, 81, 82, 224, 5, -1, -1, -1, 88,
- 10, -1, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, 26, -1, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, 5, -1, 77, -1, -1,
- 10, 81, 82, 13, 14, 15, -1, 17, 88, 19,
- 20, 21, 22, 23, -1, -1, 26, -1, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, 81, 82, 13, -1, -1, -1, 17, 88, 19,
- 20, 21, 22, 23, -1, -1, 26, 27, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, 46, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, -1, 13, -1, -1, 77, 17, -1,
- 19, 20, 21, 22, 23, 24, 86, 26, 27, -1,
- -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 74, 13, -1, 77, -1,
- 17, -1, 19, 20, 21, 22, 23, 86, -1, 26,
- 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, -1, 75, -1,
- 77, -1, -1, -1, 13, -1, -1, 16, 17, 86,
- 19, 20, 21, 22, 23, -1, -1, 26, 27, -1,
+ 0, 28, 0, 20, 0, 54, 188, 57, 73, 9,
+ 57, 88, 86, 13, 196, 92, 42, 44, 39, 87,
+ 20, 86, 204, 91, 39, 25, 52, 86, 28, 87,
+ 79, 81, 82, 83, 84, 88, 83, 84, 86, 88,
+ 75, 76, 77, 86, 44, 45, 216, 44, 45, 49,
+ 220, 49, 86, 235, 103, 87, 226, 86, 87, 86,
+ 230, 243, 144, 145, 86, 89, 86, 86, 250, 92,
+ 86, 120, 52, 100, 256, 23, 246, 89, 92, 79,
+ 262, 91, 91, 253, 86, 89, 86, 257, 24, 92,
+ 42, 86, 92, 263, 42, 86, 266, 86, 86, 86,
+ 100, 86, 50, 51, 52, 53, 54, 55, 108, 57,
+ 86, 86, 60, 61, 62, 57, 86, 86, 60, 86,
+ 86, 121, 86, 121, 49, 229, 143, 144, 145, 165,
+ 78, 79, 80, 81, 82, 83, 84, 41, 80, 81,
+ 82, 83, 84, 143, 144, 145, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, 10, 60, 61, 62, -1,
+ -1, -1, -1, 18, -1, 165, -1, -1, -1, 169,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, -1, -1, -1, -1, -1, 188, -1,
+ -1, -1, -1, -1, -1, -1, 196, -1, 198, -1,
+ -1, 228, -1, -1, 204, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 216, -1, -1, 219,
+ 220, 219, -1, 78, -1, -1, 226, -1, 228, -1,
+ 230, -1, 232, 88, 232, 235, -1, -1, 93, -1,
+ -1, -1, 242, 243, -1, -1, 246, -1, 103, -1,
+ 250, -1, -1, 253, -1, -1, 256, 257, -1, 259,
+ -1, -1, 262, 263, -1, -1, 266, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, -1, -1, -1, -1, -1, -1,
+ -1, -1, 147, -1, -1, -1, -1, 152, -1, -1,
+ -1, -1, -1, -1, -1, -1, 161, 162, -1, 164,
+ -1, -1, 5, -1, -1, -1, -1, 10, -1, -1,
+ 13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
+ 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ 195, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, 238, 77, -1, -1, -1, 81, 82,
+ -1, -1, 247, 5, -1, 88, -1, 90, 10, 92,
+ -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
+ 22, 23, -1, -1, 26, -1, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
+ 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
+ 13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
+ 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
+ -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
+ -1, 13, -1, -1, 88, 17, 90, 19, 20, 21,
+ 22, 23, -1, -1, 26, 27, -1, -1, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, 46, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, -1, 13, -1, -1, 77, 17, -1, 19, 20,
+ 21, 22, 23, 24, 86, 26, 27, -1, -1, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 74, 13, -1, 77, -1, 17, -1,
+ 19, 20, 21, 22, 23, 86, -1, 26, 27, -1,
-1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ 69, 70, 71, -1, -1, -1, 75, -1, 77, -1,
+ -1, -1, 13, -1, -1, 16, 17, 86, 19, 20,
+ 21, 22, 23, -1, -1, 26, 27, -1, -1, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 13, -1, -1, 77, 17, -1, 19,
+ 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 74, 13, -1, 77, -1, 17,
+ -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
-1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
@@ -1078,20 +1126,26 @@ static const yytype_int16 yycheck[] =
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
-1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
- -1, 77, -1, 17, -1, 19, 20, 21, 22, 23,
- 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, 75,
+ -1, 77, 17, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ 75, -1, 77, 17, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, 75, -1, 77, 17, -1, 19, 20, 21, 22,
+ 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, 75, -1, 77, 17, -1, 19, 20, 21,
+ -1, 13, -1, -1, 77, 17, -1, 19, 20, 21,
22, 23, -1, 86, 26, 27, -1, -1, 30, 31,
32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
@@ -1103,96 +1157,92 @@ static const yytype_int16 yycheck[] =
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, -1, -1, 77, 17, -1, 19,
- 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, -1, -1, 77, 17, -1,
- 19, 20, 21, 22, 23, -1, 86, 26, 27, -1,
- -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 13, -1, -1, -1, 17, 77, 19,
- 20, 21, 22, 23, -1, -1, 26, 86, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 41, -1, -1, -1, -1, -1, 77, -1, -1,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, -1, -1, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, 89, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- -1, -1, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84
+ 71, 13, 14, 15, -1, 17, 77, 19, 20, 21,
+ 22, 23, -1, -1, 26, 86, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 13, -1, -1, -1, 17, 77, 19, 20, 21, 22,
+ 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
+ 32, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 50, 51,
+ 52, 53, 54, 55, 77, 57, 58, 59, 60, 61,
+ 62, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, -1, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
+ 89, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, 50, 51, 52, 53, -1, -1,
+ -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const yytype_int8 yystos[] =
+static const yytype_uint8 yystos[] =
{
0, 13, 17, 19, 20, 21, 22, 23, 26, 27,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 42, 43, 44, 45, 46, 47, 48, 49, 54,
55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 77, 86, 91, 92,
- 93, 94, 95, 100, 102, 105, 106, 107, 108, 110,
- 111, 112, 113, 39, 26, 35, 39, 40, 102, 103,
- 104, 5, 10, 14, 15, 56, 81, 82, 88, 102,
- 117, 118, 121, 122, 102, 39, 88, 122, 123, 124,
- 44, 45, 102, 118, 120, 102, 103, 103, 102, 0,
- 93, 88, 122, 123, 86, 86, 87, 121, 121, 121,
- 122, 88, 41, 50, 51, 52, 53, 54, 55, 57,
- 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
- 103, 86, 122, 123, 32, 58, 59, 86, 87, 102,
- 122, 42, 52, 109, 86, 86, 86, 103, 123, 86,
- 102, 89, 123, 86, 105, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 86, 89, 118, 119, 119, 119, 122, 52,
- 86, 122, 73, 86, 96, 97, 98, 99, 86, 89,
- 89, 86, 105, 114, 115, 116, 24, 114, 86, 86,
- 86, 86, 122, 114, 86, 102, 86, 114, 86, 24,
- 74, 116, 86, 105, 23, 42, 75, 103, 99, 16,
- 86, 105, 86, 114, 42, 122, 86, 86, 101, 102,
- 114, 74, 122, 86, 114, 86, 87, 74, 86, 86,
- 114, 102, 86, 114, 75, 75, 86, 86
+ 67, 68, 69, 70, 71, 72, 77, 86, 94, 95,
+ 96, 97, 98, 103, 105, 108, 109, 110, 111, 113,
+ 114, 115, 116, 39, 26, 35, 39, 40, 105, 106,
+ 107, 5, 10, 14, 15, 56, 81, 82, 88, 90,
+ 105, 120, 121, 124, 125, 128, 105, 39, 88, 128,
+ 129, 130, 44, 45, 105, 121, 123, 105, 106, 106,
+ 105, 0, 96, 88, 128, 129, 86, 86, 87, 124,
+ 124, 124, 128, 14, 15, 92, 105, 126, 127, 129,
+ 88, 41, 50, 51, 52, 53, 54, 55, 57, 60,
+ 61, 62, 78, 79, 80, 81, 82, 83, 84, 106,
+ 86, 128, 129, 32, 58, 59, 86, 87, 105, 128,
+ 42, 52, 112, 86, 86, 86, 106, 129, 86, 105,
+ 89, 92, 92, 91, 92, 87, 91, 91, 129, 86,
+ 108, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128, 86, 89,
+ 121, 122, 122, 122, 128, 52, 86, 128, 73, 86,
+ 99, 100, 101, 102, 86, 89, 128, 128, 128, 14,
+ 15, 105, 127, 89, 86, 108, 117, 118, 119, 24,
+ 117, 86, 86, 86, 86, 128, 117, 86, 105, 86,
+ 117, 86, 24, 74, 119, 86, 108, 23, 42, 75,
+ 106, 102, 16, 86, 108, 86, 117, 42, 128, 86,
+ 86, 104, 105, 117, 74, 128, 86, 117, 86, 87,
+ 74, 86, 86, 117, 105, 86, 117, 75, 75, 86,
+ 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_int8 yyr1[] =
+static const yytype_uint8 yyr1[] =
{
- 0, 90, 91, 92, 92, 93, 93, 93, 93, 93,
- 94, 95, 96, 97, 97, 98, 98, 99, 99, 100,
- 100, 101, 101, 101, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 103, 103, 104, 104, 105, 105, 105, 105,
- 106, 106, 106, 107, 107, 107, 107, 107, 107, 108,
- 108, 108, 108, 109, 109, 110, 110, 110, 111, 111,
- 112, 112, 112, 112, 113, 113, 113, 114, 114, 115,
- 115, 116, 116, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 118, 119, 120, 121, 121, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 123, 123, 124, 124
+ 0, 93, 94, 95, 95, 96, 96, 96, 96, 96,
+ 97, 98, 99, 100, 100, 101, 101, 102, 102, 103,
+ 103, 104, 104, 104, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 105, 106, 106, 107, 107, 108, 108, 108, 108,
+ 109, 109, 109, 110, 110, 110, 110, 110, 110, 111,
+ 111, 111, 111, 112, 112, 113, 113, 113, 114, 114,
+ 115, 115, 115, 115, 116, 116, 116, 117, 117, 118,
+ 118, 119, 119, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 121, 122, 123, 124, 124, 125, 125,
+ 125, 126, 126, 127, 127, 127, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 129, 129, 130, 130
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1209,9 +1259,10 @@ static const yytype_int8 yyr2[] =
5, 5, 5, 1, 1, 3, 3, 3, 4, 7,
6, 9, 7, 10, 7, 11, 12, 0, 1, 1,
2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 4, 1, 1, 1, 1, 1, 3, 1, 3, 3,
+ 4, 1, 1, 1, 1, 1, 1, 3, 3, 3,
+ 3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 0, 1, 1, 3
+ 3, 3, 3, 3, 0, 1, 1, 3
};
@@ -1483,51 +1534,51 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1489 "engines/director/lingo/lingo-gr.cpp"
+#line 1540 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1495 "engines/director/lingo/lingo-gr.cpp"
+#line 1546 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1501 "engines/director/lingo/lingo-gr.cpp"
+#line 1552 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1507 "engines/director/lingo/lingo-gr.cpp"
+#line 1558 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1513 "engines/director/lingo/lingo-gr.cpp"
+#line 1564 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1519 "engines/director/lingo/lingo-gr.cpp"
+#line 1570 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1525 "engines/director/lingo/lingo-gr.cpp"
+#line 1576 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 187 "engines/director/lingo/lingo-gr.y"
+#line 188 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1531 "engines/director/lingo/lingo-gr.cpp"
+#line 1582 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1793,739 +1844,792 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 193 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1799 "engines/director/lingo/lingo-gr.cpp"
+#line 1850 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 196 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1810 "engines/director/lingo/lingo-gr.cpp"
+#line 1861 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 201 "engines/director/lingo/lingo-gr.y"
+#line 202 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1820 "engines/director/lingo/lingo-gr.cpp"
+#line 1871 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 208 "engines/director/lingo/lingo-gr.y"
+#line 209 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1826 "engines/director/lingo/lingo-gr.cpp"
+#line 1877 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 241 "engines/director/lingo/lingo-gr.y"
+#line 242 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1832 "engines/director/lingo/lingo-gr.cpp"
+#line 1883 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 245 "engines/director/lingo/lingo-gr.y"
+#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1838 "engines/director/lingo/lingo-gr.cpp"
+#line 1889 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 247 "engines/director/lingo/lingo-gr.y"
+#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1844 "engines/director/lingo/lingo-gr.cpp"
+#line 1895 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 249 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1850 "engines/director/lingo/lingo-gr.cpp"
+#line 1901 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 253 "engines/director/lingo/lingo-gr.y"
+#line 254 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1861 "engines/director/lingo/lingo-gr.cpp"
+#line 1912 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 259 "engines/director/lingo/lingo-gr.y"
+#line 260 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1871 "engines/director/lingo/lingo-gr.cpp"
+#line 1922 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 266 "engines/director/lingo/lingo-gr.y"
+#line 267 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1877 "engines/director/lingo/lingo-gr.cpp"
+#line 1928 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 272 "engines/director/lingo/lingo-gr.y"
+#line 273 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1886 "engines/director/lingo/lingo-gr.cpp"
+#line 1937 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 276 "engines/director/lingo/lingo-gr.y"
+#line 277 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1893 "engines/director/lingo/lingo-gr.cpp"
+#line 1944 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 281 "engines/director/lingo/lingo-gr.y"
+#line 282 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1899 "engines/director/lingo/lingo-gr.cpp"
+#line 1950 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 282 "engines/director/lingo/lingo-gr.y"
+#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1905 "engines/director/lingo/lingo-gr.cpp"
+#line 1956 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
-#line 288 "engines/director/lingo/lingo-gr.y"
+#line 289 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1911 "engines/director/lingo/lingo-gr.cpp"
+#line 1962 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
-#line 289 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1917 "engines/director/lingo/lingo-gr.cpp"
+#line 1968 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
-#line 290 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1923 "engines/director/lingo/lingo-gr.cpp"
+#line 1974 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
-#line 291 "engines/director/lingo/lingo-gr.y"
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1929 "engines/director/lingo/lingo-gr.cpp"
+#line 1980 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1935 "engines/director/lingo/lingo-gr.cpp"
+#line 1986 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1941 "engines/director/lingo/lingo-gr.cpp"
+#line 1992 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tEXIT */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 1947 "engines/director/lingo/lingo-gr.cpp"
+#line 1998 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFIELD */
-#line 298 "engines/director/lingo/lingo-gr.y"
+#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1953 "engines/director/lingo/lingo-gr.cpp"
+#line 2004 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 1959 "engines/director/lingo/lingo-gr.cpp"
+#line 2010 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 1965 "engines/director/lingo/lingo-gr.cpp"
+#line 2016 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 1971 "engines/director/lingo/lingo-gr.cpp"
+#line 2022 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 1977 "engines/director/lingo/lingo-gr.cpp"
+#line 2028 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 1983 "engines/director/lingo/lingo-gr.cpp"
+#line 2034 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 2040 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2046 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2052 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2058 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2064 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 2070 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 2076 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAY */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2031 "engines/director/lingo/lingo-gr.cpp"
+#line 2082 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPLAYACCEL */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 2037 "engines/director/lingo/lingo-gr.cpp"
+#line 2088 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tPREVIOUS */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 2094 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tREPEAT */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 2100 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSCRIPT */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2055 "engines/director/lingo/lingo-gr.cpp"
+#line 2106 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSET */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 2112 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tSTARTS */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2067 "engines/director/lingo/lingo-gr.cpp"
+#line 2118 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tTELL */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2073 "engines/director/lingo/lingo-gr.cpp"
+#line 2124 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tTO */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2079 "engines/director/lingo/lingo-gr.cpp"
+#line 2130 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tASSERTERROR */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2085 "engines/director/lingo/lingo-gr.cpp"
+#line 2136 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tSPRITE */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2091 "engines/director/lingo/lingo-gr.cpp"
+#line 2142 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWHEN */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2097 "engines/director/lingo/lingo-gr.cpp"
+#line 2148 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWHILE */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2103 "engines/director/lingo/lingo-gr.cpp"
+#line 2154 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWINDOW */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2109 "engines/director/lingo/lingo-gr.cpp"
+#line 2160 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWITH */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2115 "engines/director/lingo/lingo-gr.cpp"
+#line 2166 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWITHIN */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2121 "engines/director/lingo/lingo-gr.cpp"
+#line 2172 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tWORD */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2127 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* idlist: %empty */
-#line 339 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2133 "engines/director/lingo/lingo-gr.cpp"
+#line 2184 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* nonemptyidlist: ID */
-#line 343 "engines/director/lingo/lingo-gr.y"
+#line 344 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2193 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 347 "engines/director/lingo/lingo-gr.y"
+#line 348 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2150 "engines/director/lingo/lingo-gr.cpp"
+#line 2201 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: ID '(' exprlist ')' '\n' */
-#line 368 "engines/director/lingo/lingo-gr.y"
+#line 369 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 2156 "engines/director/lingo/lingo-gr.cpp"
+#line 2207 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: ID exprlist '\n' */
-#line 369 "engines/director/lingo/lingo-gr.y"
+#line 370 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2162 "engines/director/lingo/lingo-gr.cpp"
+#line 2213 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* proc: tPUT '(' exprlist ')' '\n' */
-#line 370 "engines/director/lingo/lingo-gr.y"
+#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-2].nodelist)); }
-#line 2168 "engines/director/lingo/lingo-gr.cpp"
+#line 2219 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* proc: tPUT exprlist '\n' */
-#line 371 "engines/director/lingo/lingo-gr.y"
+#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2174 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* proc: tNEXT tREPEAT '\n' */
-#line 372 "engines/director/lingo/lingo-gr.y"
+#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2180 "engines/director/lingo/lingo-gr.cpp"
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* proc: tEXIT tREPEAT '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 376 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2192 "engines/director/lingo/lingo-gr.cpp"
+#line 2243 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2249 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2204 "engines/director/lingo/lingo-gr.cpp"
+#line 2255 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* asgn: tSET varorthe to expr '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2210 "engines/director/lingo/lingo-gr.cpp"
+#line 2261 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* definevars: tGLOBAL idlist '\n' */
-#line 384 "engines/director/lingo/lingo-gr.y"
+#line 385 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2216 "engines/director/lingo/lingo-gr.cpp"
+#line 2267 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* definevars: tPROPERTY idlist '\n' */
-#line 385 "engines/director/lingo/lingo-gr.y"
+#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2222 "engines/director/lingo/lingo-gr.cpp"
+#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* definevars: tINSTANCE idlist '\n' */
-#line 386 "engines/director/lingo/lingo-gr.y"
+#line 387 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2228 "engines/director/lingo/lingo-gr.cpp"
+#line 2279 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ifstmt: tIF expr tTHEN stmt */
-#line 389 "engines/director/lingo/lingo-gr.y"
+#line 390 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
+#line 2288 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 393 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2244 "engines/director/lingo/lingo-gr.cpp"
+#line 2295 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2255 "engines/director/lingo/lingo-gr.cpp"
+#line 2306 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 404 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2315 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 407 "engines/director/lingo/lingo-gr.y"
+#line 408 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2273 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 411 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2280 "engines/director/lingo/lingo-gr.cpp"
+#line 2331 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 415 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2287 "engines/director/lingo/lingo-gr.cpp"
+#line 2338 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 417 "engines/director/lingo/lingo-gr.y"
+#line 418 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2294 "engines/director/lingo/lingo-gr.cpp"
+#line 2345 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 419 "engines/director/lingo/lingo-gr.y"
+#line 420 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2301 "engines/director/lingo/lingo-gr.cpp"
+#line 2352 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* stmtlist: %empty */
-#line 423 "engines/director/lingo/lingo-gr.y"
+#line 424 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2307 "engines/director/lingo/lingo-gr.cpp"
+#line 2358 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptystmtlist: stmtlistline */
-#line 428 "engines/director/lingo/lingo-gr.y"
+#line 429 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2318 "engines/director/lingo/lingo-gr.cpp"
+#line 2369 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 434 "engines/director/lingo/lingo-gr.y"
+#line 435 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2328 "engines/director/lingo/lingo-gr.cpp"
+#line 2379 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmtlistline: '\n' */
-#line 441 "engines/director/lingo/lingo-gr.y"
+#line 442 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2385 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* simpleexprnoparens: tINT */
-#line 447 "engines/director/lingo/lingo-gr.y"
+#line 448 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2340 "engines/director/lingo/lingo-gr.cpp"
+#line 2391 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* simpleexprnoparens: tFLOAT */
-#line 448 "engines/director/lingo/lingo-gr.y"
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2346 "engines/director/lingo/lingo-gr.cpp"
+#line 2397 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* simpleexprnoparens: tSYMBOL */
-#line 449 "engines/director/lingo/lingo-gr.y"
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2352 "engines/director/lingo/lingo-gr.cpp"
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* simpleexprnoparens: tSTRING */
-#line 450 "engines/director/lingo/lingo-gr.y"
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2358 "engines/director/lingo/lingo-gr.cpp"
+#line 2409 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* simpleexprnoparens: '+' simpleexpr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2364 "engines/director/lingo/lingo-gr.cpp"
+#line 2415 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* simpleexprnoparens: '-' simpleexpr */
-#line 452 "engines/director/lingo/lingo-gr.y"
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2370 "engines/director/lingo/lingo-gr.cpp"
+#line 2421 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* simpleexprnoparens: tNOT simpleexpr */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2376 "engines/director/lingo/lingo-gr.cpp"
+#line 2427 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 454 "engines/director/lingo/lingo-gr.y"
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2382 "engines/director/lingo/lingo-gr.cpp"
+#line 2433 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* var: ID */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 113: /* var: ID */
+#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2388 "engines/director/lingo/lingo-gr.cpp"
+#line 2439 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* simpleexpr: '(' expr ')' */
-#line 469 "engines/director/lingo/lingo-gr.y"
+ case 117: /* simpleexpr: '(' expr ')' */
+#line 471 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2394 "engines/director/lingo/lingo-gr.cpp"
+#line 2445 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* expr: simpleexpr */
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 118: /* list: '[' exprlist ']' */
+#line 474 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
+#line 2451 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 119: /* list: '[' ':' ']' */
+#line 475 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropListNode(new NodeList); }
+#line 2457 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 120: /* list: '[' proplist ']' */
+#line 476 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
+#line 2463 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 121: /* proplist: proppair */
+#line 479 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *list = new NodeList;
+ list->push_back((yyvsp[0].node));
+ (yyval.nodelist) = list; }
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 122: /* proplist: proplist ',' proppair */
+#line 483 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
+ (yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 123: /* proppair: tSYMBOL ':' expr */
+#line 488 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+#line 2486 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 124: /* proppair: ID ':' expr */
+#line 489 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+#line 2492 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 125: /* proppair: tSTRING ':' expr */
+#line 490 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+#line 2498 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 126: /* expr: simpleexpr */
+#line 493 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2400 "engines/director/lingo/lingo-gr.cpp"
+#line 2504 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* expr: expr '+' expr */
-#line 473 "engines/director/lingo/lingo-gr.y"
+ case 127: /* expr: expr '+' expr */
+#line 494 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2406 "engines/director/lingo/lingo-gr.cpp"
+#line 2510 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* expr: expr '-' expr */
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 128: /* expr: expr '-' expr */
+#line 495 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2412 "engines/director/lingo/lingo-gr.cpp"
+#line 2516 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* expr: expr '*' expr */
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 129: /* expr: expr '*' expr */
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2418 "engines/director/lingo/lingo-gr.cpp"
+#line 2522 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* expr: expr '/' expr */
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 130: /* expr: expr '/' expr */
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2424 "engines/director/lingo/lingo-gr.cpp"
+#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* expr: expr tMOD expr */
-#line 477 "engines/director/lingo/lingo-gr.y"
+ case 131: /* expr: expr tMOD expr */
+#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+#line 2534 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* expr: expr '>' expr */
-#line 478 "engines/director/lingo/lingo-gr.y"
+ case 132: /* expr: expr '>' expr */
+#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2436 "engines/director/lingo/lingo-gr.cpp"
+#line 2540 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* expr: expr '<' expr */
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 133: /* expr: expr '<' expr */
+#line 500 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2442 "engines/director/lingo/lingo-gr.cpp"
+#line 2546 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* expr: expr tEQ expr */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 134: /* expr: expr tEQ expr */
+#line 501 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2448 "engines/director/lingo/lingo-gr.cpp"
+#line 2552 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* expr: expr tNEQ expr */
-#line 481 "engines/director/lingo/lingo-gr.y"
+ case 135: /* expr: expr tNEQ expr */
+#line 502 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2454 "engines/director/lingo/lingo-gr.cpp"
+#line 2558 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* expr: expr tGE expr */
-#line 482 "engines/director/lingo/lingo-gr.y"
+ case 136: /* expr: expr tGE expr */
+#line 503 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2460 "engines/director/lingo/lingo-gr.cpp"
+#line 2564 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* expr: expr tLE expr */
-#line 483 "engines/director/lingo/lingo-gr.y"
+ case 137: /* expr: expr tLE expr */
+#line 504 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2466 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* expr: expr tAND expr */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 138: /* expr: expr tAND expr */
+#line 505 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2472 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* expr: expr tOR expr */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 139: /* expr: expr tOR expr */
+#line 506 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2478 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* expr: expr '&' expr */
-#line 486 "engines/director/lingo/lingo-gr.y"
+ case 140: /* expr: expr '&' expr */
+#line 507 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2484 "engines/director/lingo/lingo-gr.cpp"
+#line 2588 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* expr: expr tCONCAT expr */
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 141: /* expr: expr tCONCAT expr */
+#line 508 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2490 "engines/director/lingo/lingo-gr.cpp"
+#line 2594 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* expr: expr tCONTAINS expr */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 142: /* expr: expr tCONTAINS expr */
+#line 509 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2496 "engines/director/lingo/lingo-gr.cpp"
+#line 2600 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* expr: expr tSTARTS expr */
-#line 489 "engines/director/lingo/lingo-gr.y"
+ case 143: /* expr: expr tSTARTS expr */
+#line 510 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2502 "engines/director/lingo/lingo-gr.cpp"
+#line 2606 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* exprlist: %empty */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 144: /* exprlist: %empty */
+#line 513 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2612 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* nonemptyexprlist: expr */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 146: /* nonemptyexprlist: expr */
+#line 517 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 500 "engines/director/lingo/lingo-gr.y"
+ case 147: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 521 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2629 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2529 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2724,7 +2828,7 @@ yyreturn:
return yyresult;
}
-#line 505 "engines/director/lingo/lingo-gr.y"
+#line 526 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index e8966441d9..52ce924d55 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -173,7 +173,8 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// EXPRESSION
%type<node> simpleexprnoparens simpleexpr expr
%type<node> var varorchunk varorthe
-%type<nodelist> exprlist nonemptyexprlist
+%type<node> list proppair
+%type<nodelist> proplist exprlist nonemptyexprlist
%left tAND tOR
%left '<' tLE '>' tGE tEQ tNEQ tCONTAINS tSTARTS
@@ -453,6 +454,7 @@ simpleexprnoparens: tINT { $$ = new IntNode($tINT); }
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
| ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
| var
+ | list
;
var: ID { $$ = new VarNode($ID); } ;
@@ -469,6 +471,25 @@ simpleexpr: simpleexprnoparens
| '(' expr ')' { $$ = $expr; }
;
+list: '[' exprlist ']' { $$ = new ListNode($exprlist); }
+ | '[' ':' ']' { $$ = new PropListNode(new NodeList); }
+ | '[' proplist ']' { $$ = new PropListNode($proplist); }
+ ;
+
+proplist: proppair[item] {
+ NodeList *list = new NodeList;
+ list->push_back($item);
+ $$ = list; }
+ | proplist[prev] ',' proppair[item] {
+ $prev->push_back($item);
+ $$ = $prev; }
+ ;
+
+proppair: tSYMBOL ':' expr { $$ = new PropPairNode(new SymbolNode($tSYMBOL), $expr); }
+ | ID ':' expr { $$ = new PropPairNode(new SymbolNode($ID), $expr); }
+ | tSTRING ':' expr { $$ = new PropPairNode(new StringNode($tSTRING), $expr); }
+ ;
+
expr: simpleexpr { $$ = $simpleexpr; }
| expr[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
| expr[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
Commit: 7649e2d44c2edf561fbeedbfb2df4d2ce5edb0f1
https://github.com/scummvm/scummvm/commit/7649e2d44c2edf561fbeedbfb2df4d2ce5edb0f1
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement exit
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index f39882280a..bc1635acc5 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -43,6 +43,7 @@ struct RepeatWhileNode;
struct RepeatWithToNode;
struct NextRepeatNode;
struct ExitRepeatNode;
+struct ExitNode;
struct IntNode;
struct FloatNode;
struct SymbolNode;
@@ -87,6 +88,7 @@ enum NodeType {
kRepeatWithToNode,
kNextRepeatNode,
kExitRepeatNode,
+ kExitNode,
kIntNode,
kFloatNode,
kSymbolNode,
@@ -125,6 +127,7 @@ public:
virtual void visitRepeatWithToNode(RepeatWithToNode *node) = 0;
virtual void visitNextRepeatNode(NextRepeatNode *node) = 0;
virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
+ virtual void visitExitNode(ExitNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
virtual void visitSymbolNode(SymbolNode *node) = 0;
@@ -454,6 +457,16 @@ struct ExitRepeatNode : StmtNode {
}
};
+/* ExitNode */
+
+struct ExitNode : StmtNode {
+ ExitNode() : StmtNode(kExitNode) {}
+ virtual ~ExitNode() {}
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitExitNode(this);
+ }
+};
+
/* IntNode */
struct IntNode : ExprNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index ecce15946e..c5db7e3a95 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -665,6 +665,12 @@ void LingoCompiler::visitExitRepeatNode(ExitRepeatNode *node) {
}
}
+/* ExitNode */
+
+void LingoCompiler::visitExitNode(ExitNode *node) {
+ code1(LC::c_procret);
+}
+
/* IntNode */
void LingoCompiler::visitIntNode(IntNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index a6e73dcc3a..193359741f 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -94,6 +94,7 @@ public:
virtual void visitRepeatWithToNode(RepeatWithToNode *node);
virtual void visitNextRepeatNode(NextRepeatNode *node);
virtual void visitExitRepeatNode(ExitRepeatNode *node);
+ virtual void visitExitNode(ExitNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
virtual void visitSymbolNode(SymbolNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 0c7923eb10..69af1d1294 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -673,18 +673,18 @@ static const yytype_int16 yyrline[] =
0, 194, 194, 196, 202, 209, 210, 211, 212, 213,
242, 246, 248, 250, 251, 254, 260, 267, 268, 273,
277, 281, 282, 283, 288, 289, 290, 291, 292, 293,
- 294, 297, 299, 302, 304, 305, 306, 307, 310, 311,
- 312, 313, 314, 316, 317, 318, 319, 320, 323, 324,
- 325, 326, 327, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 340, 341, 344, 348, 358, 359, 360, 361,
- 364, 365, 366, 369, 370, 371, 372, 373, 374, 377,
- 378, 379, 380, 383, 383, 385, 386, 387, 390, 394,
- 398, 404, 408, 412, 416, 418, 420, 424, 425, 429,
- 435, 442, 443, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 460, 462, 466, 470, 471, 474, 475,
- 476, 479, 483, 488, 489, 490, 493, 494, 495, 496,
- 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
- 507, 508, 509, 510, 513, 514, 517, 521
+ 294, 299, 302, 304, 305, 306, 307, 310, 311, 312,
+ 313, 314, 316, 317, 318, 319, 320, 323, 324, 325,
+ 326, 327, 329, 330, 331, 332, 333, 334, 335, 336,
+ 337, 340, 341, 344, 348, 358, 359, 360, 361, 364,
+ 365, 366, 369, 370, 371, 372, 373, 374, 375, 378,
+ 379, 380, 381, 384, 384, 386, 387, 388, 391, 395,
+ 399, 405, 409, 413, 417, 419, 421, 425, 426, 430,
+ 436, 443, 444, 449, 450, 451, 452, 453, 454, 455,
+ 456, 457, 458, 461, 463, 467, 471, 472, 475, 476,
+ 477, 480, 484, 489, 490, 491, 494, 495, 496, 497,
+ 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
+ 508, 509, 510, 511, 514, 515, 518, 522
};
#endif
@@ -759,33 +759,33 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 618, -183, -183, -183, -183, -183, -183, -183, -21, 1417,
- 388, -183, -183, 1417, -183, -15, -183, -183, 467, 3,
+ 618, -183, -183, -183, -183, -183, -183, -183, -31, 1417,
+ 388, -183, -183, 1417, -183, -21, -183, -183, 467, 3,
1417, -183, -183, -183, -183, 1417, -183, -183, 1417, -183,
-183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-183, -183, -183, -183, 1417, 1417, -183, -183, 4, 618,
-183, -183, -183, -183, 546, -183, -183, -183, -183, -183,
- -183, -183, -183, -74, -183, -183, -183, -183, -183, -59,
+ -183, -183, -183, -74, -183, -183, -183, -183, -183, -65,
-58, -183, -183, -183, -183, 388, 388, 388, 388, 307,
-53, -183, -183, -183, -183, 96, 1417, -48, 388, 1438,
- -43, -32, 1417, 388, -183, -183, -26, -34, -22, -20,
- 1417, -183, -183, 388, 1591, -19, -183, -183, 1417, -183,
- -183, -183, 1451, -23, -14, -10, -77, -68, -183, -9,
+ -43, -23, 1417, 388, -183, -183, -26, -34, -20, -19,
+ 1417, -183, -183, 388, 1591, -16, -183, -183, 1417, -183,
+ -183, -183, 1451, -15, -14, -22, -73, -64, -183, -10,
388, 1116, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, -16,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, -4,
-183, 1451, -24, 1417, 1417, 1417, -183, 388, 20, 1491,
- -183, -183, 388, -65, -183, -183, -2, -12, -183, -183,
- -183, 388, 388, -183, 388, 1358, -183, -183, -4, 1177,
- 64, 58, 58, 58, 58, 1604, 1604, -183, -50, 58,
+ -183, -183, 388, -62, -183, -183, -2, -1, -183, -183,
+ -183, 388, 388, -183, 388, 1358, -183, -183, 1, 1177,
+ 61, 58, 58, 58, 58, 1604, 1604, -183, -50, 58,
58, 58, 58, -50, -47, -47, -183, -183, 1177, 5,
-183, 9, 11, 12, 1591, 388, 1177, 1504, 1417, -183,
- -183, 13, -183, -183, 1177, 15, 1591, 1591, 1591, -23,
+ -183, 13, -183, -183, 1177, 15, 1591, 1591, 1591, -15,
-14, -3, -183, -183, -183, -183, 679, -183, -183, 1238,
- 1177, -183, -183, -183, -183, 52, 741, -183, 1417, -65,
- 809, -183, 1299, 24, -183, 1177, -183, 48, 388, 25,
- 30, -183, 1417, 1177, -183, -183, 870, 388, 1541, -183,
- 1177, -29, -183, 932, 31, 1554, 1177, 1177, -183, 1417,
- 33, -183, 1177, 994, -183, -183, 1055, 34, 36, -183,
+ 1177, -183, -183, -183, -183, 52, 741, -183, 1417, -62,
+ 809, -183, 1299, 24, -183, 1177, -183, 69, 388, 30,
+ 31, -183, 1417, 1177, -183, -183, 870, 388, 1541, -183,
+ 1177, -29, -183, 932, 33, 1554, 1177, 1177, -183, 1417,
+ 34, -183, 1177, 994, -183, -183, 1055, 36, 38, -183,
-183
};
@@ -794,30 +794,30 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 24, 46, 28, 32, 49, 58, 30, 31, 62,
- 0, 33, 35, 0, 39, 40, 42, 47, 144, 48,
- 50, 53, 56, 59, 57, 0, 43, 45, 62, 26,
- 44, 41, 38, 25, 27, 51, 29, 36, 37, 61,
- 55, 34, 60, 52, 62, 0, 54, 5, 0, 2,
- 3, 6, 7, 8, 144, 9, 66, 70, 71, 72,
- 67, 68, 69, 0, 31, 40, 48, 50, 64, 0,
- 63, 103, 104, 106, 105, 41, 0, 0, 0, 144,
- 113, 116, 111, 126, 112, 0, 62, 0, 144, 146,
+ 0, 24, 45, 28, 31, 48, 57, 30, 0, 61,
+ 0, 32, 34, 0, 38, 39, 41, 46, 144, 47,
+ 49, 52, 55, 58, 56, 0, 42, 44, 61, 26,
+ 43, 40, 37, 25, 27, 50, 29, 35, 36, 60,
+ 54, 33, 59, 51, 61, 0, 53, 5, 0, 2,
+ 3, 6, 7, 8, 144, 9, 65, 69, 70, 71,
+ 66, 67, 68, 0, 78, 39, 47, 49, 63, 0,
+ 62, 103, 104, 106, 105, 40, 0, 0, 0, 144,
+ 113, 116, 111, 126, 112, 0, 61, 0, 144, 146,
0, 145, 0, 0, 113, 115, 0, 0, 0, 0,
- 62, 1, 4, 144, 146, 0, 78, 85, 0, 109,
+ 61, 1, 4, 144, 146, 0, 77, 85, 0, 109,
107, 108, 0, 106, 105, 0, 113, 0, 121, 0,
144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77, 146, 0, 0, 0, 0, 76, 0, 0, 0,
- 83, 84, 0, 13, 87, 86, 0, 0, 74, 65,
+ 76, 146, 0, 0, 0, 0, 75, 0, 0, 0,
+ 83, 84, 0, 13, 87, 86, 0, 0, 73, 64,
117, 0, 0, 119, 0, 0, 120, 118, 0, 97,
88, 136, 137, 134, 135, 138, 139, 131, 141, 142,
143, 133, 132, 140, 127, 128, 129, 130, 97, 0,
114, 0, 0, 0, 147, 0, 97, 0, 0, 17,
18, 11, 14, 15, 97, 0, 125, 123, 124, 0,
0, 0, 122, 110, 101, 102, 0, 98, 99, 0,
- 10, 75, 79, 80, 81, 0, 0, 82, 62, 0,
- 20, 73, 0, 0, 100, 97, 90, 0, 0, 0,
+ 10, 74, 79, 80, 81, 0, 0, 82, 61, 0,
+ 20, 72, 0, 0, 100, 97, 90, 0, 0, 0,
0, 16, 21, 97, 92, 89, 0, 0, 0, 94,
97, 0, 22, 0, 0, 0, 97, 12, 19, 0,
0, 91, 97, 0, 23, 93, 0, 0, 0, 95,
@@ -827,10 +827,10 @@ static const yytype_uint8 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -183, -183, -183, 75, -183, -183, -183, -183, -183, -104,
+ -183, -183, -183, 76, -183, -183, -183, -183, -183, -100,
-183, -183, 0, -27, -183, 2, -183, -183, -183, -183,
-183, -183, -183, -183, -182, -183, -170, -183, -17, -82,
- -183, -35, -183, -183, -36, 145, -49, -183
+ -183, -35, -183, -183, -13, 145, -49, -183
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -847,22 +847,22 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 54, 98, 55, 95, 101, 105, 220, 128, 198, 68,
- 128, 120, 106, 86, 226, 164, 150, 99, 63, 165,
- 94, 199, 230, 166, 87, 97, 151, 107, 68, 108,
+ 54, 98, 55, 95, 101, 105, 220, 128, 63, 68,
+ 128, 198, 106, 86, 226, 120, 150, 99, 87, 164,
+ 94, 107, 230, 165, 199, 97, 151, 166, 68, 108,
119, 135, 136, 137, 138, 120, 137, 138, 140, 142,
109, 110, 111, 146, 68, 100, 234, 92, 93, 54,
- 234, 55, 153, 246, 157, 147, 234, 258, 259, 139,
- 234, 253, 192, 193, 154, 189, 155, 158, 257, 161,
- 188, 168, 195, 156, 263, 237, 234, 205, 162, 116,
- 266, 163, 167, 234, 204, 213, 68, 234, 219, 164,
- 247, 221, 148, 234, 238, 222, 234, 223, 224, 229,
+ 234, 55, 153, 246, 157, 64, 234, 258, 259, 139,
+ 234, 253, 192, 193, 147, 189, 154, 155, 257, 163,
+ 158, 168, 195, 156, 263, 237, 234, 161, 162, 116,
+ 266, 167, 188, 234, 204, 219, 68, 234, 205, 164,
+ 213, 221, 148, 234, 238, 222, 234, 223, 224, 229,
68, 231, 122, 123, 124, 125, 126, 127, 159, 128,
- 245, 249, 129, 130, 131, 128, 250, 261, 129, 265,
- 269, 54, 270, 170, 102, 241, 190, 190, 190, 212,
+ 245, 247, 129, 130, 131, 128, 249, 250, 129, 261,
+ 265, 54, 269, 170, 270, 102, 190, 190, 190, 241,
132, 133, 134, 135, 136, 137, 138, 121, 134, 135,
136, 137, 138, 94, 94, 94, 122, 123, 124, 125,
- 126, 127, 0, 128, 0, 85, 129, 130, 131, 0,
+ 126, 127, 212, 128, 0, 85, 129, 130, 131, 0,
0, 0, 0, 89, 0, 211, 0, 0, 0, 54,
0, 0, 0, 0, 132, 133, 134, 135, 136, 137,
138, 0, 0, 0, 0, 0, 0, 0, 54, 0,
@@ -880,7 +880,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 206, 207, 0, 208,
0, 0, 71, 0, 0, 0, 0, 72, 0, 0,
1, 113, 114, 0, 2, 0, 3, 4, 5, 6,
- 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
225, 14, 65, 16, 17, 0, 66, 67, 0, 21,
22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
@@ -888,7 +888,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 248, 46, 0, 0, 0, 76, 77,
0, 0, 255, 71, 0, 78, 0, 79, 72, 115,
0, 1, 73, 74, 0, 2, 0, 3, 4, 5,
- 6, 7, 0, 0, 64, 0, 0, 0, 0, 11,
+ 6, 7, 0, 0, 0, 0, 0, 0, 0, 11,
12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
0, 0, 29, 30, 75, 32, 33, 34, 0, 0,
@@ -896,7 +896,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
77, 0, 71, 0, 0, 0, 78, 72, 79, 0,
1, 73, 74, 0, 2, 0, 3, 4, 5, 6,
- 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
@@ -904,7 +904,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 46, 0, 0, 0, 76, 77,
0, 71, 0, 0, 0, 88, 72, 79, 0, 1,
73, 74, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 64, 0, 0, 0, 0, 11, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
29, 30, 75, 32, 33, 34, 0, 0, 35, 36,
@@ -985,13 +985,13 @@ static const yytype_int16 yytable[] =
0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 1, 209, 210, 0, 2, 46, 3, 4, 5,
- 6, 7, 0, 0, 64, 243, 0, 0, 0, 11,
+ 6, 7, 0, 0, 0, 243, 0, 0, 0, 11,
12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
1, 0, 0, 0, 2, 46, 3, 4, 5, 6,
- 7, 0, 0, 64, 0, 0, 0, 0, 11, 12,
+ 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
143, 29, 30, 31, 32, 33, 34, 0, 0, 35,
@@ -1020,22 +1020,22 @@ static const yytype_int16 yytable[] =
static const yytype_int16 yycheck[] =
{
- 0, 28, 0, 20, 0, 54, 188, 57, 73, 9,
- 57, 88, 86, 13, 196, 92, 42, 44, 39, 87,
- 20, 86, 204, 91, 39, 25, 52, 86, 28, 87,
+ 0, 28, 0, 20, 0, 54, 188, 57, 39, 9,
+ 57, 73, 86, 13, 196, 88, 42, 44, 39, 92,
+ 20, 86, 204, 87, 86, 25, 52, 91, 28, 87,
79, 81, 82, 83, 84, 88, 83, 84, 86, 88,
75, 76, 77, 86, 44, 45, 216, 44, 45, 49,
- 220, 49, 86, 235, 103, 87, 226, 86, 87, 86,
- 230, 243, 144, 145, 86, 89, 86, 86, 250, 92,
- 86, 120, 52, 100, 256, 23, 246, 89, 92, 79,
- 262, 91, 91, 253, 86, 89, 86, 257, 24, 92,
- 42, 86, 92, 263, 42, 86, 266, 86, 86, 86,
+ 220, 49, 86, 235, 103, 86, 226, 86, 87, 86,
+ 230, 243, 144, 145, 87, 89, 86, 86, 250, 91,
+ 86, 120, 52, 100, 256, 23, 246, 92, 92, 79,
+ 262, 91, 86, 253, 86, 24, 86, 257, 89, 92,
+ 89, 86, 92, 263, 42, 86, 266, 86, 86, 86,
100, 86, 50, 51, 52, 53, 54, 55, 108, 57,
- 86, 86, 60, 61, 62, 57, 86, 86, 60, 86,
- 86, 121, 86, 121, 49, 229, 143, 144, 145, 165,
+ 86, 42, 60, 61, 62, 57, 86, 86, 60, 86,
+ 86, 121, 86, 121, 86, 49, 143, 144, 145, 229,
78, 79, 80, 81, 82, 83, 84, 41, 80, 81,
82, 83, 84, 143, 144, 145, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, 10, 60, 61, 62, -1,
+ 54, 55, 165, 57, -1, 10, 60, 61, 62, -1,
-1, -1, -1, 18, -1, 165, -1, -1, -1, 169,
-1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
84, -1, -1, -1, -1, -1, -1, -1, 188, -1,
@@ -1053,7 +1053,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, 161, 162, -1, 164,
-1, -1, 5, -1, -1, -1, -1, 10, -1, -1,
13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
- 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
195, 34, 35, 36, 37, -1, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
@@ -1061,7 +1061,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 238, 77, -1, -1, -1, 81, 82,
-1, -1, 247, 5, -1, 88, -1, 90, 10, 92,
-1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
- 22, 23, -1, -1, 26, -1, -1, -1, -1, 31,
+ 22, 23, -1, -1, -1, -1, -1, -1, -1, 31,
32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
@@ -1069,7 +1069,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
- 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
-1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
@@ -1077,7 +1077,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
-1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, 26, -1, -1, -1, -1, 31, 32, -1,
+ -1, -1, -1, -1, -1, -1, -1, 31, 32, -1,
34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
@@ -1158,13 +1158,13 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 13, 14, 15, -1, 17, 77, 19, 20, 21,
- 22, 23, -1, -1, 26, 86, -1, -1, -1, 31,
+ 22, 23, -1, -1, -1, 86, -1, -1, -1, 31,
32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
13, -1, -1, -1, 17, 77, 19, 20, 21, 22,
- 23, -1, -1, 26, -1, -1, -1, -1, 31, 32,
+ 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
-1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
32, 54, 55, 56, 57, 58, 59, -1, -1, 62,
@@ -1201,7 +1201,7 @@ static const yytype_uint8 yystos[] =
55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 77, 86, 94, 95,
96, 97, 98, 103, 105, 108, 109, 110, 111, 113,
- 114, 115, 116, 39, 26, 35, 39, 40, 105, 106,
+ 114, 115, 116, 39, 86, 35, 39, 40, 105, 106,
107, 5, 10, 14, 15, 56, 81, 82, 88, 90,
105, 120, 121, 124, 125, 128, 105, 39, 88, 128,
129, 130, 44, 45, 105, 121, 123, 105, 106, 106,
@@ -1234,8 +1234,8 @@ static const yytype_uint8 yyr1[] =
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 106, 106, 107, 107, 108, 108, 108, 108,
- 109, 109, 109, 110, 110, 110, 110, 110, 110, 111,
+ 105, 106, 106, 107, 107, 108, 108, 108, 108, 109,
+ 109, 109, 110, 110, 110, 110, 110, 110, 110, 111,
111, 111, 111, 112, 112, 113, 113, 113, 114, 114,
115, 115, 115, 115, 116, 116, 116, 117, 117, 118,
118, 119, 119, 120, 120, 120, 120, 120, 120, 120,
@@ -1254,8 +1254,8 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 1, 1, 3, 1, 1, 1, 1,
- 1, 1, 1, 5, 3, 5, 3, 3, 3, 5,
+ 1, 0, 1, 1, 3, 1, 1, 1, 1, 1,
+ 1, 1, 5, 3, 5, 3, 3, 3, 2, 5,
5, 5, 5, 1, 1, 3, 3, 3, 4, 7,
6, 9, 7, 10, 7, 11, 12, 0, 1, 1,
2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
@@ -1991,295 +1991,295 @@ yyreduce:
#line 1992 "engines/director/lingo/lingo-gr.cpp"
break;
- case 31: /* ID: tEXIT */
-#line 297 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("exit"); }
-#line 1998 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 32: /* ID: tFIELD */
+ case 31: /* ID: tFIELD */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2004 "engines/director/lingo/lingo-gr.cpp"
+#line 1998 "engines/director/lingo/lingo-gr.cpp"
break;
- case 33: /* ID: tIN */
+ case 32: /* ID: tIN */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2010 "engines/director/lingo/lingo-gr.cpp"
+#line 2004 "engines/director/lingo/lingo-gr.cpp"
break;
- case 34: /* ID: tINTERSECTS */
+ case 33: /* ID: tINTERSECTS */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2016 "engines/director/lingo/lingo-gr.cpp"
+#line 2010 "engines/director/lingo/lingo-gr.cpp"
break;
- case 35: /* ID: tINTO */
+ case 34: /* ID: tINTO */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2022 "engines/director/lingo/lingo-gr.cpp"
+#line 2016 "engines/director/lingo/lingo-gr.cpp"
break;
- case 36: /* ID: tITEM */
+ case 35: /* ID: tITEM */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2028 "engines/director/lingo/lingo-gr.cpp"
+#line 2022 "engines/director/lingo/lingo-gr.cpp"
break;
- case 37: /* ID: tLINE */
+ case 36: /* ID: tLINE */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2034 "engines/director/lingo/lingo-gr.cpp"
+#line 2028 "engines/director/lingo/lingo-gr.cpp"
break;
- case 38: /* ID: tMOD */
+ case 37: /* ID: tMOD */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2040 "engines/director/lingo/lingo-gr.cpp"
+#line 2034 "engines/director/lingo/lingo-gr.cpp"
break;
- case 39: /* ID: tMOVIE */
+ case 38: /* ID: tMOVIE */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2046 "engines/director/lingo/lingo-gr.cpp"
+#line 2040 "engines/director/lingo/lingo-gr.cpp"
break;
- case 40: /* ID: tNEXT */
+ case 39: /* ID: tNEXT */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2052 "engines/director/lingo/lingo-gr.cpp"
+#line 2046 "engines/director/lingo/lingo-gr.cpp"
break;
- case 41: /* ID: tNOT */
+ case 40: /* ID: tNOT */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2058 "engines/director/lingo/lingo-gr.cpp"
+#line 2052 "engines/director/lingo/lingo-gr.cpp"
break;
- case 42: /* ID: tOF */
+ case 41: /* ID: tOF */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2064 "engines/director/lingo/lingo-gr.cpp"
+#line 2058 "engines/director/lingo/lingo-gr.cpp"
break;
- case 43: /* ID: tOPEN */
+ case 42: /* ID: tOPEN */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2070 "engines/director/lingo/lingo-gr.cpp"
+#line 2064 "engines/director/lingo/lingo-gr.cpp"
break;
- case 44: /* ID: tOR */
+ case 43: /* ID: tOR */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2076 "engines/director/lingo/lingo-gr.cpp"
+#line 2070 "engines/director/lingo/lingo-gr.cpp"
break;
- case 45: /* ID: tPLAY */
+ case 44: /* ID: tPLAY */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2082 "engines/director/lingo/lingo-gr.cpp"
+#line 2076 "engines/director/lingo/lingo-gr.cpp"
break;
- case 46: /* ID: tPLAYACCEL */
+ case 45: /* ID: tPLAYACCEL */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 2088 "engines/director/lingo/lingo-gr.cpp"
+#line 2082 "engines/director/lingo/lingo-gr.cpp"
break;
- case 47: /* ID: tPREVIOUS */
+ case 46: /* ID: tPREVIOUS */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2094 "engines/director/lingo/lingo-gr.cpp"
+#line 2088 "engines/director/lingo/lingo-gr.cpp"
break;
- case 48: /* ID: tREPEAT */
+ case 47: /* ID: tREPEAT */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2100 "engines/director/lingo/lingo-gr.cpp"
+#line 2094 "engines/director/lingo/lingo-gr.cpp"
break;
- case 49: /* ID: tSCRIPT */
+ case 48: /* ID: tSCRIPT */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2106 "engines/director/lingo/lingo-gr.cpp"
+#line 2100 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* ID: tSET */
+ case 49: /* ID: tSET */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2112 "engines/director/lingo/lingo-gr.cpp"
+#line 2106 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* ID: tSTARTS */
+ case 50: /* ID: tSTARTS */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2118 "engines/director/lingo/lingo-gr.cpp"
+#line 2112 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* ID: tTELL */
+ case 51: /* ID: tTELL */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2124 "engines/director/lingo/lingo-gr.cpp"
+#line 2118 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ID: tTO */
+ case 52: /* ID: tTO */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2130 "engines/director/lingo/lingo-gr.cpp"
+#line 2124 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ID: tASSERTERROR */
+ case 53: /* ID: tASSERTERROR */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2136 "engines/director/lingo/lingo-gr.cpp"
+#line 2130 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tSPRITE */
+ case 54: /* ID: tSPRITE */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2136 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tWHEN */
+ case 55: /* ID: tWHEN */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2148 "engines/director/lingo/lingo-gr.cpp"
+#line 2142 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tWHILE */
+ case 56: /* ID: tWHILE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2154 "engines/director/lingo/lingo-gr.cpp"
+#line 2148 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tWINDOW */
+ case 57: /* ID: tWINDOW */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2160 "engines/director/lingo/lingo-gr.cpp"
+#line 2154 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tWITH */
+ case 58: /* ID: tWITH */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2166 "engines/director/lingo/lingo-gr.cpp"
+#line 2160 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* ID: tWITHIN */
+ case 59: /* ID: tWITHIN */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2172 "engines/director/lingo/lingo-gr.cpp"
+#line 2166 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* ID: tWORD */
+ case 60: /* ID: tWORD */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2172 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* idlist: %empty */
+ case 61: /* idlist: %empty */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2184 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
- case 64: /* nonemptyidlist: ID */
+ case 63: /* nonemptyidlist: ID */
#line 344 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2193 "engines/director/lingo/lingo-gr.cpp"
+#line 2187 "engines/director/lingo/lingo-gr.cpp"
break;
- case 65: /* nonemptyidlist: nonemptyidlist ',' ID */
+ case 64: /* nonemptyidlist: nonemptyidlist ',' ID */
#line 348 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2201 "engines/director/lingo/lingo-gr.cpp"
+#line 2195 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: ID '(' exprlist ')' '\n' */
+ case 72: /* proc: ID '(' exprlist ')' '\n' */
#line 369 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 2207 "engines/director/lingo/lingo-gr.cpp"
+#line 2201 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: ID exprlist '\n' */
+ case 73: /* proc: ID exprlist '\n' */
#line 370 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2213 "engines/director/lingo/lingo-gr.cpp"
+#line 2207 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tPUT '(' exprlist ')' '\n' */
+ case 74: /* proc: tPUT '(' exprlist ')' '\n' */
#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-2].nodelist)); }
-#line 2219 "engines/director/lingo/lingo-gr.cpp"
+#line 2213 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tPUT exprlist '\n' */
+ case 75: /* proc: tPUT exprlist '\n' */
#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2225 "engines/director/lingo/lingo-gr.cpp"
+#line 2219 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tNEXT tREPEAT '\n' */
+ case 76: /* proc: tNEXT tREPEAT '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2231 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* proc: tEXIT tREPEAT '\n' */
+ case 77: /* proc: tEXIT tREPEAT '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 78: /* proc: tEXIT '\n' */
+#line 375 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new ExitNode(); }
#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2243 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2249 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2255 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* asgn: tSET varorthe to expr '\n' */
-#line 380 "engines/director/lingo/lingo-gr.y"
+#line 381 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2261 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* definevars: tGLOBAL idlist '\n' */
-#line 385 "engines/director/lingo/lingo-gr.y"
+#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
#line 2267 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* definevars: tPROPERTY idlist '\n' */
-#line 386 "engines/director/lingo/lingo-gr.y"
+#line 387 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* definevars: tINSTANCE idlist '\n' */
-#line 387 "engines/director/lingo/lingo-gr.y"
+#line 388 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
#line 2279 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ifstmt: tIF expr tTHEN stmt */
-#line 390 "engines/director/lingo/lingo-gr.y"
+#line 391 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
@@ -2288,14 +2288,14 @@ yyreduce:
break;
case 89: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 394 "engines/director/lingo/lingo-gr.y"
+#line 395 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
#line 2295 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 398 "engines/director/lingo/lingo-gr.y"
+#line 399 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
@@ -2306,7 +2306,7 @@ yyreduce:
break;
case 91: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+#line 405 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
@@ -2315,7 +2315,7 @@ yyreduce:
break;
case 92: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 408 "engines/director/lingo/lingo-gr.y"
+#line 409 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
@@ -2324,41 +2324,41 @@ yyreduce:
break;
case 93: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 412 "engines/director/lingo/lingo-gr.y"
+#line 413 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
#line 2331 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 416 "engines/director/lingo/lingo-gr.y"
+#line 417 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2338 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 418 "engines/director/lingo/lingo-gr.y"
+#line 419 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2345 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 420 "engines/director/lingo/lingo-gr.y"
+#line 421 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2352 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* stmtlist: %empty */
-#line 424 "engines/director/lingo/lingo-gr.y"
+#line 425 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
#line 2358 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptystmtlist: stmtlistline */
-#line 429 "engines/director/lingo/lingo-gr.y"
+#line 430 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
@@ -2369,7 +2369,7 @@ yyreduce:
break;
case 100: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 435 "engines/director/lingo/lingo-gr.y"
+#line 436 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
@@ -2379,91 +2379,91 @@ yyreduce:
break;
case 101: /* stmtlistline: '\n' */
-#line 442 "engines/director/lingo/lingo-gr.y"
+#line 443 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
#line 2385 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* simpleexprnoparens: tINT */
-#line 448 "engines/director/lingo/lingo-gr.y"
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
#line 2391 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* simpleexprnoparens: tFLOAT */
-#line 449 "engines/director/lingo/lingo-gr.y"
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
#line 2397 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* simpleexprnoparens: tSYMBOL */
-#line 450 "engines/director/lingo/lingo-gr.y"
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* simpleexprnoparens: tSTRING */
-#line 451 "engines/director/lingo/lingo-gr.y"
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
#line 2409 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* simpleexprnoparens: '+' simpleexpr */
-#line 452 "engines/director/lingo/lingo-gr.y"
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
#line 2415 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* simpleexprnoparens: '-' simpleexpr */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
#line 2421 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* simpleexprnoparens: tNOT simpleexpr */
-#line 454 "engines/director/lingo/lingo-gr.y"
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
#line 2427 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 455 "engines/director/lingo/lingo-gr.y"
+#line 456 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
#line 2433 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* var: ID */
-#line 460 "engines/director/lingo/lingo-gr.y"
+#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
#line 2439 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* simpleexpr: '(' expr ')' */
-#line 471 "engines/director/lingo/lingo-gr.y"
+#line 472 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
#line 2445 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* list: '[' exprlist ']' */
-#line 474 "engines/director/lingo/lingo-gr.y"
+#line 475 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
#line 2451 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* list: '[' ':' ']' */
-#line 475 "engines/director/lingo/lingo-gr.y"
+#line 476 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
#line 2457 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* list: '[' proplist ']' */
-#line 476 "engines/director/lingo/lingo-gr.y"
+#line 477 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
#line 2463 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proplist: proppair */
-#line 479 "engines/director/lingo/lingo-gr.y"
+#line 480 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
@@ -2472,7 +2472,7 @@ yyreduce:
break;
case 122: /* proplist: proplist ',' proppair */
-#line 483 "engines/director/lingo/lingo-gr.y"
+#line 484 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
@@ -2480,139 +2480,139 @@ yyreduce:
break;
case 123: /* proppair: tSYMBOL ':' expr */
-#line 488 "engines/director/lingo/lingo-gr.y"
+#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2486 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* proppair: ID ':' expr */
-#line 489 "engines/director/lingo/lingo-gr.y"
+#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2492 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* proppair: tSTRING ':' expr */
-#line 490 "engines/director/lingo/lingo-gr.y"
+#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2498 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* expr: simpleexpr */
-#line 493 "engines/director/lingo/lingo-gr.y"
+#line 494 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
#line 2504 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* expr: expr '+' expr */
-#line 494 "engines/director/lingo/lingo-gr.y"
+#line 495 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2510 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* expr: expr '-' expr */
-#line 495 "engines/director/lingo/lingo-gr.y"
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2516 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* expr: expr '*' expr */
-#line 496 "engines/director/lingo/lingo-gr.y"
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2522 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* expr: expr '/' expr */
-#line 497 "engines/director/lingo/lingo-gr.y"
+#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* expr: expr tMOD expr */
-#line 498 "engines/director/lingo/lingo-gr.y"
+#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2534 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* expr: expr '>' expr */
-#line 499 "engines/director/lingo/lingo-gr.y"
+#line 500 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2540 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* expr: expr '<' expr */
-#line 500 "engines/director/lingo/lingo-gr.y"
+#line 501 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2546 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* expr: expr tEQ expr */
-#line 501 "engines/director/lingo/lingo-gr.y"
+#line 502 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2552 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* expr: expr tNEQ expr */
-#line 502 "engines/director/lingo/lingo-gr.y"
+#line 503 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2558 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* expr: expr tGE expr */
-#line 503 "engines/director/lingo/lingo-gr.y"
+#line 504 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2564 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* expr: expr tLE expr */
-#line 504 "engines/director/lingo/lingo-gr.y"
+#line 505 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* expr: expr tAND expr */
-#line 505 "engines/director/lingo/lingo-gr.y"
+#line 506 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* expr: expr tOR expr */
-#line 506 "engines/director/lingo/lingo-gr.y"
+#line 507 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* expr: expr '&' expr */
-#line 507 "engines/director/lingo/lingo-gr.y"
+#line 508 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2588 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* expr: expr tCONCAT expr */
-#line 508 "engines/director/lingo/lingo-gr.y"
+#line 509 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2594 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* expr: expr tCONTAINS expr */
-#line 509 "engines/director/lingo/lingo-gr.y"
+#line 510 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2600 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* expr: expr tSTARTS expr */
-#line 510 "engines/director/lingo/lingo-gr.y"
+#line 511 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2606 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* exprlist: %empty */
-#line 513 "engines/director/lingo/lingo-gr.y"
+#line 514 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
#line 2612 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* nonemptyexprlist: expr */
-#line 517 "engines/director/lingo/lingo-gr.y"
+#line 518 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
@@ -2621,7 +2621,7 @@ yyreduce:
break;
case 147: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 521 "engines/director/lingo/lingo-gr.y"
+#line 522 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
@@ -2828,7 +2828,7 @@ yyreturn:
return yyresult;
}
-#line 526 "engines/director/lingo/lingo-gr.y"
+#line 527 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 52ce924d55..447ae6257a 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -294,7 +294,7 @@ ID: tVARID
| tDOWN { $$ = new Common::String("down"); }
// tENDCLAUSE
// tELSE
- | tEXIT { $$ = new Common::String("exit"); }
+ // | tEXIT { $$ = new Common::String("exit"); }
// tFACTORY
| tFIELD { $$ = new Common::String("field"); }
// | tGLOBAL { $$ = new Common::String("global"); }
@@ -372,6 +372,7 @@ proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
| tPUT exprlist[args] '\n' { $$ = new CmdNode(new Common::String("put"), $args); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
+ | tEXIT '\n' { $$ = new ExitNode(); }
;
asgn: tPUT expr tINTO varorchunk '\n' { $$ = new PutIntoNode($expr, $varorchunk); }
Commit: 25b606c9b121adc201629945f1270e9460969611
https://github.com/scummvm/scummvm/commit/25b606c9b121adc201629945f1270e9460969611
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Parse all variants of cmd args
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 69af1d1294..e5ec2d4e70 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -263,26 +263,31 @@ enum yysymbol_kind_t
YYSYMBOL_stmt = 108, /* stmt */
YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
YYSYMBOL_proc = 110, /* proc */
- YYSYMBOL_asgn = 111, /* asgn */
- YYSYMBOL_to = 112, /* to */
- YYSYMBOL_definevars = 113, /* definevars */
- YYSYMBOL_ifstmt = 114, /* ifstmt */
- YYSYMBOL_ifelsestmt = 115, /* ifelsestmt */
- YYSYMBOL_loop = 116, /* loop */
- YYSYMBOL_stmtlist = 117, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 118, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 119, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 120, /* simpleexprnoparens */
- YYSYMBOL_var = 121, /* var */
- YYSYMBOL_varorchunk = 122, /* varorchunk */
- YYSYMBOL_varorthe = 123, /* varorthe */
- YYSYMBOL_simpleexpr = 124, /* simpleexpr */
+ YYSYMBOL_cmdargs = 111, /* cmdargs */
+ YYSYMBOL_asgn = 112, /* asgn */
+ YYSYMBOL_to = 113, /* to */
+ YYSYMBOL_definevars = 114, /* definevars */
+ YYSYMBOL_ifstmt = 115, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 116, /* ifelsestmt */
+ YYSYMBOL_loop = 117, /* loop */
+ YYSYMBOL_stmtlist = 118, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 119, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 120, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 121, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 122, /* var */
+ YYSYMBOL_varorchunk = 123, /* varorchunk */
+ YYSYMBOL_varorthe = 124, /* varorthe */
YYSYMBOL_list = 125, /* list */
YYSYMBOL_proplist = 126, /* proplist */
YYSYMBOL_proppair = 127, /* proppair */
- YYSYMBOL_expr = 128, /* expr */
- YYSYMBOL_exprlist = 129, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 130 /* nonemptyexprlist */
+ YYSYMBOL_parens = 128, /* parens */
+ YYSYMBOL_unarymath = 129, /* unarymath */
+ YYSYMBOL_simpleexpr = 130, /* simpleexpr */
+ YYSYMBOL_simpleexpr_nounarymath = 131, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 132, /* expr */
+ YYSYMBOL_expr_nounarymath = 133, /* expr_nounarymath */
+ YYSYMBOL_exprlist = 134, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 135 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -602,18 +607,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 101
+#define YYFINAL 102
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1688
+#define YYLAST 2152
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 38
+#define YYNNTS 43
/* YYNRULES -- Number of rules. */
-#define YYNRULES 147
+#define YYNRULES 174
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 271
+#define YYNSTATES 317
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -670,21 +675,24 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 194, 194, 196, 202, 209, 210, 211, 212, 213,
- 242, 246, 248, 250, 251, 254, 260, 267, 268, 273,
- 277, 281, 282, 283, 288, 289, 290, 291, 292, 293,
- 294, 299, 302, 304, 305, 306, 307, 310, 311, 312,
- 313, 314, 316, 317, 318, 319, 320, 323, 324, 325,
- 326, 327, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 340, 341, 344, 348, 358, 359, 360, 361, 364,
- 365, 366, 369, 370, 371, 372, 373, 374, 375, 378,
- 379, 380, 381, 384, 384, 386, 387, 388, 391, 395,
- 399, 405, 409, 413, 417, 419, 421, 425, 426, 430,
- 436, 443, 444, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 461, 463, 467, 471, 472, 475, 476,
- 477, 480, 484, 489, 490, 491, 494, 495, 496, 497,
- 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
- 508, 509, 510, 511, 514, 515, 518, 522
+ 0, 196, 196, 198, 204, 211, 212, 213, 214, 215,
+ 244, 248, 250, 252, 253, 256, 262, 269, 270, 275,
+ 279, 283, 284, 285, 290, 291, 292, 293, 294, 295,
+ 296, 301, 304, 306, 307, 308, 309, 312, 313, 314,
+ 315, 316, 318, 319, 320, 321, 322, 325, 326, 327,
+ 328, 329, 331, 332, 333, 334, 335, 336, 337, 338,
+ 339, 342, 343, 346, 350, 360, 361, 362, 363, 366,
+ 367, 368, 371, 372, 373, 374, 375, 378, 381, 386,
+ 390, 396, 401, 404, 410, 411, 412, 413, 416, 416,
+ 418, 419, 420, 423, 427, 431, 437, 441, 445, 449,
+ 451, 453, 457, 458, 462, 468, 475, 476, 482, 483,
+ 484, 485, 486, 487, 488, 489, 492, 494, 498, 502,
+ 503, 504, 507, 511, 516, 517, 518, 521, 523, 524,
+ 527, 528, 529, 536, 537, 541, 542, 543, 544, 545,
+ 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
+ 556, 557, 558, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
+ 582, 585, 586, 589, 593
};
#endif
@@ -718,10 +726,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"scriptpartlist", "scriptpart", "macro", "factory", "method",
"methodlist", "nonemptymethodlist", "methodlistline", "handler",
"endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
- "proc", "asgn", "to", "definevars", "ifstmt", "ifelsestmt", "loop",
- "stmtlist", "nonemptystmtlist", "stmtlistline", "simpleexprnoparens",
- "var", "varorchunk", "varorthe", "simpleexpr", "list", "proplist",
- "proppair", "expr", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "proc", "cmdargs", "asgn", "to", "definevars", "ifstmt", "ifelsestmt",
+ "loop", "stmtlist", "nonemptystmtlist", "stmtlistline",
+ "simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
+ "list", "proplist", "proppair", "parens", "unarymath", "simpleexpr",
+ "simpleexpr_nounarymath", "expr", "expr_nounarymath", "exprlist",
+ "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -745,7 +755,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-183)
+#define YYPACT_NINF (-235)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -759,34 +769,38 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 618, -183, -183, -183, -183, -183, -183, -183, -31, 1417,
- 388, -183, -183, 1417, -183, -21, -183, -183, 467, 3,
- 1417, -183, -183, -183, -183, 1417, -183, -183, 1417, -183,
- -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
- -183, -183, -183, -183, 1417, 1417, -183, -183, 4, 618,
- -183, -183, -183, -183, 546, -183, -183, -183, -183, -183,
- -183, -183, -183, -74, -183, -183, -183, -183, -183, -65,
- -58, -183, -183, -183, -183, 388, 388, 388, 388, 307,
- -53, -183, -183, -183, -183, 96, 1417, -48, 388, 1438,
- -43, -23, 1417, 388, -183, -183, -26, -34, -20, -19,
- 1417, -183, -183, 388, 1591, -16, -183, -183, 1417, -183,
- -183, -183, 1451, -15, -14, -22, -73, -64, -183, -10,
- 388, 1116, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, -4,
- -183, 1451, -24, 1417, 1417, 1417, -183, 388, 20, 1491,
- -183, -183, 388, -62, -183, -183, -2, -1, -183, -183,
- -183, 388, 388, -183, 388, 1358, -183, -183, 1, 1177,
- 61, 58, 58, 58, 58, 1604, 1604, -183, -50, 58,
- 58, 58, 58, -50, -47, -47, -183, -183, 1177, 5,
- -183, 9, 11, 12, 1591, 388, 1177, 1504, 1417, -183,
- -183, 13, -183, -183, 1177, 15, 1591, 1591, 1591, -15,
- -14, -3, -183, -183, -183, -183, 679, -183, -183, 1238,
- 1177, -183, -183, -183, -183, 52, 741, -183, 1417, -62,
- 809, -183, 1299, 24, -183, 1177, -183, 69, 388, 30,
- 31, -183, 1417, 1177, -183, -183, 870, 388, 1541, -183,
- 1177, -29, -183, 932, 33, 1554, 1177, 1177, -183, 1417,
- 34, -183, 1177, 994, -183, -183, 1055, 36, 38, -183,
- -183
+ 1133, -235, -235, -235, -235, -235, -235, -235, -32, 1873,
+ 745, -235, -235, 1873, -235, 7, -235, -235, 824, -5,
+ 1873, -235, -235, -235, -235, 1873, -235, -235, 1873, -235,
+ -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+ -235, -235, -235, -235, 1873, 1873, -235, -235, 12, 1133,
+ -235, -235, -235, -235, 824, -235, -235, -235, -235, -235,
+ -235, -235, -235, -52, -235, -235, -235, -235, -235, -43,
+ -37, -235, -235, -235, -235, 745, 745, 745, 745, 421,
+ -24, -235, -235, -235, -235, -235, -235, 292, 1873, -19,
+ 664, -16, 502, 1873, 745, -235, -235, -34, -15, -14,
+ -13, 1873, -235, -235, -9, 583, -235, -235, 1873, -235,
+ -235, -235, 1955, -40, -26, -23, -66, -50, -235, 2068,
+ -11, -6, 745, 1631, 745, 745, 745, 745, 745, 745,
+ 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
+ 745, -4, -235, -235, 1915, -235, 1873, 903, 903, 1061,
+ 1873, 1873, 982, 745, -235, -235, -235, 367, 37, 1968,
+ -235, -235, 745, -62, -235, -235, 11, -235, -235, -235,
+ 745, 745, -235, 745, 146, -235, -235, 745, 1, 1692,
+ 76, 74, 74, 74, 74, 34, 34, -235, -51, 74,
+ 74, 74, 74, -51, -36, -36, -235, -235, 1692, 745,
+ -235, 16, 17, 18, -6, 745, 745, 745, 745, 745,
+ 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
+ 745, 745, 745, 745, 1692, 2005, 1873, -235, -235, 20,
+ -235, -235, 1692, 2068, 2068, 2068, -40, -26, 6, -235,
+ 2068, -235, -235, -235, 1194, -235, -235, 1753, 1692, -72,
+ -235, -235, -235, 74, 74, 74, 74, 34, 34, -235,
+ -51, 74, 74, 74, 74, -51, -36, -36, -235, -235,
+ -6, 1902, 1256, -235, 1873, -62, 1324, 1814, 21, -235,
+ 1692, -235, -235, 67, 745, 24, 33, -235, 1873, 1692,
+ -235, -235, 1385, 745, 2018, -235, 1692, -27, -235, 1447,
+ 35, 2055, 1692, 1692, -235, 1873, 36, -235, 1692, 1509,
+ -235, -235, 1570, 38, 39, -235, -235
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -795,51 +809,57 @@ static const yytype_int16 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 24, 45, 28, 31, 48, 57, 30, 0, 61,
- 0, 32, 34, 0, 38, 39, 41, 46, 144, 47,
+ 0, 32, 34, 0, 38, 39, 41, 46, 77, 47,
49, 52, 55, 58, 56, 0, 42, 44, 61, 26,
43, 40, 37, 25, 27, 50, 29, 35, 36, 60,
54, 33, 59, 51, 61, 0, 53, 5, 0, 2,
- 3, 6, 7, 8, 144, 9, 65, 69, 70, 71,
- 66, 67, 68, 0, 78, 39, 47, 49, 63, 0,
- 62, 103, 104, 106, 105, 40, 0, 0, 0, 144,
- 113, 116, 111, 126, 112, 0, 61, 0, 144, 146,
- 0, 145, 0, 0, 113, 115, 0, 0, 0, 0,
- 61, 1, 4, 144, 146, 0, 77, 85, 0, 109,
- 107, 108, 0, 106, 105, 0, 113, 0, 121, 0,
- 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 6, 7, 8, 77, 9, 65, 69, 70, 71,
+ 66, 67, 68, 0, 76, 39, 47, 49, 63, 0,
+ 62, 108, 109, 111, 110, 40, 0, 0, 0, 171,
+ 116, 130, 114, 115, 131, 132, 135, 0, 61, 0,
+ 0, 0, 78, 0, 0, 116, 118, 0, 0, 0,
+ 0, 61, 1, 4, 0, 78, 75, 90, 0, 112,
+ 128, 129, 0, 111, 110, 0, 116, 0, 122, 173,
+ 0, 172, 171, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 146, 0, 0, 0, 0, 75, 0, 0, 0,
- 83, 84, 0, 13, 87, 86, 0, 0, 73, 64,
- 117, 0, 0, 119, 0, 0, 120, 118, 0, 97,
- 88, 136, 137, 134, 135, 138, 139, 131, 141, 142,
- 143, 133, 132, 140, 127, 128, 129, 130, 97, 0,
- 114, 0, 0, 0, 147, 0, 97, 0, 0, 17,
- 18, 11, 14, 15, 97, 0, 125, 123, 124, 0,
- 0, 0, 122, 110, 101, 102, 0, 98, 99, 0,
- 10, 74, 79, 80, 81, 0, 0, 82, 61, 0,
- 20, 72, 0, 0, 100, 97, 90, 0, 0, 0,
- 0, 16, 21, 97, 92, 89, 0, 0, 0, 94,
- 97, 0, 22, 0, 0, 0, 97, 12, 19, 0,
- 0, 91, 97, 0, 23, 93, 0, 0, 0, 95,
- 96
+ 0, 0, 74, 82, 0, 73, 34, 26, 43, 37,
+ 25, 27, 50, 0, 133, 134, 153, 80, 0, 0,
+ 88, 89, 0, 13, 92, 91, 0, 72, 64, 127,
+ 0, 0, 120, 0, 0, 121, 119, 0, 0, 102,
+ 93, 145, 146, 143, 144, 147, 148, 140, 150, 151,
+ 152, 142, 141, 149, 136, 137, 138, 139, 102, 0,
+ 117, 0, 0, 0, 79, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 102, 0, 0, 17, 18, 11,
+ 14, 15, 102, 126, 124, 125, 0, 0, 0, 123,
+ 174, 113, 106, 107, 0, 103, 104, 0, 10, 0,
+ 84, 85, 86, 163, 164, 161, 162, 165, 166, 158,
+ 168, 169, 170, 160, 159, 167, 154, 155, 156, 157,
+ 81, 0, 0, 87, 61, 0, 20, 0, 0, 105,
+ 102, 95, 83, 0, 0, 0, 0, 16, 21, 102,
+ 97, 94, 0, 0, 0, 99, 102, 0, 22, 0,
+ 0, 0, 102, 12, 19, 0, 0, 96, 102, 0,
+ 23, 98, 0, 0, 0, 100, 101
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -183, -183, -183, 76, -183, -183, -183, -183, -183, -100,
- -183, -183, 0, -27, -183, 2, -183, -183, -183, -183,
- -183, -183, -183, -183, -182, -183, -170, -183, -17, -82,
- -183, -35, -183, -183, -13, 145, -49, -183
+ -235, -235, -235, 71, -235, -235, -235, -235, -235, -149,
+ -235, -235, 0, -25, -235, 4, -235, -235, 75, -235,
+ -235, -235, -235, -235, -235, -197, -235, -234, -76, -18,
+ -89, -235, -235, -235, -44, -69, -235, -20, -235, 189,
+ -235, 13, -148
};
/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_uint8 yydefgoto[] =
+static const yytype_int16 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 200, 201, 202, 203,
- 53, 251, 80, 69, 70, 215, 56, 57, 58, 152,
- 59, 60, 61, 62, 216, 217, 218, 81, 82, 191,
- 96, 83, 84, 117, 118, 104, 90, 91
+ 0, 48, 49, 50, 51, 52, 228, 229, 230, 231,
+ 53, 297, 80, 69, 70, 243, 56, 57, 91, 58,
+ 162, 59, 60, 61, 62, 244, 245, 246, 81, 82,
+ 201, 97, 83, 117, 118, 84, 85, 86, 156, 119,
+ 157, 120, 121
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -847,348 +867,442 @@ static const yytype_uint8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 54, 98, 55, 95, 101, 105, 220, 128, 63, 68,
- 128, 198, 106, 86, 226, 120, 150, 99, 87, 164,
- 94, 107, 230, 165, 199, 97, 151, 166, 68, 108,
- 119, 135, 136, 137, 138, 120, 137, 138, 140, 142,
- 109, 110, 111, 146, 68, 100, 234, 92, 93, 54,
- 234, 55, 153, 246, 157, 64, 234, 258, 259, 139,
- 234, 253, 192, 193, 147, 189, 154, 155, 257, 163,
- 158, 168, 195, 156, 263, 237, 234, 161, 162, 116,
- 266, 167, 188, 234, 204, 219, 68, 234, 205, 164,
- 213, 221, 148, 234, 238, 222, 234, 223, 224, 229,
- 68, 231, 122, 123, 124, 125, 126, 127, 159, 128,
- 245, 247, 129, 130, 131, 128, 249, 250, 129, 261,
- 265, 54, 269, 170, 270, 102, 190, 190, 190, 241,
- 132, 133, 134, 135, 136, 137, 138, 121, 134, 135,
- 136, 137, 138, 94, 94, 94, 122, 123, 124, 125,
- 126, 127, 212, 128, 0, 85, 129, 130, 131, 0,
- 0, 0, 0, 89, 0, 211, 0, 0, 0, 54,
- 0, 0, 0, 0, 132, 133, 134, 135, 136, 137,
- 138, 0, 0, 0, 0, 0, 0, 0, 54, 0,
- 0, 0, 0, 0, 0, 0, 54, 0, 228, 0,
- 0, 240, 0, 0, 54, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 0, 0, 54,
- 54, 236, 0, 112, 0, 0, 54, 0, 68, 0,
- 54, 0, 54, 141, 244, 54, 0, 0, 149, 0,
- 0, 0, 252, 54, 0, 0, 54, 0, 141, 0,
- 54, 0, 0, 54, 0, 0, 54, 54, 0, 264,
- 0, 0, 54, 54, 0, 0, 54, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 0, 0, 0, 0, 0, 0,
- 0, 0, 194, 0, 0, 0, 0, 197, 0, 0,
- 0, 0, 0, 0, 0, 0, 206, 207, 0, 208,
- 0, 0, 71, 0, 0, 0, 0, 72, 0, 0,
- 1, 113, 114, 0, 2, 0, 3, 4, 5, 6,
- 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
- 225, 14, 65, 16, 17, 0, 66, 67, 0, 21,
- 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
- 0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
- 0, 0, 0, 248, 46, 0, 0, 0, 76, 77,
- 0, 0, 255, 71, 0, 78, 0, 79, 72, 115,
- 0, 1, 73, 74, 0, 2, 0, 3, 4, 5,
- 6, 7, 0, 0, 0, 0, 0, 0, 0, 11,
- 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
- 21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
- 0, 0, 29, 30, 75, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
- 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
- 77, 0, 71, 0, 0, 0, 78, 72, 79, 0,
- 1, 73, 74, 0, 2, 0, 3, 4, 5, 6,
- 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
- 0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
- 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
- 0, 29, 30, 75, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 0, 0,
- 0, 0, 0, 0, 46, 0, 0, 0, 76, 77,
- 0, 71, 0, 0, 0, 88, 72, 79, 0, 1,
- 73, 74, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
+ 54, 248, 96, 99, 55, 204, 130, 63, 160, 68,
+ 279, 226, 102, 88, 279, 177, 154, 282, 161, 100,
+ 95, 130, 122, 155, 227, 98, 173, 272, 68, 154,
+ 137, 138, 139, 140, 106, 276, 155, 174, 279, 93,
+ 94, 175, 279, 107, 68, 101, 89, 139, 140, 54,
+ 108, 249, 170, 55, 64, 109, 110, 111, 279, 304,
+ 305, 202, 203, 141, 122, 279, 171, 142, 172, 279,
+ 145, 163, 164, 165, 270, 279, 166, 167, 279, 116,
+ 176, 177, 198, 292, 124, 125, 126, 127, 68, 223,
+ 241, 130, 299, 158, 131, 132, 133, 232, 173, 303,
+ 247, 68, 250, 251, 252, 309, 275, 291, 168, 293,
+ 295, 312, 134, 135, 136, 137, 138, 139, 140, 296,
+ 103, 307, 311, 54, 315, 316, 287, 180, 200, 104,
+ 239, 130, 200, 200, 131, 178, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
+ 95, 95, 0, 0, 136, 137, 138, 139, 140, 1,
+ 236, 237, 0, 2, 0, 3, 4, 5, 6, 7,
+ 0, 0, 0, 0, 238, 0, 0, 11, 12, 54,
14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 27, 0, 0, 0, 0, 0,
- 29, 30, 75, 32, 33, 34, 0, 0, 35, 36,
+ 23, 24, 0, 26, 27, 0, 0, 0, 54, 87,
+ 29, 30, 31, 32, 33, 34, 0, 92, 35, 36,
37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
- 0, 0, 0, 46, 0, 0, 0, 76, 77, 0,
- 0, 1, 0, 0, 103, 2, 79, 3, 4, 5,
- 6, 7, 0, 0, 8, 9, 0, 0, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 0,
- 21, 22, 23, 24, 25, 26, 27, 28, 0, 0,
- 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 1, 0, 0, 46, 2, 0, 3, 4,
- 5, 6, 7, 232, 47, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 233, 1, 0, 46, 0, 2, 0,
- 3, 4, 5, 6, 7, 214, 0, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 0, 239, 0, 46, 0,
- 0, 0, 1, 0, 0, 242, 2, 214, 3, 4,
- 5, 6, 7, 0, 0, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 1, 0, 0, 46, 2, 0, 3,
- 4, 5, 6, 7, 0, 214, 8, 9, 0, 0,
- 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
- 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
- 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 254, 1, 0, 46, 0, 2,
- 0, 3, 4, 5, 6, 7, 214, 0, 8, 9,
- 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
- 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
- 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
- 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 260, 1, 0, 46,
- 0, 2, 0, 3, 4, 5, 6, 7, 214, 0,
+ 0, 0, 0, 46, 54, 0, 274, 0, 0, 0,
+ 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 105, 54, 0, 0, 54, 54, 286,
+ 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
+ 0, 0, 54, 0, 68, 0, 54, 54, 0, 144,
+ 54, 290, 0, 159, 0, 0, 0, 0, 298, 54,
+ 0, 0, 54, 0, 0, 0, 54, 0, 0, 54,
+ 0, 0, 54, 54, 0, 310, 0, 0, 54, 54,
+ 0, 0, 54, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 0, 0, 0, 123, 0, 0, 185, 186, 187, 0,
+ 0, 190, 124, 125, 126, 127, 128, 129, 0, 130,
+ 0, 225, 131, 132, 133, 0, 0, 0, 0, 233,
+ 234, 0, 235, 0, 0, 0, 240, 0, 0, 0,
+ 134, 135, 136, 137, 138, 139, 140, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 0, 271, 0, 0, 0, 0, 205, 206, 207,
+ 208, 209, 210, 0, 211, 0, 71, 212, 213, 214,
+ 0, 72, 0, 0, 1, 113, 114, 0, 2, 0,
+ 3, 4, 5, 6, 7, 215, 216, 217, 218, 219,
+ 220, 221, 11, 12, 222, 14, 65, 16, 17, 0,
+ 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
+ 0, 0, 0, 294, 0, 29, 30, 75, 32, 33,
+ 34, 0, 301, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 0, 0, 0, 0, 0, 0, 46, 0,
+ 0, 0, 76, 77, 0, 0, 0, 71, 0, 78,
+ 0, 79, 72, 115, 0, 1, 73, 74, 0, 2,
+ 0, 3, 4, 5, 6, 7, 0, 0, 0, 0,
+ 0, 0, 0, 11, 146, 0, 14, 65, 16, 17,
+ 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
+ 27, 0, 124, 125, 126, 127, 147, 148, 75, 149,
+ 150, 151, 131, 132, 152, 36, 37, 38, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
+ 134, 135, 136, 137, 138, 139, 140, 0, 71, 153,
+ 78, 0, 79, 72, 0, 0, 1, 73, 74, 0,
+ 2, 0, 3, 4, 5, 6, 7, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 0, 14, 65, 16,
+ 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 124, 125, 126, 127, 147, 148, 75,
+ 149, 33, 34, 131, 132, 152, 36, 37, 38, 39,
+ 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
+ 46, 134, 135, 136, 137, 138, 139, 140, 0, 71,
+ 153, 78, 0, 79, 72, 0, 0, 1, 73, 74,
+ 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
+ 0, 0, 0, 0, 0, 11, 12, 0, 14, 65,
+ 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
+ 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
+ 75, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
+ 0, 46, 0, 0, 0, 76, 77, 0, 0, 0,
+ 71, 0, 78, 143, 79, 72, 0, 0, 1, 73,
+ 74, 0, 2, 0, 3, 4, 5, 6, 7, 0,
+ 0, 0, 0, 0, 0, 0, 11, 12, 0, 14,
+ 65, 16, 17, 0, 66, 67, 0, 21, 22, 23,
+ 24, 0, 26, 27, 0, 0, 0, 0, 0, 29,
+ 30, 75, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
+ 0, 0, 46, 0, 0, 0, 76, 77, 0, 71,
+ 0, 0, 0, 78, 72, 79, 0, 1, 73, 74,
+ 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
+ 0, 0, 0, 0, 0, 11, 12, 0, 14, 65,
+ 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
+ 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
+ 75, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
+ 0, 46, 0, 0, 0, 76, 77, 0, 71, 0,
+ 0, 0, 90, 72, 79, 0, 1, 73, 74, 0,
+ 2, 0, 3, 4, 5, 6, 7, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 0, 14, 65, 16,
+ 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 0, 0, 0, 0, 0, 0, 75,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
+ 46, 0, 0, 0, 76, 77, 0, 71, 0, 0,
+ 0, 78, 72, 79, 0, 1, 73, 74, 0, 2,
+ 0, 3, 4, 5, 6, 7, 0, 0, 0, 0,
+ 0, 0, 0, 11, 12, 0, 14, 65, 16, 17,
+ 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
+ 27, 0, 0, 0, 0, 0, 0, 0, 75, 32,
+ 33, 34, 0, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
+ 0, 0, 0, 76, 77, 0, 71, 0, 0, 0,
+ 78, 72, 79, 0, 1, 73, 74, 0, 2, 0,
+ 3, 4, 5, 6, 7, 0, 0, 0, 0, 0,
+ 0, 0, 11, 12, 0, 14, 65, 16, 17, 0,
+ 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
+ 0, 0, 0, 0, 0, 0, 0, 75, 0, 33,
+ 34, 0, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 0, 0, 0, 0, 0, 0, 46, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 78,
+ 2, 79, 3, 4, 5, 6, 7, 0, 0, 8,
+ 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 277, 47,
8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 1, 267,
- 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
- 214, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
- 268, 0, 46, 2, 0, 3, 4, 5, 6, 7,
- 0, 214, 8, 9, 0, 0, 10, 11, 12, 0,
+ 39, 40, 41, 42, 43, 44, 0, 0, 278, 1,
+ 0, 46, 0, 2, 0, 3, 4, 5, 6, 7,
+ 242, 0, 8, 9, 0, 0, 10, 11, 12, 0,
14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 1, 0, 0, 46, 2, 0, 3, 4, 5, 6,
- 7, 0, 169, 8, 9, 0, 0, 10, 11, 12,
+ 0, 285, 0, 46, 0, 0, 0, 1, 0, 0,
+ 288, 2, 242, 3, 4, 5, 6, 7, 0, 0,
+ 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
+ 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
+ 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
+ 242, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 300,
+ 1, 0, 46, 0, 2, 0, 3, 4, 5, 6,
+ 7, 242, 0, 8, 9, 0, 0, 10, 11, 12,
0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 1, 0, 0, 46, 2, 0, 3, 4, 5,
- 6, 7, 0, 214, 8, 9, 0, 0, 10, 11,
- 12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
- 21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
- 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 1, 0, 0, 46, 2, 0, 3, 4,
- 5, 6, 7, 0, 235, 8, 9, 0, 0, 10,
+ 0, 306, 1, 0, 46, 0, 2, 0, 3, 4,
+ 5, 6, 7, 242, 0, 8, 9, 0, 0, 10,
11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 1, 209, 210, 0, 2, 46, 3, 4, 5,
- 6, 7, 0, 0, 0, 243, 0, 0, 0, 11,
- 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
- 21, 22, 23, 24, 0, 26, 27, 0, 0, 0,
- 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
- 1, 0, 0, 0, 2, 46, 3, 4, 5, 6,
- 7, 0, 0, 0, 0, 0, 0, 0, 11, 12,
- 0, 14, 65, 16, 17, 0, 66, 67, 0, 21,
- 22, 23, 24, 0, 26, 27, 0, 0, 0, 0,
- 143, 29, 30, 31, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 122, 123,
- 124, 125, 126, 127, 46, 128, 144, 145, 129, 130,
- 131, 122, 123, 124, 125, 126, 127, 0, 128, 0,
- 0, 129, 130, 131, 0, 0, 132, 133, 134, 135,
- 136, 137, 138, 0, 0, 0, 0, 0, 0, 132,
- 133, 134, 135, 136, 137, 138, 0, 0, 0, 0,
- 160, 122, 123, 124, 125, 126, 127, 0, 128, 0,
- 0, 129, 130, 131, 122, 123, 124, 125, 126, 127,
- 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
- 133, 134, 135, 136, 137, 138, 0, 196, 0, 0,
- 0, 0, 132, 133, 134, 135, 136, 137, 138, 0,
- 227, 122, 123, 124, 125, 126, 127, 0, 128, 0,
- 0, 129, 130, 131, 122, 123, 124, 125, 126, 127,
- 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
- 133, 134, 135, 136, 137, 138, 0, 256, 0, 0,
- 0, 0, 132, 133, 134, 135, 136, 137, 138, 0,
- 262, 122, 123, 124, 125, 126, 127, 0, 128, 0,
- 0, 129, 130, 131, 122, 123, 124, 125, 0, 0,
- 0, 128, 0, 0, 129, 130, 131, 0, 0, 132,
- 133, 134, 135, 136, 137, 138, 0, 0, 0, 0,
- 0, 0, 132, 133, 134, 135, 136, 137, 138
+ 44, 0, 0, 1, 313, 0, 46, 2, 0, 3,
+ 4, 5, 6, 7, 0, 242, 8, 9, 0, 0,
+ 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
+ 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
+ 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 1, 314, 0, 46, 2, 0,
+ 3, 4, 5, 6, 7, 0, 242, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
+ 0, 3, 4, 5, 6, 7, 0, 179, 8, 9,
+ 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
+ 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
+ 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
+ 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
+ 2, 0, 3, 4, 5, 6, 7, 0, 242, 8,
+ 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
+ 46, 2, 0, 3, 4, 5, 6, 7, 0, 280,
+ 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
+ 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
+ 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
+ 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 1, 0, 0, 0,
+ 2, 46, 3, 4, 5, 6, 7, 0, 0, 0,
+ 289, 0, 0, 0, 11, 12, 0, 14, 65, 16,
+ 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
+ 26, 27, 0, 0, 0, 283, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 284, 0, 0, 0, 0, 0,
+ 46, 0, 124, 125, 126, 127, 128, 129, 0, 130,
+ 0, 0, 131, 132, 133, 124, 125, 126, 127, 128,
+ 129, 0, 130, 0, 0, 131, 132, 133, 0, 0,
+ 134, 135, 136, 137, 138, 139, 140, 0, 0, 0,
+ 0, 0, 0, 134, 135, 136, 137, 138, 139, 140,
+ 0, 0, 199, 0, 169, 124, 125, 126, 127, 128,
+ 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
+ 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
+ 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
+ 0, 0, 0, 0, 169, 0, 134, 135, 136, 137,
+ 138, 139, 140, 0, 224, 124, 125, 126, 127, 128,
+ 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
+ 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
+ 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
+ 0, 273, 0, 0, 0, 0, 134, 135, 136, 137,
+ 138, 139, 140, 0, 302, 124, 125, 126, 127, 128,
+ 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
+ 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
+ 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
+ 0, 308, 0, 0, 0, 0, 134, 135, 136, 137,
+ 138, 139, 140
};
static const yytype_int16 yycheck[] =
{
- 0, 28, 0, 20, 0, 54, 188, 57, 39, 9,
- 57, 73, 86, 13, 196, 88, 42, 44, 39, 92,
- 20, 86, 204, 87, 86, 25, 52, 91, 28, 87,
- 79, 81, 82, 83, 84, 88, 83, 84, 86, 88,
- 75, 76, 77, 86, 44, 45, 216, 44, 45, 49,
- 220, 49, 86, 235, 103, 86, 226, 86, 87, 86,
- 230, 243, 144, 145, 87, 89, 86, 86, 250, 91,
- 86, 120, 52, 100, 256, 23, 246, 92, 92, 79,
- 262, 91, 86, 253, 86, 24, 86, 257, 89, 92,
- 89, 86, 92, 263, 42, 86, 266, 86, 86, 86,
- 100, 86, 50, 51, 52, 53, 54, 55, 108, 57,
- 86, 42, 60, 61, 62, 57, 86, 86, 60, 86,
- 86, 121, 86, 121, 86, 49, 143, 144, 145, 229,
- 78, 79, 80, 81, 82, 83, 84, 41, 80, 81,
- 82, 83, 84, 143, 144, 145, 50, 51, 52, 53,
- 54, 55, 165, 57, -1, 10, 60, 61, 62, -1,
- -1, -1, -1, 18, -1, 165, -1, -1, -1, 169,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, -1, -1, -1, -1, 188, -1,
- -1, -1, -1, -1, -1, -1, 196, -1, 198, -1,
- -1, 228, -1, -1, 204, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 216, -1, -1, 219,
- 220, 219, -1, 78, -1, -1, 226, -1, 228, -1,
- 230, -1, 232, 88, 232, 235, -1, -1, 93, -1,
- -1, -1, 242, 243, -1, -1, 246, -1, 103, -1,
- 250, -1, -1, 253, -1, -1, 256, 257, -1, 259,
- -1, -1, 262, 263, -1, -1, 266, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, -1, -1, -1, -1, -1, -1,
- -1, -1, 147, -1, -1, -1, -1, 152, -1, -1,
- -1, -1, -1, -1, -1, -1, 161, 162, -1, 164,
- -1, -1, 5, -1, -1, -1, -1, 10, -1, -1,
- 13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
- 195, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, 238, 77, -1, -1, -1, 81, 82,
- -1, -1, 247, 5, -1, 88, -1, 90, 10, 92,
- -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, -1, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
- 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
- 13, 14, 15, -1, 17, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 0, 198, 20, 28, 0, 153, 57, 39, 42, 9,
+ 244, 73, 0, 13, 248, 87, 92, 89, 52, 44,
+ 20, 57, 88, 92, 86, 25, 92, 224, 28, 105,
+ 81, 82, 83, 84, 86, 232, 105, 87, 272, 44,
+ 45, 91, 276, 86, 44, 45, 39, 83, 84, 49,
+ 87, 199, 92, 49, 86, 75, 76, 77, 292, 86,
+ 87, 150, 151, 88, 88, 299, 92, 86, 91, 303,
+ 86, 86, 86, 86, 222, 309, 101, 86, 312, 79,
+ 91, 87, 86, 280, 50, 51, 52, 53, 88, 52,
+ 89, 57, 289, 93, 60, 61, 62, 86, 92, 296,
+ 24, 101, 86, 86, 86, 302, 86, 86, 108, 42,
+ 86, 308, 78, 79, 80, 81, 82, 83, 84, 86,
+ 49, 86, 86, 123, 86, 86, 275, 123, 146, 54,
+ 174, 57, 150, 151, 60, 122, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 146, -1, -1, -1,
+ 150, 151, -1, -1, 80, 81, 82, 83, 84, 13,
14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, -1, -1, -1, -1, 31, 32, -1,
+ -1, -1, -1, -1, 174, -1, -1, 31, 32, 179,
34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 44, 45, -1, 47, 48, -1, -1, -1, 198, 10,
+ 54, 55, 56, 57, 58, 59, -1, 18, 62, 63,
64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
- -1, 13, -1, -1, 88, 17, 90, 19, 20, 21,
- 22, 23, -1, -1, 26, 27, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, 46, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, -1, 13, -1, -1, 77, 17, -1, 19, 20,
- 21, 22, 23, 24, 86, 26, 27, -1, -1, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 74, 13, -1, 77, -1, 17, -1,
- 19, 20, 21, 22, 23, 86, -1, 26, 27, -1,
- -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ -1, -1, -1, 77, 224, -1, 226, -1, -1, -1,
+ -1, -1, 232, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 54, 244, -1, -1, 247, 248, 274,
+ -1, 247, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, -1, 272, -1, 274, -1, 276, 277, -1, 90,
+ 280, 277, -1, 94, -1, -1, -1, -1, 288, 289,
+ -1, -1, 292, -1, -1, -1, 296, -1, -1, 299,
+ -1, -1, 302, 303, -1, 305, -1, -1, 308, 309,
+ -1, -1, 312, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ -1, -1, -1, 41, -1, -1, 147, 148, 149, -1,
+ -1, 152, 50, 51, 52, 53, 54, 55, -1, 57,
+ -1, 162, 60, 61, 62, -1, -1, -1, -1, 170,
+ 171, -1, 173, -1, -1, -1, 177, -1, -1, -1,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
+ 221, -1, 223, -1, -1, -1, -1, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, 5, 60, 61, 62,
+ -1, 10, -1, -1, 13, 14, 15, -1, 17, -1,
+ 19, 20, 21, 22, 23, 78, 79, 80, 81, 82,
+ 83, 84, 31, 32, 87, 34, 35, 36, 37, -1,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, -1, 75, -1, 77, -1,
- -1, -1, 13, -1, -1, 16, 17, 86, 19, 20,
- 21, 22, 23, -1, -1, 26, 27, -1, -1, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, -1, -1, 77, 17, -1, 19,
- 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 74, 13, -1, 77, -1, 17,
- -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
- -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
- -1, 17, -1, 19, 20, 21, 22, 23, 86, -1,
+ -1, -1, -1, 284, -1, 54, 55, 56, 57, 58,
+ 59, -1, 293, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
+ -1, -1, 81, 82, -1, -1, -1, 5, -1, 88,
+ -1, 90, 10, 92, -1, 13, 14, 15, -1, 17,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, -1,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, 5, 87,
+ 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
+ 17, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
+ 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
+ -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, -1, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, -1, -1, -1,
+ 5, -1, 88, 89, 90, 10, -1, -1, 13, 14,
+ 15, -1, 17, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, -1, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, -1, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
+ -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
+ -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, -1, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
+ -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
+ 17, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, -1, -1, -1, -1, -1, -1, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
+ -1, 88, 10, 90, -1, 13, 14, 15, -1, 17,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, -1,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, -1, -1, -1, -1, -1, -1, -1, 56, 57,
+ 58, 59, -1, -1, -1, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
+ 88, 10, 90, -1, 13, 14, 15, -1, 17, -1,
+ 19, 20, 21, 22, 23, -1, -1, -1, -1, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ -1, -1, -1, -1, -1, -1, -1, 56, -1, 58,
+ 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
+ -1, -1, -1, -1, -1, -1, 13, -1, -1, 88,
+ 17, 90, 19, 20, 21, 22, 23, -1, -1, 26,
+ 27, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, -1, 13, -1, -1,
+ 77, 17, -1, 19, 20, 21, 22, 23, 24, 86,
+ 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
+ -1, 77, -1, 17, -1, 19, 20, 21, 22, 23,
+ 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ -1, 75, -1, 77, -1, -1, -1, 13, -1, -1,
+ 16, 17, 86, 19, 20, 21, 22, 23, -1, -1,
26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
-1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, 75,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
-1, 77, 17, -1, 19, 20, 21, 22, 23, -1,
86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- 75, -1, 77, 17, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, -1, -1, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, -1, -1, 77, 17, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, -1, -1, 30, 31, 32,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
+ 13, -1, 77, -1, 17, -1, 19, 20, 21, 22,
+ 23, 86, -1, 26, 27, -1, -1, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, -1, -1, 77, 17, -1, 19, 20, 21,
- 22, 23, -1, 86, 26, 27, -1, -1, 30, 31,
- 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 13, -1, -1, 77, 17, -1, 19, 20,
- 21, 22, 23, -1, 86, 26, 27, -1, -1, 30,
+ -1, 74, 13, -1, 77, -1, 17, -1, 19, 20,
+ 21, 22, 23, 86, -1, 26, 27, -1, -1, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 13, 14, 15, -1, 17, 77, 19, 20, 21,
- 22, 23, -1, -1, -1, 86, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- 13, -1, -1, -1, 17, 77, 19, 20, 21, 22,
- 23, -1, -1, -1, -1, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, -1, -1, -1, -1,
- 32, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 50, 51,
- 52, 53, 54, 55, 77, 57, 58, 59, 60, 61,
- 62, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, -1, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
- 89, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, 50, 51, 52, 53, -1, -1,
- -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84
+ 71, -1, -1, 13, 75, -1, 77, 17, -1, 19,
+ 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 13, 75, -1, 77, 17, -1,
+ 19, 20, 21, 22, 23, -1, 86, 26, 27, -1,
+ -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ 17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
+ 77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
+ 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 13, -1, -1, -1,
+ 17, 77, 19, 20, 21, 22, 23, -1, -1, -1,
+ 86, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, -1, -1, -1, 23, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 42, -1, -1, -1, -1, -1,
+ 77, -1, 50, 51, 52, 53, 54, 55, -1, 57,
+ -1, -1, 60, 61, 62, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, 87, -1, 89, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1200,29 +1314,33 @@ static const yytype_uint8 yystos[] =
40, 42, 43, 44, 45, 46, 47, 48, 49, 54,
55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 77, 86, 94, 95,
- 96, 97, 98, 103, 105, 108, 109, 110, 111, 113,
- 114, 115, 116, 39, 86, 35, 39, 40, 105, 106,
+ 96, 97, 98, 103, 105, 108, 109, 110, 112, 114,
+ 115, 116, 117, 39, 86, 35, 39, 40, 105, 106,
107, 5, 10, 14, 15, 56, 81, 82, 88, 90,
- 105, 120, 121, 124, 125, 128, 105, 39, 88, 128,
- 129, 130, 44, 45, 105, 121, 123, 105, 106, 106,
- 105, 0, 96, 88, 128, 129, 86, 86, 87, 124,
- 124, 124, 128, 14, 15, 92, 105, 126, 127, 129,
- 88, 41, 50, 51, 52, 53, 54, 55, 57, 60,
- 61, 62, 78, 79, 80, 81, 82, 83, 84, 106,
- 86, 128, 129, 32, 58, 59, 86, 87, 105, 128,
- 42, 52, 112, 86, 86, 86, 106, 129, 86, 105,
- 89, 92, 92, 91, 92, 87, 91, 91, 129, 86,
- 108, 128, 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128, 86, 89,
- 121, 122, 122, 122, 128, 52, 86, 128, 73, 86,
- 99, 100, 101, 102, 86, 89, 128, 128, 128, 14,
- 15, 105, 127, 89, 86, 108, 117, 118, 119, 24,
- 117, 86, 86, 86, 86, 128, 117, 86, 105, 86,
- 117, 86, 24, 74, 119, 86, 108, 23, 42, 75,
- 106, 102, 16, 86, 108, 86, 117, 42, 128, 86,
- 86, 104, 105, 117, 74, 128, 86, 117, 86, 87,
- 74, 86, 86, 117, 105, 86, 117, 75, 75, 86,
- 86
+ 105, 121, 122, 125, 128, 129, 130, 132, 105, 39,
+ 88, 111, 132, 44, 45, 105, 122, 124, 105, 106,
+ 106, 105, 0, 96, 111, 132, 86, 86, 87, 130,
+ 130, 130, 132, 14, 15, 92, 105, 126, 127, 132,
+ 134, 135, 88, 41, 50, 51, 52, 53, 54, 55,
+ 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
+ 84, 106, 86, 89, 132, 86, 32, 54, 55, 57,
+ 58, 59, 62, 87, 121, 128, 131, 133, 105, 132,
+ 42, 52, 113, 86, 86, 86, 106, 86, 105, 89,
+ 92, 92, 91, 92, 87, 91, 91, 87, 134, 86,
+ 108, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 86, 87,
+ 122, 123, 123, 123, 135, 50, 51, 52, 53, 54,
+ 55, 57, 60, 61, 62, 78, 79, 80, 81, 82,
+ 83, 84, 87, 52, 86, 132, 73, 86, 99, 100,
+ 101, 102, 86, 132, 132, 132, 14, 15, 105, 127,
+ 132, 89, 86, 108, 118, 119, 120, 24, 118, 135,
+ 86, 86, 86, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 135, 132, 118, 86, 105, 86, 118, 24, 74, 120,
+ 86, 108, 89, 23, 42, 75, 106, 102, 16, 86,
+ 108, 86, 118, 42, 132, 86, 86, 104, 105, 118,
+ 74, 132, 86, 118, 86, 87, 74, 86, 86, 118,
+ 105, 86, 118, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1235,14 +1353,17 @@ static const yytype_uint8 yyr1[] =
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 106, 106, 107, 107, 108, 108, 108, 108, 109,
- 109, 109, 110, 110, 110, 110, 110, 110, 110, 111,
- 111, 111, 111, 112, 112, 113, 113, 113, 114, 114,
- 115, 115, 115, 115, 116, 116, 116, 117, 117, 118,
- 118, 119, 119, 120, 120, 120, 120, 120, 120, 120,
- 120, 120, 120, 121, 122, 123, 124, 124, 125, 125,
- 125, 126, 126, 127, 127, 127, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 129, 129, 130, 130
+ 109, 109, 110, 110, 110, 110, 110, 111, 111, 111,
+ 111, 111, 111, 111, 112, 112, 112, 112, 113, 113,
+ 114, 114, 114, 115, 115, 116, 116, 116, 116, 117,
+ 117, 117, 118, 118, 119, 119, 120, 120, 121, 121,
+ 121, 121, 121, 121, 121, 121, 122, 123, 124, 125,
+ 125, 125, 126, 126, 127, 127, 127, 128, 129, 129,
+ 130, 130, 130, 131, 131, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 134, 134, 135, 135
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1255,14 +1376,17 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 5, 3, 5, 3, 3, 3, 2, 5,
- 5, 5, 5, 1, 1, 3, 3, 3, 4, 7,
- 6, 9, 7, 10, 7, 11, 12, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 4, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
+ 1, 1, 3, 3, 3, 3, 2, 0, 1, 3,
+ 2, 4, 2, 5, 5, 5, 5, 5, 1, 1,
+ 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
+ 11, 12, 0, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 2, 4, 1, 1, 1, 1, 1, 3,
+ 3, 3, 1, 3, 3, 3, 3, 3, 2, 2,
+ 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 0, 1, 1, 3
+ 3, 0, 1, 1, 3
};
@@ -1534,51 +1658,51 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1540 "engines/director/lingo/lingo-gr.cpp"
+#line 1664 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1546 "engines/director/lingo/lingo-gr.cpp"
+#line 1670 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1552 "engines/director/lingo/lingo-gr.cpp"
+#line 1676 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1558 "engines/director/lingo/lingo-gr.cpp"
+#line 1682 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1564 "engines/director/lingo/lingo-gr.cpp"
+#line 1688 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1570 "engines/director/lingo/lingo-gr.cpp"
+#line 1694 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1576 "engines/director/lingo/lingo-gr.cpp"
+#line 1700 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 188 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1582 "engines/director/lingo/lingo-gr.cpp"
+#line 1706 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1844,792 +1968,941 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 194 "engines/director/lingo/lingo-gr.y"
+#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1850 "engines/director/lingo/lingo-gr.cpp"
+#line 1974 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 196 "engines/director/lingo/lingo-gr.y"
+#line 198 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1861 "engines/director/lingo/lingo-gr.cpp"
+#line 1985 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 202 "engines/director/lingo/lingo-gr.y"
+#line 204 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1871 "engines/director/lingo/lingo-gr.cpp"
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 209 "engines/director/lingo/lingo-gr.y"
+#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1877 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 242 "engines/director/lingo/lingo-gr.y"
+#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1883 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 246 "engines/director/lingo/lingo-gr.y"
+#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 1889 "engines/director/lingo/lingo-gr.cpp"
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 248 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1895 "engines/director/lingo/lingo-gr.cpp"
+#line 2019 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 250 "engines/director/lingo/lingo-gr.y"
+#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 1901 "engines/director/lingo/lingo-gr.cpp"
+#line 2025 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 254 "engines/director/lingo/lingo-gr.y"
+#line 256 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1912 "engines/director/lingo/lingo-gr.cpp"
+#line 2036 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 260 "engines/director/lingo/lingo-gr.y"
+#line 262 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 1922 "engines/director/lingo/lingo-gr.cpp"
+#line 2046 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 267 "engines/director/lingo/lingo-gr.y"
+#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 1928 "engines/director/lingo/lingo-gr.cpp"
+#line 2052 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 273 "engines/director/lingo/lingo-gr.y"
+#line 275 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 1937 "engines/director/lingo/lingo-gr.cpp"
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 277 "engines/director/lingo/lingo-gr.y"
+#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 1944 "engines/director/lingo/lingo-gr.cpp"
+#line 2068 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 282 "engines/director/lingo/lingo-gr.y"
+#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1950 "engines/director/lingo/lingo-gr.cpp"
+#line 2074 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 283 "engines/director/lingo/lingo-gr.y"
+#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 1956 "engines/director/lingo/lingo-gr.cpp"
+#line 2080 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
-#line 289 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 1962 "engines/director/lingo/lingo-gr.cpp"
+#line 2086 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
-#line 290 "engines/director/lingo/lingo-gr.y"
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 1968 "engines/director/lingo/lingo-gr.cpp"
+#line 2092 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
-#line 291 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 1974 "engines/director/lingo/lingo-gr.cpp"
+#line 2098 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 1980 "engines/director/lingo/lingo-gr.cpp"
+#line 2104 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 1986 "engines/director/lingo/lingo-gr.cpp"
+#line 2110 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
-#line 294 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 1992 "engines/director/lingo/lingo-gr.cpp"
+#line 2116 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
-#line 299 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 1998 "engines/director/lingo/lingo-gr.cpp"
+#line 2122 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tIN */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2004 "engines/director/lingo/lingo-gr.cpp"
+#line 2128 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tINTERSECTS */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2010 "engines/director/lingo/lingo-gr.cpp"
+#line 2134 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTO */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2016 "engines/director/lingo/lingo-gr.cpp"
+#line 2140 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tITEM */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2022 "engines/director/lingo/lingo-gr.cpp"
+#line 2146 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tLINE */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2028 "engines/director/lingo/lingo-gr.cpp"
+#line 2152 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tMOD */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2034 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOVIE */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2040 "engines/director/lingo/lingo-gr.cpp"
+#line 2164 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tNEXT */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2046 "engines/director/lingo/lingo-gr.cpp"
+#line 2170 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNOT */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2052 "engines/director/lingo/lingo-gr.cpp"
+#line 2176 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tOF */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2058 "engines/director/lingo/lingo-gr.cpp"
+#line 2182 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOPEN */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2064 "engines/director/lingo/lingo-gr.cpp"
+#line 2188 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOR */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2070 "engines/director/lingo/lingo-gr.cpp"
+#line 2194 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tPLAY */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2076 "engines/director/lingo/lingo-gr.cpp"
+#line 2200 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAYACCEL */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 2082 "engines/director/lingo/lingo-gr.cpp"
+#line 2206 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPREVIOUS */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2088 "engines/director/lingo/lingo-gr.cpp"
+#line 2212 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tREPEAT */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2094 "engines/director/lingo/lingo-gr.cpp"
+#line 2218 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSCRIPT */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2100 "engines/director/lingo/lingo-gr.cpp"
+#line 2224 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSET */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2106 "engines/director/lingo/lingo-gr.cpp"
+#line 2230 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSTARTS */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2112 "engines/director/lingo/lingo-gr.cpp"
+#line 2236 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTELL */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2118 "engines/director/lingo/lingo-gr.cpp"
+#line 2242 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tTO */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2124 "engines/director/lingo/lingo-gr.cpp"
+#line 2248 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tASSERTERROR */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2130 "engines/director/lingo/lingo-gr.cpp"
+#line 2254 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tSPRITE */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2136 "engines/director/lingo/lingo-gr.cpp"
+#line 2260 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWHEN */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2266 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWHILE */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2148 "engines/director/lingo/lingo-gr.cpp"
+#line 2272 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWINDOW */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2154 "engines/director/lingo/lingo-gr.cpp"
+#line 2278 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWITH */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2160 "engines/director/lingo/lingo-gr.cpp"
+#line 2284 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWITHIN */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2166 "engines/director/lingo/lingo-gr.cpp"
+#line 2290 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWORD */
-#line 337 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2172 "engines/director/lingo/lingo-gr.cpp"
+#line 2296 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* idlist: %empty */
-#line 340 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2302 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* nonemptyidlist: ID */
-#line 344 "engines/director/lingo/lingo-gr.y"
+#line 346 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2187 "engines/director/lingo/lingo-gr.cpp"
+#line 2311 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 348 "engines/director/lingo/lingo-gr.y"
+#line 350 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2195 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 72: /* proc: ID '(' exprlist ')' '\n' */
-#line 369 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 2201 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 73: /* proc: ID exprlist '\n' */
-#line 370 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2207 "engines/director/lingo/lingo-gr.cpp"
+#line 2319 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tPUT '(' exprlist ')' '\n' */
+ case 72: /* proc: ID cmdargs '\n' */
#line 371 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-2].nodelist)); }
-#line 2213 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
+#line 2325 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tPUT exprlist '\n' */
+ case 73: /* proc: tPUT cmdargs '\n' */
#line 372 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2219 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
+#line 2331 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tNEXT tREPEAT '\n' */
+ case 74: /* proc: tNEXT tREPEAT '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2225 "engines/director/lingo/lingo-gr.cpp"
+#line 2337 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tEXIT tREPEAT '\n' */
+ case 75: /* proc: tEXIT tREPEAT '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2231 "engines/director/lingo/lingo-gr.cpp"
+#line 2343 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* proc: tEXIT '\n' */
+ case 76: /* proc: tEXIT '\n' */
#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
+#line 2349 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* asgn: tPUT expr tINTO varorchunk '\n' */
+ case 77: /* cmdargs: %empty */
#line 378 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd`
+ (yyval.nodelist) = new NodeList; }
+#line 2357 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 78: /* cmdargs: expr */
+#line 381 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd arg` and `cmd(arg)`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2367 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 79: /* cmdargs: expr ',' nonemptyexprlist */
+#line 386 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd args, ...)
+ (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
+ (yyval.nodelist) = (yyvsp[0].nodelist); }
+#line 2376 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 80: /* cmdargs: expr expr_nounarymath */
+#line 390 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd arg arg`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-1].node));
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2387 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 81: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 396 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd arg arg, ...`
+ (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
+ (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
+ (yyval.nodelist) = (yyvsp[0].nodelist); }
+#line 2397 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 82: /* cmdargs: '(' ')' */
+#line 401 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd()`
+ (yyval.nodelist) = new NodeList; }
+#line 2405 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 83: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 404 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `cmd(args, ...)`
+ (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 84: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 410 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2243 "engines/director/lingo/lingo-gr.cpp"
+#line 2420 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+ case 85: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2249 "engines/director/lingo/lingo-gr.cpp"
+#line 2426 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 380 "engines/director/lingo/lingo-gr.y"
+ case 86: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 412 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2255 "engines/director/lingo/lingo-gr.cpp"
+#line 2432 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* asgn: tSET varorthe to expr '\n' */
-#line 381 "engines/director/lingo/lingo-gr.y"
+ case 87: /* asgn: tSET varorthe to expr '\n' */
+#line 413 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2261 "engines/director/lingo/lingo-gr.cpp"
+#line 2438 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* definevars: tGLOBAL idlist '\n' */
-#line 386 "engines/director/lingo/lingo-gr.y"
+ case 90: /* definevars: tGLOBAL idlist '\n' */
+#line 418 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2267 "engines/director/lingo/lingo-gr.cpp"
+#line 2444 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* definevars: tPROPERTY idlist '\n' */
-#line 387 "engines/director/lingo/lingo-gr.y"
+ case 91: /* definevars: tPROPERTY idlist '\n' */
+#line 419 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2273 "engines/director/lingo/lingo-gr.cpp"
+#line 2450 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* definevars: tINSTANCE idlist '\n' */
-#line 388 "engines/director/lingo/lingo-gr.y"
+ case 92: /* definevars: tINSTANCE idlist '\n' */
+#line 420 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2279 "engines/director/lingo/lingo-gr.cpp"
+#line 2456 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* ifstmt: tIF expr tTHEN stmt */
-#line 391 "engines/director/lingo/lingo-gr.y"
+ case 93: /* ifstmt: tIF expr tTHEN stmt */
+#line 423 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2465 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 395 "engines/director/lingo/lingo-gr.y"
+ case 94: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 427 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2295 "engines/director/lingo/lingo-gr.cpp"
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 399 "engines/director/lingo/lingo-gr.y"
+ case 95: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 431 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2306 "engines/director/lingo/lingo-gr.cpp"
+#line 2483 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 96: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 437 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2315 "engines/director/lingo/lingo-gr.cpp"
+#line 2492 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 97: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 441 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2324 "engines/director/lingo/lingo-gr.cpp"
+#line 2501 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 98: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 445 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2331 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 417 "engines/director/lingo/lingo-gr.y"
+ case 99: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 449 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2338 "engines/director/lingo/lingo-gr.cpp"
+#line 2515 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 419 "engines/director/lingo/lingo-gr.y"
+ case 100: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 451 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2345 "engines/director/lingo/lingo-gr.cpp"
+#line 2522 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 421 "engines/director/lingo/lingo-gr.y"
+ case 101: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 453 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2352 "engines/director/lingo/lingo-gr.cpp"
+#line 2529 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* stmtlist: %empty */
-#line 425 "engines/director/lingo/lingo-gr.y"
+ case 102: /* stmtlist: %empty */
+#line 457 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2358 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* nonemptystmtlist: stmtlistline */
-#line 430 "engines/director/lingo/lingo-gr.y"
+ case 104: /* nonemptystmtlist: stmtlistline */
+#line 462 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2546 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 105: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 468 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2379 "engines/director/lingo/lingo-gr.cpp"
+#line 2556 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* stmtlistline: '\n' */
-#line 443 "engines/director/lingo/lingo-gr.y"
+ case 106: /* stmtlistline: '\n' */
+#line 475 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2385 "engines/director/lingo/lingo-gr.cpp"
+#line 2562 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* simpleexprnoparens: tINT */
-#line 449 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2391 "engines/director/lingo/lingo-gr.cpp"
+ case 108: /* simpleexpr_noparens_nounarymath: tINT */
+#line 482 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new IntNode((yyvsp[0].i)); }
+#line 2568 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* simpleexprnoparens: tFLOAT */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 109: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2397 "engines/director/lingo/lingo-gr.cpp"
+#line 2574 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* simpleexprnoparens: tSYMBOL */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 110: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 484 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2580 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* simpleexprnoparens: tSTRING */
-#line 452 "engines/director/lingo/lingo-gr.y"
+ case 111: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2409 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 107: /* simpleexprnoparens: '+' simpleexpr */
-#line 453 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 2415 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 108: /* simpleexprnoparens: '-' simpleexpr */
-#line 454 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2421 "engines/director/lingo/lingo-gr.cpp"
+#line 2586 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* simpleexprnoparens: tNOT simpleexpr */
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 112: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 486 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2427 "engines/director/lingo/lingo-gr.cpp"
+#line 2592 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* simpleexprnoparens: ID '(' exprlist ')' */
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 113: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 487 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2433 "engines/director/lingo/lingo-gr.cpp"
+#line 2598 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* var: ID */
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 116: /* var: ID */
+#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2439 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* simpleexpr: '(' expr ')' */
-#line 472 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[-1].node); }
-#line 2445 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 118: /* list: '[' exprlist ']' */
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 119: /* list: '[' exprlist ']' */
+#line 502 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2451 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* list: '[' ':' ']' */
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 120: /* list: '[' ':' ']' */
+#line 503 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2457 "engines/director/lingo/lingo-gr.cpp"
+#line 2616 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* list: '[' proplist ']' */
-#line 477 "engines/director/lingo/lingo-gr.y"
+ case 121: /* list: '[' proplist ']' */
+#line 504 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2463 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* proplist: proppair */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 122: /* proplist: proppair */
+#line 507 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2472 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* proplist: proplist ',' proppair */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 123: /* proplist: proplist ',' proppair */
+#line 511 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2480 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* proppair: tSYMBOL ':' expr */
-#line 489 "engines/director/lingo/lingo-gr.y"
+ case 124: /* proppair: tSYMBOL ':' expr */
+#line 516 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2486 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* proppair: ID ':' expr */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 125: /* proppair: ID ':' expr */
+#line 517 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* proppair: tSTRING ':' expr */
-#line 491 "engines/director/lingo/lingo-gr.y"
+ case 126: /* proppair: tSTRING ':' expr */
+#line 518 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2498 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* expr: simpleexpr */
-#line 494 "engines/director/lingo/lingo-gr.y"
+ case 127: /* parens: '(' expr ')' */
+#line 521 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 128: /* unarymath: '+' simpleexpr */
+#line 523 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* expr: expr '+' expr */
-#line 495 "engines/director/lingo/lingo-gr.y"
+ case 129: /* unarymath: '-' simpleexpr */
+#line 524 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 136: /* expr: expr '+' expr */
+#line 542 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2510 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* expr: expr '-' expr */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 137: /* expr: expr '-' expr */
+#line 543 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2516 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* expr: expr '*' expr */
-#line 497 "engines/director/lingo/lingo-gr.y"
+ case 138: /* expr: expr '*' expr */
+#line 544 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2522 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* expr: expr '/' expr */
-#line 498 "engines/director/lingo/lingo-gr.y"
+ case 139: /* expr: expr '/' expr */
+#line 545 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2528 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* expr: expr tMOD expr */
-#line 499 "engines/director/lingo/lingo-gr.y"
+ case 140: /* expr: expr tMOD expr */
+#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2534 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* expr: expr '>' expr */
-#line 500 "engines/director/lingo/lingo-gr.y"
+ case 141: /* expr: expr '>' expr */
+#line 547 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2540 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* expr: expr '<' expr */
-#line 501 "engines/director/lingo/lingo-gr.y"
+ case 142: /* expr: expr '<' expr */
+#line 548 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* expr: expr tEQ expr */
-#line 502 "engines/director/lingo/lingo-gr.y"
+ case 143: /* expr: expr tEQ expr */
+#line 549 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* expr: expr tNEQ expr */
-#line 503 "engines/director/lingo/lingo-gr.y"
+ case 144: /* expr: expr tNEQ expr */
+#line 550 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2558 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* expr: expr tGE expr */
-#line 504 "engines/director/lingo/lingo-gr.y"
+ case 145: /* expr: expr tGE expr */
+#line 551 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2564 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* expr: expr tLE expr */
-#line 505 "engines/director/lingo/lingo-gr.y"
+ case 146: /* expr: expr tLE expr */
+#line 552 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* expr: expr tAND expr */
-#line 506 "engines/director/lingo/lingo-gr.y"
+ case 147: /* expr: expr tAND expr */
+#line 553 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* expr: expr tOR expr */
-#line 507 "engines/director/lingo/lingo-gr.y"
+ case 148: /* expr: expr tOR expr */
+#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2582 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* expr: expr '&' expr */
-#line 508 "engines/director/lingo/lingo-gr.y"
+ case 149: /* expr: expr '&' expr */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* expr: expr tCONCAT expr */
-#line 509 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr tCONCAT expr */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2594 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* expr: expr tCONTAINS expr */
-#line 510 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr tCONTAINS expr */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2600 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* expr: expr tSTARTS expr */
-#line 511 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr tSTARTS expr */
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2606 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* exprlist: %empty */
-#line 514 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 566 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 155: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 567 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 156: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 568 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 157: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 569 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 158: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 570 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 159: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 571 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 160: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 572 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 161: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 573 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 162: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 574 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 163: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 575 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 164: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 576 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 165: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 577 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 166: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 578 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 167: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 579 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 168: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 580 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 169: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 581 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 170: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 582 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 171: /* exprlist: %empty */
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2612 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* nonemptyexprlist: expr */
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 173: /* nonemptyexprlist: expr */
+#line 589 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2894 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 174: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2629 "engines/director/lingo/lingo-gr.cpp"
+#line 2902 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2906 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -2828,7 +3101,7 @@ yyreturn:
return yyresult;
}
-#line 527 "engines/director/lingo/lingo-gr.y"
+#line 598 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 447ae6257a..db48c7eb86 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -167,11 +167,13 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> stmt stmtoneliner
%type<node> proc asgn definevars
%type<node> ifstmt ifelsestmt loop
-%type<nodelist> stmtlist nonemptystmtlist
+%type<nodelist> cmdargs stmtlist nonemptystmtlist
%type<node> stmtlistline
// EXPRESSION
-%type<node> simpleexprnoparens simpleexpr expr
+%type<node> simpleexpr_noparens_nounarymath simpleexpr simpleexpr_noparens simpleexpr_nounarymath
+%type<node> parens unarymath
+%type<node> expr expr_nounarymath
%type<node> var varorchunk varorthe
%type<node> list proppair
%type<nodelist> proplist exprlist nonemptyexprlist
@@ -366,15 +368,45 @@ stmtoneliner: proc
| definevars
;
-proc: ID '(' exprlist[args] ')' '\n' { $$ = new CmdNode($ID, $args); }
- | ID exprlist[args] '\n' { $$ = new CmdNode($ID, $args); }
- | tPUT '(' exprlist[args] ')' '\n' { $$ = new CmdNode(new Common::String("put"), $args); }
- | tPUT exprlist[args] '\n' { $$ = new CmdNode(new Common::String("put"), $args); }
+proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
+ | tPUT cmdargs '\n' { $$ = new CmdNode(new Common::String("put"), $cmdargs); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
| tEXIT '\n' { $$ = new ExitNode(); }
;
+cmdargs: /* empty */ {
+ // This matches `cmd`
+ $$ = new NodeList; }
+ | expr {
+ // This matches `cmd arg` and `cmd(arg)`
+ NodeList *args = new NodeList;
+ args->push_back($expr);
+ $$ = args; }
+ | expr ',' nonemptyexprlist[args] {
+ // This matches `cmd args, ...)
+ $args->insert_at(0, $expr);
+ $$ = $args; }
+ | expr expr_nounarymath {
+ // This matches `cmd arg arg`
+ NodeList *args = new NodeList;
+ args->push_back($expr);
+ args->push_back($expr_nounarymath);
+ $$ = args; }
+ | expr expr_nounarymath ',' nonemptyexprlist[args] {
+ // This matches `cmd arg arg, ...`
+ $args->insert_at(0, $expr_nounarymath);
+ $args->insert_at(0, $expr);
+ $$ = $args; }
+ | '(' ')' {
+ // This matches `cmd()`
+ $$ = new NodeList; }
+ | '(' expr ',' nonemptyexprlist[args] ')' {
+ // This matches `cmd(args, ...)`
+ $args->insert_at(0, $expr);
+ $$ = $args; }
+ ;
+
asgn: tPUT expr tINTO varorchunk '\n' { $$ = new PutIntoNode($expr, $varorchunk); }
| tPUT expr tAFTER varorchunk '\n' { $$ = new PutAfterNode($expr, $varorchunk); }
| tPUT expr tBEFORE varorchunk '\n' { $$ = new PutBeforeNode($expr, $varorchunk); }
@@ -446,12 +478,11 @@ stmtlistline: '\n' { $$ = nullptr; }
// EXPRESSION
-simpleexprnoparens: tINT { $$ = new IntNode($tINT); }
+simpleexpr_noparens_nounarymath:
+ tINT { $$ = new IntNode($tINT); }
| tFLOAT { $$ = new FloatNode($tFLOAT); }
| tSYMBOL { $$ = new SymbolNode($tSYMBOL); } // D3
| tSTRING { $$ = new StringNode($tSTRING); }
- | '+' simpleexpr[arg] %prec tUNARY { $$ = $arg; }
- | '-' simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_negate, $arg); }
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
| ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
| var
@@ -468,10 +499,6 @@ varorthe: var
// TODO: the
;
-simpleexpr: simpleexprnoparens
- | '(' expr ')' { $$ = $expr; }
- ;
-
list: '[' exprlist ']' { $$ = new ListNode($exprlist); }
| '[' ':' ']' { $$ = new PropListNode(new NodeList); }
| '[' proplist ']' { $$ = new PropListNode($proplist); }
@@ -491,7 +518,27 @@ proppair: tSYMBOL ':' expr { $$ = new PropPairNode(new SymbolNode($tSYMBOL), $e
| tSTRING ':' expr { $$ = new PropPairNode(new StringNode($tSTRING), $expr); }
;
-expr: simpleexpr { $$ = $simpleexpr; }
+parens: '(' expr ')' { $$ = $expr; } ;
+
+unarymath: '+' simpleexpr[arg] %prec tUNARY { $$ = $arg; }
+ | '-' simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_negate, $arg); }
+ ;
+
+simpleexpr: simpleexpr_noparens_nounarymath
+ | parens
+ | unarymath
+ ;
+
+simpleexpr_noparens: simpleexpr_noparens_nounarymath
+ | unarymath
+ ;
+
+simpleexpr_nounarymath: simpleexpr_noparens_nounarymath
+ | parens
+ ;
+
+// REMEMBER TO SYNC THIS WITH expr_nounarymath!
+expr: simpleexpr
| expr[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
| expr[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
| expr[a] '*' expr[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
@@ -511,6 +558,30 @@ expr: simpleexpr { $$ = $simpleexpr; }
| expr[a] tSTARTS expr[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
;
+// This is the same as expr except it can't start with a unary math operator.
+// It's ugly but unfortunately necessary to allow two expressions in a row with no delimeter.
+// Without this, `cmd 1 + 1` could be interpreted as either `cmd(1 + 1)` or `cmd(1, +1)`.
+// We only want to allow the first interpretation, so we must exclude unary math from the second expression.
+expr_nounarymath: simpleexpr_nounarymath
+ | expr_nounarymath[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
+ | expr_nounarymath[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
+ | expr_nounarymath[a] '*' expr[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
+ | expr_nounarymath[a] '/' expr[b] { $$ = new BinaryOpNode(LC::c_div, $a, $b); }
+ | expr_nounarymath[a] tMOD expr[b] { $$ = new BinaryOpNode(LC::c_mod, $a, $b); }
+ | expr_nounarymath[a] '>' expr[b] { $$ = new BinaryOpNode(LC::c_gt, $a, $b); }
+ | expr_nounarymath[a] '<' expr[b] { $$ = new BinaryOpNode(LC::c_lt, $a, $b); }
+ | expr_nounarymath[a] tEQ expr[b] { $$ = new BinaryOpNode(LC::c_eq, $a, $b); }
+ | expr_nounarymath[a] tNEQ expr[b] { $$ = new BinaryOpNode(LC::c_neq, $a, $b); }
+ | expr_nounarymath[a] tGE expr[b] { $$ = new BinaryOpNode(LC::c_ge, $a, $b); }
+ | expr_nounarymath[a] tLE expr[b] { $$ = new BinaryOpNode(LC::c_le, $a, $b); }
+ | expr_nounarymath[a] tAND expr[b] { $$ = new BinaryOpNode(LC::c_and, $a, $b); }
+ | expr_nounarymath[a] tOR expr[b] { $$ = new BinaryOpNode(LC::c_or, $a, $b); }
+ | expr_nounarymath[a] '&' expr[b] { $$ = new BinaryOpNode(LC::c_ampersand, $a, $b); }
+ | expr_nounarymath[a] tCONCAT expr[b] { $$ = new BinaryOpNode(LC::c_concat, $a, $b); }
+ | expr_nounarymath[a] tCONTAINS expr[b] { $$ = new BinaryOpNode(LC::c_contains, $a, $b); }
+ | expr_nounarymath[a] tSTARTS expr[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
+ ;
+
exprlist: /* empty */ { $$ = new NodeList; }
| nonemptyexprlist
;
Commit: 68200d454247532b90a59276fa8d43e777680cbb
https://github.com/scummvm/scummvm/commit/68200d454247532b90a59276fa8d43e777680cbb
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement play command
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index c5db7e3a95..816b344876 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -458,6 +458,15 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
/* CmdNode */
void LingoCompiler::visitCmdNode(CmdNode *node) {
+ // `play done` compiles to `play()`
+ if (node->name->equalsIgnoreCase("play") && node->args->size() == 1 && (*node->args)[0]->type == kVarNode) {
+ VarNode *var = static_cast<VarNode *>((*node->args)[0]);
+ if (var->name->equalsIgnoreCase("done")) {
+ codeCmd(node->name, 0);
+ return;
+ }
+ }
+
compileList(node->args);
codeCmd(node->name, node->args->size());
}
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index e5ec2d4e70..7b78e7da85 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -179,115 +179,117 @@ enum yysymbol_kind_t
YYSYMBOL_tELSE = 24, /* tELSE */
YYSYMBOL_tELSIF = 25, /* tELSIF */
YYSYMBOL_tEXIT = 26, /* tEXIT */
- YYSYMBOL_tGLOBAL = 27, /* tGLOBAL */
- YYSYMBOL_tGO = 28, /* tGO */
- YYSYMBOL_tGOLOOP = 29, /* tGOLOOP */
- YYSYMBOL_tIF = 30, /* tIF */
- YYSYMBOL_tIN = 31, /* tIN */
- YYSYMBOL_tINTO = 32, /* tINTO */
- YYSYMBOL_tMACRO = 33, /* tMACRO */
- YYSYMBOL_tMOVIE = 34, /* tMOVIE */
- YYSYMBOL_tNEXT = 35, /* tNEXT */
- YYSYMBOL_tOF = 36, /* tOF */
- YYSYMBOL_tPREVIOUS = 37, /* tPREVIOUS */
- YYSYMBOL_tPUT = 38, /* tPUT */
- YYSYMBOL_tREPEAT = 39, /* tREPEAT */
- YYSYMBOL_tSET = 40, /* tSET */
- YYSYMBOL_tTHEN = 41, /* tTHEN */
- YYSYMBOL_tTO = 42, /* tTO */
- YYSYMBOL_tWHEN = 43, /* tWHEN */
- YYSYMBOL_tWITH = 44, /* tWITH */
- YYSYMBOL_tWHILE = 45, /* tWHILE */
- YYSYMBOL_tFACTORY = 46, /* tFACTORY */
- YYSYMBOL_tOPEN = 47, /* tOPEN */
- YYSYMBOL_tPLAY = 48, /* tPLAY */
- YYSYMBOL_tINSTANCE = 49, /* tINSTANCE */
- YYSYMBOL_tGE = 50, /* tGE */
- YYSYMBOL_tLE = 51, /* tLE */
- YYSYMBOL_tEQ = 52, /* tEQ */
- YYSYMBOL_tNEQ = 53, /* tNEQ */
- YYSYMBOL_tAND = 54, /* tAND */
- YYSYMBOL_tOR = 55, /* tOR */
- YYSYMBOL_tNOT = 56, /* tNOT */
- YYSYMBOL_tMOD = 57, /* tMOD */
- YYSYMBOL_tAFTER = 58, /* tAFTER */
- YYSYMBOL_tBEFORE = 59, /* tBEFORE */
- YYSYMBOL_tCONCAT = 60, /* tCONCAT */
- YYSYMBOL_tCONTAINS = 61, /* tCONTAINS */
- YYSYMBOL_tSTARTS = 62, /* tSTARTS */
- YYSYMBOL_tCHAR = 63, /* tCHAR */
- YYSYMBOL_tITEM = 64, /* tITEM */
- YYSYMBOL_tLINE = 65, /* tLINE */
- YYSYMBOL_tWORD = 66, /* tWORD */
- YYSYMBOL_tSPRITE = 67, /* tSPRITE */
- YYSYMBOL_tINTERSECTS = 68, /* tINTERSECTS */
- YYSYMBOL_tWITHIN = 69, /* tWITHIN */
- YYSYMBOL_tTELL = 70, /* tTELL */
- YYSYMBOL_tPROPERTY = 71, /* tPROPERTY */
- YYSYMBOL_tON = 72, /* tON */
- YYSYMBOL_tMETHOD = 73, /* tMETHOD */
- YYSYMBOL_tENDIF = 74, /* tENDIF */
- YYSYMBOL_tENDREPEAT = 75, /* tENDREPEAT */
- YYSYMBOL_tENDTELL = 76, /* tENDTELL */
- YYSYMBOL_tASSERTERROR = 77, /* tASSERTERROR */
- YYSYMBOL_78_ = 78, /* '<' */
- YYSYMBOL_79_ = 79, /* '>' */
- YYSYMBOL_80_ = 80, /* '&' */
- YYSYMBOL_81_ = 81, /* '+' */
- YYSYMBOL_82_ = 82, /* '-' */
- YYSYMBOL_83_ = 83, /* '*' */
- YYSYMBOL_84_ = 84, /* '/' */
- YYSYMBOL_85_ = 85, /* '%' */
- YYSYMBOL_86_n_ = 86, /* '\n' */
- YYSYMBOL_87_ = 87, /* ',' */
- YYSYMBOL_88_ = 88, /* '(' */
- YYSYMBOL_89_ = 89, /* ')' */
- YYSYMBOL_90_ = 90, /* '[' */
- YYSYMBOL_91_ = 91, /* ']' */
- YYSYMBOL_92_ = 92, /* ':' */
- YYSYMBOL_YYACCEPT = 93, /* $accept */
- YYSYMBOL_script = 94, /* script */
- YYSYMBOL_scriptpartlist = 95, /* scriptpartlist */
- YYSYMBOL_scriptpart = 96, /* scriptpart */
- YYSYMBOL_macro = 97, /* macro */
- YYSYMBOL_factory = 98, /* factory */
- YYSYMBOL_method = 99, /* method */
- YYSYMBOL_methodlist = 100, /* methodlist */
- YYSYMBOL_nonemptymethodlist = 101, /* nonemptymethodlist */
- YYSYMBOL_methodlistline = 102, /* methodlistline */
- YYSYMBOL_handler = 103, /* handler */
- YYSYMBOL_endargdef = 104, /* endargdef */
- YYSYMBOL_ID = 105, /* ID */
- YYSYMBOL_idlist = 106, /* idlist */
- YYSYMBOL_nonemptyidlist = 107, /* nonemptyidlist */
- YYSYMBOL_stmt = 108, /* stmt */
- YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
- YYSYMBOL_proc = 110, /* proc */
- YYSYMBOL_cmdargs = 111, /* cmdargs */
- YYSYMBOL_asgn = 112, /* asgn */
- YYSYMBOL_to = 113, /* to */
- YYSYMBOL_definevars = 114, /* definevars */
- YYSYMBOL_ifstmt = 115, /* ifstmt */
- YYSYMBOL_ifelsestmt = 116, /* ifelsestmt */
- YYSYMBOL_loop = 117, /* loop */
- YYSYMBOL_stmtlist = 118, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 119, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 120, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 121, /* simpleexpr_noparens_nounarymath */
- YYSYMBOL_var = 122, /* var */
- YYSYMBOL_varorchunk = 123, /* varorchunk */
- YYSYMBOL_varorthe = 124, /* varorthe */
- YYSYMBOL_list = 125, /* list */
- YYSYMBOL_proplist = 126, /* proplist */
- YYSYMBOL_proppair = 127, /* proppair */
- YYSYMBOL_parens = 128, /* parens */
- YYSYMBOL_unarymath = 129, /* unarymath */
- YYSYMBOL_simpleexpr = 130, /* simpleexpr */
- YYSYMBOL_simpleexpr_nounarymath = 131, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 132, /* expr */
- YYSYMBOL_expr_nounarymath = 133, /* expr_nounarymath */
- YYSYMBOL_exprlist = 134, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 135 /* nonemptyexprlist */
+ YYSYMBOL_tFRAME = 27, /* tFRAME */
+ YYSYMBOL_tGLOBAL = 28, /* tGLOBAL */
+ YYSYMBOL_tGO = 29, /* tGO */
+ YYSYMBOL_tGOLOOP = 30, /* tGOLOOP */
+ YYSYMBOL_tIF = 31, /* tIF */
+ YYSYMBOL_tIN = 32, /* tIN */
+ YYSYMBOL_tINTO = 33, /* tINTO */
+ YYSYMBOL_tMACRO = 34, /* tMACRO */
+ YYSYMBOL_tMOVIE = 35, /* tMOVIE */
+ YYSYMBOL_tNEXT = 36, /* tNEXT */
+ YYSYMBOL_tOF = 37, /* tOF */
+ YYSYMBOL_tPREVIOUS = 38, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 39, /* tPUT */
+ YYSYMBOL_tREPEAT = 40, /* tREPEAT */
+ YYSYMBOL_tSET = 41, /* tSET */
+ YYSYMBOL_tTHEN = 42, /* tTHEN */
+ YYSYMBOL_tTO = 43, /* tTO */
+ YYSYMBOL_tWHEN = 44, /* tWHEN */
+ YYSYMBOL_tWITH = 45, /* tWITH */
+ YYSYMBOL_tWHILE = 46, /* tWHILE */
+ YYSYMBOL_tFACTORY = 47, /* tFACTORY */
+ YYSYMBOL_tOPEN = 48, /* tOPEN */
+ YYSYMBOL_tPLAY = 49, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 50, /* tINSTANCE */
+ YYSYMBOL_tGE = 51, /* tGE */
+ YYSYMBOL_tLE = 52, /* tLE */
+ YYSYMBOL_tEQ = 53, /* tEQ */
+ YYSYMBOL_tNEQ = 54, /* tNEQ */
+ YYSYMBOL_tAND = 55, /* tAND */
+ YYSYMBOL_tOR = 56, /* tOR */
+ YYSYMBOL_tNOT = 57, /* tNOT */
+ YYSYMBOL_tMOD = 58, /* tMOD */
+ YYSYMBOL_tAFTER = 59, /* tAFTER */
+ YYSYMBOL_tBEFORE = 60, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 61, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 62, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 63, /* tSTARTS */
+ YYSYMBOL_tCHAR = 64, /* tCHAR */
+ YYSYMBOL_tITEM = 65, /* tITEM */
+ YYSYMBOL_tLINE = 66, /* tLINE */
+ YYSYMBOL_tWORD = 67, /* tWORD */
+ YYSYMBOL_tSPRITE = 68, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 69, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 70, /* tWITHIN */
+ YYSYMBOL_tTELL = 71, /* tTELL */
+ YYSYMBOL_tPROPERTY = 72, /* tPROPERTY */
+ YYSYMBOL_tON = 73, /* tON */
+ YYSYMBOL_tMETHOD = 74, /* tMETHOD */
+ YYSYMBOL_tENDIF = 75, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 76, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 77, /* tENDTELL */
+ YYSYMBOL_tASSERTERROR = 78, /* tASSERTERROR */
+ YYSYMBOL_79_ = 79, /* '<' */
+ YYSYMBOL_80_ = 80, /* '>' */
+ YYSYMBOL_81_ = 81, /* '&' */
+ YYSYMBOL_82_ = 82, /* '+' */
+ YYSYMBOL_83_ = 83, /* '-' */
+ YYSYMBOL_84_ = 84, /* '*' */
+ YYSYMBOL_85_ = 85, /* '/' */
+ YYSYMBOL_86_ = 86, /* '%' */
+ YYSYMBOL_87_n_ = 87, /* '\n' */
+ YYSYMBOL_88_ = 88, /* ',' */
+ YYSYMBOL_89_ = 89, /* '(' */
+ YYSYMBOL_90_ = 90, /* ')' */
+ YYSYMBOL_91_ = 91, /* '[' */
+ YYSYMBOL_92_ = 92, /* ']' */
+ YYSYMBOL_93_ = 93, /* ':' */
+ YYSYMBOL_YYACCEPT = 94, /* $accept */
+ YYSYMBOL_script = 95, /* script */
+ YYSYMBOL_scriptpartlist = 96, /* scriptpartlist */
+ YYSYMBOL_scriptpart = 97, /* scriptpart */
+ YYSYMBOL_macro = 98, /* macro */
+ YYSYMBOL_factory = 99, /* factory */
+ YYSYMBOL_method = 100, /* method */
+ YYSYMBOL_methodlist = 101, /* methodlist */
+ YYSYMBOL_nonemptymethodlist = 102, /* nonemptymethodlist */
+ YYSYMBOL_methodlistline = 103, /* methodlistline */
+ YYSYMBOL_handler = 104, /* handler */
+ YYSYMBOL_endargdef = 105, /* endargdef */
+ YYSYMBOL_ID = 106, /* ID */
+ YYSYMBOL_idlist = 107, /* idlist */
+ YYSYMBOL_nonemptyidlist = 108, /* nonemptyidlist */
+ YYSYMBOL_stmt = 109, /* stmt */
+ YYSYMBOL_stmtoneliner = 110, /* stmtoneliner */
+ YYSYMBOL_proc = 111, /* proc */
+ YYSYMBOL_cmdargs = 112, /* cmdargs */
+ YYSYMBOL_playargs = 113, /* playargs */
+ YYSYMBOL_asgn = 114, /* asgn */
+ YYSYMBOL_to = 115, /* to */
+ YYSYMBOL_definevars = 116, /* definevars */
+ YYSYMBOL_ifstmt = 117, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 118, /* ifelsestmt */
+ YYSYMBOL_loop = 119, /* loop */
+ YYSYMBOL_stmtlist = 120, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 121, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 122, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 123, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 124, /* var */
+ YYSYMBOL_varorchunk = 125, /* varorchunk */
+ YYSYMBOL_varorthe = 126, /* varorthe */
+ YYSYMBOL_list = 127, /* list */
+ YYSYMBOL_proplist = 128, /* proplist */
+ YYSYMBOL_proppair = 129, /* proppair */
+ YYSYMBOL_parens = 130, /* parens */
+ YYSYMBOL_unarymath = 131, /* unarymath */
+ YYSYMBOL_simpleexpr = 132, /* simpleexpr */
+ YYSYMBOL_simpleexpr_nounarymath = 133, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 134, /* expr */
+ YYSYMBOL_expr_nounarymath = 135, /* expr_nounarymath */
+ YYSYMBOL_exprlist = 136, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 137 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -607,21 +609,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 102
+#define YYFINAL 108
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2152
+#define YYLAST 2465
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 93
+#define YYNTOKENS 94
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 43
+#define YYNNTS 44
/* YYNRULES -- Number of rules. */
-#define YYNRULES 174
+#define YYNRULES 181
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 317
+#define YYNSTATES 334
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 332
+#define YYMAXUTOK 333
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -636,15 +638,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 86, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 87, 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, 85, 80, 2,
- 88, 89, 83, 81, 87, 82, 2, 84, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 92, 2,
- 78, 2, 79, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 86, 81, 2,
+ 89, 90, 84, 82, 88, 83, 2, 85, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 93, 2,
+ 79, 2, 80, 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, 90, 2, 91, 2, 2, 2, 2, 2, 2,
+ 2, 91, 2, 92, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -668,7 +670,7 @@ static const yytype_int8 yytranslate[] =
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77
+ 75, 76, 77, 78
};
#if YYDEBUG
@@ -678,21 +680,22 @@ static const yytype_int16 yyrline[] =
0, 196, 196, 198, 204, 211, 212, 213, 214, 215,
244, 248, 250, 252, 253, 256, 262, 269, 270, 275,
279, 283, 284, 285, 290, 291, 292, 293, 294, 295,
- 296, 301, 304, 306, 307, 308, 309, 312, 313, 314,
- 315, 316, 318, 319, 320, 321, 322, 325, 326, 327,
- 328, 329, 331, 332, 333, 334, 335, 336, 337, 338,
- 339, 342, 343, 346, 350, 360, 361, 362, 363, 366,
- 367, 368, 371, 372, 373, 374, 375, 378, 381, 386,
- 390, 396, 401, 404, 410, 411, 412, 413, 416, 416,
- 418, 419, 420, 423, 427, 431, 437, 441, 445, 449,
- 451, 453, 457, 458, 462, 468, 475, 476, 482, 483,
- 484, 485, 486, 487, 488, 489, 492, 494, 498, 502,
- 503, 504, 507, 511, 516, 517, 518, 521, 523, 524,
- 527, 528, 529, 536, 537, 541, 542, 543, 544, 545,
- 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
- 556, 557, 558, 565, 566, 567, 568, 569, 570, 571,
- 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
- 582, 585, 586, 589, 593
+ 296, 301, 302, 305, 307, 308, 309, 310, 313, 314,
+ 315, 316, 317, 319, 320, 322, 323, 326, 327, 328,
+ 329, 330, 332, 333, 334, 335, 336, 337, 338, 339,
+ 340, 343, 344, 347, 351, 361, 362, 363, 364, 367,
+ 368, 369, 372, 373, 374, 375, 376, 377, 378, 381,
+ 384, 389, 393, 399, 404, 407, 413, 418, 424, 430,
+ 436, 444, 445, 446, 447, 450, 450, 452, 453, 454,
+ 457, 461, 465, 471, 475, 479, 483, 485, 487, 491,
+ 492, 496, 502, 509, 510, 516, 517, 518, 519, 520,
+ 521, 522, 523, 526, 528, 532, 536, 537, 538, 541,
+ 545, 550, 551, 552, 555, 557, 558, 561, 562, 563,
+ 570, 571, 575, 576, 577, 578, 579, 580, 581, 582,
+ 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 616, 619, 620,
+ 623, 627
};
#endif
@@ -714,20 +717,20 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"tTHEMENUITEMSENTITY", "tFLOAT", "tTHEFUNC", "tTHEFUNCINOF", "tVARID",
"tSTRING", "tSYMBOL", "tENDCLAUSE", "tPLAYACCEL", "tTHEOBJECTPROP",
"tCAST", "tFIELD", "tSCRIPT", "tWINDOW", "tDOWN", "tELSE", "tELSIF",
- "tEXIT", "tGLOBAL", "tGO", "tGOLOOP", "tIF", "tIN", "tINTO", "tMACRO",
- "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET",
- "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN", "tPLAY",
- "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD",
- "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM",
- "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
+ "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tGOLOOP", "tIF", "tIN", "tINTO",
+ "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT",
+ "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN",
+ "tPLAY", "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT",
+ "tMOD", "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR",
+ "tITEM", "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
"tPROPERTY", "tON", "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL",
"tASSERTERROR", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'",
"'\\n'", "','", "'('", "')'", "'['", "']'", "':'", "$accept", "script",
"scriptpartlist", "scriptpart", "macro", "factory", "method",
"methodlist", "nonemptymethodlist", "methodlistline", "handler",
"endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
- "proc", "cmdargs", "asgn", "to", "definevars", "ifstmt", "ifelsestmt",
- "loop", "stmtlist", "nonemptystmtlist", "stmtlistline",
+ "proc", "cmdargs", "playargs", "asgn", "to", "definevars", "ifstmt",
+ "ifelsestmt", "loop", "stmtlist", "nonemptystmtlist", "stmtlistline",
"simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
"list", "proplist", "proppair", "parens", "unarymath", "simpleexpr",
"simpleexpr_nounarymath", "expr", "expr_nounarymath", "exprlist",
@@ -749,13 +752,13 @@ static const yytype_int16 yytoknum[] =
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, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 60, 62,
- 38, 43, 45, 42, 47, 37, 10, 44, 40, 41,
- 91, 93, 58
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 60,
+ 62, 38, 43, 45, 42, 47, 37, 10, 44, 40,
+ 41, 91, 93, 58
};
#endif
-#define YYPACT_NINF (-235)
+#define YYPACT_NINF (-222)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -769,38 +772,40 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1133, -235, -235, -235, -235, -235, -235, -235, -32, 1873,
- 745, -235, -235, 1873, -235, 7, -235, -235, 824, -5,
- 1873, -235, -235, -235, -235, 1873, -235, -235, 1873, -235,
- -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
- -235, -235, -235, -235, 1873, 1873, -235, -235, 12, 1133,
- -235, -235, -235, -235, 824, -235, -235, -235, -235, -235,
- -235, -235, -235, -52, -235, -235, -235, -235, -235, -43,
- -37, -235, -235, -235, -235, 745, 745, 745, 745, 421,
- -24, -235, -235, -235, -235, -235, -235, 292, 1873, -19,
- 664, -16, 502, 1873, 745, -235, -235, -34, -15, -14,
- -13, 1873, -235, -235, -9, 583, -235, -235, 1873, -235,
- -235, -235, 1955, -40, -26, -23, -66, -50, -235, 2068,
- -11, -6, 745, 1631, 745, 745, 745, 745, 745, 745,
- 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
- 745, -4, -235, -235, 1915, -235, 1873, 903, 903, 1061,
- 1873, 1873, 982, 745, -235, -235, -235, 367, 37, 1968,
- -235, -235, 745, -62, -235, -235, 11, -235, -235, -235,
- 745, 745, -235, 745, 146, -235, -235, 745, 1, 1692,
- 76, 74, 74, 74, 74, 34, 34, -235, -51, 74,
- 74, 74, 74, -51, -36, -36, -235, -235, 1692, 745,
- -235, 16, 17, 18, -6, 745, 745, 745, 745, 745,
- 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
- 745, 745, 745, 745, 1692, 2005, 1873, -235, -235, 20,
- -235, -235, 1692, 2068, 2068, 2068, -40, -26, 6, -235,
- 2068, -235, -235, -235, 1194, -235, -235, 1753, 1692, -72,
- -235, -235, -235, 74, 74, 74, 74, 34, 34, -235,
- -51, 74, 74, 74, 74, -51, -36, -36, -235, -235,
- -6, 1902, 1256, -235, 1873, -62, 1324, 1814, 21, -235,
- 1692, -235, -235, 67, 745, 24, 33, -235, 1873, 1692,
- -235, -235, 1385, 745, 2018, -235, 1692, -27, -235, 1447,
- 35, 2055, 1692, 1692, -235, 1873, 36, -235, 1692, 1509,
- -235, -235, 1570, 38, 39, -235, -235
+ 1323, -222, -222, -222, -222, -222, -222, -222, -32, -222,
+ 2137, 930, -222, -222, 2137, -222, -24, -222, -222, 1010,
+ -11, 2137, -222, -222, -222, -222, 2137, -222, 1090, 2137,
+ -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+ -222, -222, -222, -222, -222, 2137, 2137, -222, -222, 40,
+ 1323, -222, -222, -222, -222, 1010, -222, -222, -222, -222,
+ -222, -222, -222, -222, -43, -222, -222, -222, -222, -222,
+ -21, -16, -222, -222, -222, -222, 930, 930, 930, 930,
+ 438, -12, -222, -222, -222, -222, -222, -222, 2181, 2137,
+ -13, 848, -9, 520, 2137, 930, -222, -222, -30, -5,
+ 930, 930, -4, -2, 602, 3, 6, 2137, -222, -222,
+ 9, 684, -222, -222, 2137, -222, -222, -222, 2216, -20,
+ 5, -17, -78, -64, -222, 2367, -1, -7, 930, 1829,
+ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930,
+ 930, 930, 930, 930, 930, 930, 930, 10, -222, -222,
+ 311, -222, 2137, 1170, 1170, 1250, 2137, 2137, 156, 930,
+ -222, -222, -222, 2229, 34, 2267, -222, -222, 930, -68,
+ 766, 2367, -222, -222, 66, -222, -222, 13, -222, -222,
+ -222, 930, 930, -222, 930, 2077, -222, -222, 930, 14,
+ 1891, 79, -25, -25, -25, -25, 65, 65, -222, -15,
+ -25, -25, -25, -25, -15, -46, -46, -222, -222, 1891,
+ 930, -222, 19, 23, 24, -7, 930, 930, 930, 930,
+ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930,
+ 930, 930, 930, 930, 930, 1891, 2280, 2137, -222, -222,
+ 25, -222, -222, 78, 2380, 930, 1891, 2367, 2367, 2367,
+ -20, 5, 27, -222, 2367, -222, -222, -222, 1385, -222,
+ -222, 1953, 1891, -58, -222, -222, -222, -25, -25, -25,
+ -25, 65, 65, -222, -15, -25, -25, -25, -25, -15,
+ -46, -46, -222, -222, -7, 2166, 1448, -222, 2137, -68,
+ 930, 2367, 1517, 2015, 35, -222, 1891, -222, -222, 81,
+ 930, 38, 43, -222, 2367, 2137, 1891, -222, -222, 1579,
+ 930, 2317, -222, 1891, -40, -222, 1642, 44, 2330, 1891,
+ 1891, -222, 2137, 45, -222, 1891, 1705, -222, -222, 1767,
+ 48, 49, -222, -222
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -808,58 +813,60 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 24, 45, 28, 31, 48, 57, 30, 0, 61,
- 0, 32, 34, 0, 38, 39, 41, 46, 77, 47,
- 49, 52, 55, 58, 56, 0, 42, 44, 61, 26,
- 43, 40, 37, 25, 27, 50, 29, 35, 36, 60,
- 54, 33, 59, 51, 61, 0, 53, 5, 0, 2,
- 3, 6, 7, 8, 77, 9, 65, 69, 70, 71,
- 66, 67, 68, 0, 76, 39, 47, 49, 63, 0,
- 62, 108, 109, 111, 110, 40, 0, 0, 0, 171,
- 116, 130, 114, 115, 131, 132, 135, 0, 61, 0,
- 0, 0, 78, 0, 0, 116, 118, 0, 0, 0,
- 0, 61, 1, 4, 0, 78, 75, 90, 0, 112,
- 128, 129, 0, 111, 110, 0, 116, 0, 122, 173,
- 0, 172, 171, 0, 0, 0, 0, 0, 0, 0,
+ 0, 24, 45, 28, 31, 48, 57, 30, 0, 32,
+ 61, 0, 33, 35, 0, 39, 40, 42, 46, 79,
+ 47, 49, 52, 55, 58, 56, 0, 43, 79, 61,
+ 26, 44, 41, 38, 25, 27, 50, 29, 36, 37,
+ 60, 54, 34, 59, 51, 61, 0, 53, 5, 0,
+ 2, 3, 6, 7, 8, 79, 9, 65, 69, 70,
+ 71, 66, 67, 68, 0, 78, 40, 47, 49, 63,
+ 0, 62, 115, 116, 118, 117, 41, 0, 0, 0,
+ 178, 123, 137, 121, 122, 138, 139, 142, 0, 61,
+ 0, 0, 0, 80, 0, 0, 123, 125, 0, 0,
+ 32, 39, 0, 0, 80, 0, 0, 61, 1, 4,
+ 0, 80, 77, 97, 0, 119, 135, 136, 0, 118,
+ 117, 0, 123, 0, 129, 180, 0, 179, 178, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 74, 82, 0, 73, 34, 26, 43, 37,
- 25, 27, 50, 0, 133, 134, 153, 80, 0, 0,
- 88, 89, 0, 13, 92, 91, 0, 72, 64, 127,
- 0, 0, 120, 0, 0, 121, 119, 0, 0, 102,
- 93, 145, 146, 143, 144, 147, 148, 140, 150, 151,
- 152, 142, 141, 149, 136, 137, 138, 139, 102, 0,
- 117, 0, 0, 0, 79, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 76, 84,
+ 0, 73, 35, 26, 44, 38, 25, 27, 50, 0,
+ 140, 141, 160, 82, 0, 0, 95, 96, 0, 13,
+ 86, 87, 74, 75, 42, 99, 98, 0, 72, 64,
+ 134, 0, 0, 127, 0, 0, 128, 126, 0, 0,
+ 109, 100, 152, 153, 150, 151, 154, 155, 147, 157,
+ 158, 159, 149, 148, 156, 143, 144, 145, 146, 109,
+ 0, 124, 0, 0, 0, 81, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 102, 0, 0, 17, 18, 11,
- 14, 15, 102, 126, 124, 125, 0, 0, 0, 123,
- 174, 113, 106, 107, 0, 103, 104, 0, 10, 0,
- 84, 85, 86, 163, 164, 161, 162, 165, 166, 158,
- 168, 169, 170, 160, 159, 167, 154, 155, 156, 157,
- 81, 0, 0, 87, 61, 0, 20, 0, 0, 105,
- 102, 95, 83, 0, 0, 0, 0, 16, 21, 102,
- 97, 94, 0, 0, 0, 99, 102, 0, 22, 0,
- 0, 0, 102, 12, 19, 0, 0, 96, 102, 0,
- 23, 98, 0, 0, 0, 100, 101
+ 0, 0, 0, 0, 0, 109, 0, 0, 17, 18,
+ 11, 14, 15, 42, 90, 0, 109, 133, 131, 132,
+ 0, 0, 0, 130, 181, 120, 113, 114, 0, 110,
+ 111, 0, 10, 0, 91, 92, 93, 170, 171, 168,
+ 169, 172, 173, 165, 175, 176, 177, 167, 166, 174,
+ 161, 162, 163, 164, 83, 0, 0, 94, 61, 0,
+ 0, 89, 20, 0, 0, 112, 109, 102, 85, 0,
+ 0, 0, 0, 16, 88, 21, 109, 104, 101, 0,
+ 0, 0, 106, 109, 0, 22, 0, 0, 0, 109,
+ 12, 19, 0, 0, 103, 109, 0, 23, 105, 0,
+ 0, 0, 107, 108
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -235, -235, -235, 71, -235, -235, -235, -235, -235, -149,
- -235, -235, 0, -25, -235, 4, -235, -235, 75, -235,
- -235, -235, -235, -235, -235, -197, -235, -234, -76, -18,
- -89, -235, -235, -235, -44, -69, -235, -20, -235, 189,
- -235, 13, -148
+ -222, -222, -222, 87, -222, -222, -222, -222, -222, -149,
+ -222, -222, 0, -28, -222, 4, -222, -222, -6, -222,
+ -222, -222, -222, -222, -222, -222, -204, -222, -221, -86,
+ -18, -105, -222, -222, -222, -44, -84, -222, -14, -222,
+ 200, -27, 26, -157
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 228, 229, 230, 231,
- 53, 297, 80, 69, 70, 243, 56, 57, 91, 58,
- 162, 59, 60, 61, 62, 244, 245, 246, 81, 82,
- 201, 97, 83, 117, 118, 84, 85, 86, 156, 119,
- 157, 120, 121
+ 0, 49, 50, 51, 52, 53, 239, 240, 241, 242,
+ 54, 314, 81, 70, 71, 257, 57, 58, 92, 103,
+ 59, 168, 60, 61, 62, 63, 258, 259, 260, 82,
+ 83, 212, 98, 84, 123, 124, 85, 86, 87, 162,
+ 125, 163, 126, 127
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -867,442 +874,504 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 54, 248, 96, 99, 55, 204, 130, 63, 160, 68,
- 279, 226, 102, 88, 279, 177, 154, 282, 161, 100,
- 95, 130, 122, 155, 227, 98, 173, 272, 68, 154,
- 137, 138, 139, 140, 106, 276, 155, 174, 279, 93,
- 94, 175, 279, 107, 68, 101, 89, 139, 140, 54,
- 108, 249, 170, 55, 64, 109, 110, 111, 279, 304,
- 305, 202, 203, 141, 122, 279, 171, 142, 172, 279,
- 145, 163, 164, 165, 270, 279, 166, 167, 279, 116,
- 176, 177, 198, 292, 124, 125, 126, 127, 68, 223,
- 241, 130, 299, 158, 131, 132, 133, 232, 173, 303,
- 247, 68, 250, 251, 252, 309, 275, 291, 168, 293,
- 295, 312, 134, 135, 136, 137, 138, 139, 140, 296,
- 103, 307, 311, 54, 315, 316, 287, 180, 200, 104,
- 239, 130, 200, 200, 131, 178, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
- 95, 95, 0, 0, 136, 137, 138, 139, 140, 1,
- 236, 237, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 0, 0, 238, 0, 0, 11, 12, 54,
- 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 27, 0, 0, 0, 54, 87,
- 29, 30, 31, 32, 33, 34, 0, 92, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
- 0, 0, 0, 46, 54, 0, 274, 0, 0, 0,
- 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 105, 54, 0, 0, 54, 54, 286,
- 0, 281, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
- 0, 0, 54, 0, 68, 0, 54, 54, 0, 144,
- 54, 290, 0, 159, 0, 0, 0, 0, 298, 54,
- 0, 0, 54, 0, 0, 0, 54, 0, 0, 54,
- 0, 0, 54, 54, 0, 310, 0, 0, 54, 54,
- 0, 0, 54, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- 0, 0, 0, 123, 0, 0, 185, 186, 187, 0,
- 0, 190, 124, 125, 126, 127, 128, 129, 0, 130,
- 0, 225, 131, 132, 133, 0, 0, 0, 0, 233,
- 234, 0, 235, 0, 0, 0, 240, 0, 0, 0,
- 134, 135, 136, 137, 138, 139, 140, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 253, 254, 255, 256, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 0, 271, 0, 0, 0, 0, 205, 206, 207,
- 208, 209, 210, 0, 211, 0, 71, 212, 213, 214,
- 0, 72, 0, 0, 1, 113, 114, 0, 2, 0,
- 3, 4, 5, 6, 7, 215, 216, 217, 218, 219,
- 220, 221, 11, 12, 222, 14, 65, 16, 17, 0,
- 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
- 0, 0, 0, 294, 0, 29, 30, 75, 32, 33,
- 34, 0, 301, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 0, 0, 0, 0, 0, 0, 46, 0,
- 0, 0, 76, 77, 0, 0, 0, 71, 0, 78,
- 0, 79, 72, 115, 0, 1, 73, 74, 0, 2,
- 0, 3, 4, 5, 6, 7, 0, 0, 0, 0,
- 0, 0, 0, 11, 146, 0, 14, 65, 16, 17,
- 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
- 27, 0, 124, 125, 126, 127, 147, 148, 75, 149,
- 150, 151, 131, 132, 152, 36, 37, 38, 39, 40,
- 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
- 134, 135, 136, 137, 138, 139, 140, 0, 71, 153,
- 78, 0, 79, 72, 0, 0, 1, 73, 74, 0,
- 2, 0, 3, 4, 5, 6, 7, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 0, 14, 65, 16,
- 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 124, 125, 126, 127, 147, 148, 75,
- 149, 33, 34, 131, 132, 152, 36, 37, 38, 39,
- 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
- 46, 134, 135, 136, 137, 138, 139, 140, 0, 71,
- 153, 78, 0, 79, 72, 0, 0, 1, 73, 74,
- 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
- 0, 0, 0, 0, 0, 11, 12, 0, 14, 65,
- 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
- 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
- 75, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
- 0, 46, 0, 0, 0, 76, 77, 0, 0, 0,
- 71, 0, 78, 143, 79, 72, 0, 0, 1, 73,
- 74, 0, 2, 0, 3, 4, 5, 6, 7, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 0, 14,
- 65, 16, 17, 0, 66, 67, 0, 21, 22, 23,
- 24, 0, 26, 27, 0, 0, 0, 0, 0, 29,
- 30, 75, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
- 0, 0, 46, 0, 0, 0, 76, 77, 0, 71,
- 0, 0, 0, 78, 72, 79, 0, 1, 73, 74,
+ 55, 105, 215, 97, 56, 262, 237, 160, 64, 161,
+ 69, 128, 136, 166, 89, 184, 90, 106, 160, 238,
+ 161, 96, 102, 167, 185, 160, 99, 161, 186, 69,
+ 188, 286, 298, 136, 94, 95, 137, 295, 145, 146,
+ 108, 295, 292, 136, 112, 69, 107, 321, 322, 110,
+ 55, 213, 214, 263, 56, 65, 142, 143, 144, 145,
+ 146, 147, 115, 116, 117, 295, 113, 143, 144, 145,
+ 146, 295, 114, 181, 148, 183, 284, 128, 151, 177,
+ 122, 188, 169, 172, 160, 173, 161, 234, 295, 69,
+ 175, 187, 309, 176, 164, 295, 178, 209, 182, 295,
+ 246, 245, 316, 261, 255, 295, 264, 69, 295, 320,
+ 265, 266, 289, 290, 179, 326, 130, 131, 132, 133,
+ 184, 329, 308, 136, 310, 312, 137, 138, 139, 55,
+ 313, 324, 328, 191, 211, 332, 333, 109, 211, 211,
+ 303, 253, 0, 244, 140, 141, 142, 143, 144, 145,
+ 146, 0, 96, 0, 189, 0, 96, 96, 0, 0,
+ 0, 72, 0, 0, 0, 0, 73, 0, 0, 1,
+ 74, 75, 0, 2, 0, 3, 4, 5, 6, 7,
+ 0, 0, 0, 9, 0, 252, 0, 0, 12, 13,
+ 55, 15, 66, 17, 18, 0, 67, 68, 0, 22,
+ 23, 24, 25, 0, 27, 0, 0, 0, 0, 55,
+ 0, 88, 0, 76, 33, 34, 35, 0, 0, 93,
+ 37, 38, 39, 40, 41, 42, 43, 44, 104, 0,
+ 0, 0, 0, 0, 47, 55, 0, 288, 77, 78,
+ 0, 0, 0, 0, 0, 79, 55, 80, 0, 0,
+ 0, 0, 0, 0, 0, 111, 0, 0, 55, 0,
+ 302, 55, 55, 0, 0, 297, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
+ 0, 0, 0, 0, 0, 0, 55, 0, 69, 0,
+ 0, 150, 55, 55, 0, 165, 55, 307, 0, 0,
+ 170, 171, 0, 0, 0, 315, 55, 0, 0, 55,
+ 0, 0, 0, 55, 0, 0, 55, 0, 0, 55,
+ 55, 0, 327, 0, 0, 55, 55, 0, 0, 55,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, 207, 208, 0, 0, 0,
+ 0, 0, 0, 196, 197, 198, 0, 0, 201, 0,
+ 0, 0, 130, 131, 132, 133, 134, 135, 236, 136,
+ 0, 0, 137, 138, 139, 0, 0, 0, 0, 0,
+ 0, 247, 248, 0, 249, 0, 0, 0, 254, 0,
+ 140, 141, 142, 143, 144, 145, 146, 0, 0, 210,
+ 0, 180, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 0, 285, 0, 0, 0, 0, 0,
+ 0, 0, 0, 72, 0, 291, 0, 0, 73, 0,
+ 0, 1, 119, 120, 0, 2, 0, 3, 4, 5,
+ 6, 7, 0, 0, 0, 9, 0, 0, 0, 0,
+ 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
+ 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
+ 304, 0, 0, 30, 31, 76, 33, 34, 35, 0,
+ 311, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 318, 0, 0, 0, 0, 0, 47, 0, 0, 0,
+ 77, 78, 0, 0, 0, 72, 0, 79, 0, 80,
+ 73, 121, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
+ 0, 0, 12, 152, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 130, 131, 132, 133, 153, 154, 76, 155, 156,
+ 157, 137, 138, 158, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 140,
+ 141, 142, 143, 144, 145, 146, 0, 72, 159, 79,
+ 0, 80, 73, 0, 0, 1, 74, 75, 0, 2,
+ 0, 3, 4, 5, 6, 7, 0, 0, 0, 9,
+ 0, 0, 0, 0, 12, 13, 0, 15, 66, 174,
+ 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 130, 131, 132, 133, 153, 154, 76,
+ 155, 34, 35, 137, 138, 158, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
+ 47, 140, 141, 142, 143, 144, 145, 146, 0, 72,
+ 159, 79, 0, 80, 73, 0, 0, 1, 74, 75,
0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
- 0, 0, 0, 0, 0, 11, 12, 0, 14, 65,
- 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
- 0, 26, 27, 0, 0, 0, 0, 0, 29, 30,
- 75, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
- 0, 46, 0, 0, 0, 76, 77, 0, 71, 0,
- 0, 0, 90, 72, 79, 0, 1, 73, 74, 0,
- 2, 0, 3, 4, 5, 6, 7, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 0, 14, 65, 16,
- 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 0, 0, 0, 0, 0, 0, 75,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 0, 0, 0, 0, 0, 0,
- 46, 0, 0, 0, 76, 77, 0, 71, 0, 0,
- 0, 78, 72, 79, 0, 1, 73, 74, 0, 2,
- 0, 3, 4, 5, 6, 7, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 0, 14, 65, 16, 17,
- 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
- 27, 0, 0, 0, 0, 0, 0, 0, 75, 32,
- 33, 34, 0, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
- 0, 0, 0, 76, 77, 0, 71, 0, 0, 0,
- 78, 72, 79, 0, 1, 73, 74, 0, 2, 0,
- 3, 4, 5, 6, 7, 0, 0, 0, 0, 0,
- 0, 0, 11, 12, 0, 14, 65, 16, 17, 0,
- 66, 67, 0, 21, 22, 23, 24, 0, 26, 27,
- 0, 0, 0, 0, 0, 0, 0, 75, 0, 33,
- 34, 0, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 0, 0, 0, 0, 0, 0, 46, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 78,
- 2, 79, 3, 4, 5, 6, 7, 0, 0, 8,
- 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 277, 47,
- 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 278, 1,
- 0, 46, 0, 2, 0, 3, 4, 5, 6, 7,
- 242, 0, 8, 9, 0, 0, 10, 11, 12, 0,
- 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
- 23, 24, 0, 26, 27, 28, 0, 0, 0, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 0, 9, 0, 0, 0, 0, 12, 13, 0, 15,
+ 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
+ 25, 0, 27, 0, 0, 130, 131, 132, 133, 153,
+ 154, 76, 155, 34, 35, 137, 138, 158, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
+ 0, 0, 47, 140, 141, 142, 143, 144, 145, 146,
+ 0, 72, 159, 79, 0, 80, 73, 0, 0, 1,
+ 74, 75, 0, 2, 0, 3, 4, 5, 6, 7,
+ 0, 0, 0, 9, 0, 0, 0, 0, 12, 13,
+ 0, 15, 66, 243, 18, 0, 67, 68, 0, 22,
+ 23, 24, 25, 0, 27, 0, 0, 130, 131, 132,
+ 133, 153, 154, 76, 155, 34, 35, 137, 138, 158,
37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 0, 285, 0, 46, 0, 0, 0, 1, 0, 0,
- 288, 2, 242, 3, 4, 5, 6, 7, 0, 0,
- 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 1, 0,
- 0, 46, 2, 0, 3, 4, 5, 6, 7, 0,
- 242, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 300,
- 1, 0, 46, 0, 2, 0, 3, 4, 5, 6,
- 7, 242, 0, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 0, 0, 0, 0, 47, 140, 141, 142, 143, 144,
+ 145, 146, 0, 72, 0, 79, 0, 80, 73, 0,
+ 0, 1, 74, 75, 0, 2, 0, 3, 4, 5,
+ 6, 7, 0, 0, 0, 9, 0, 0, 0, 0,
+ 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
+ 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 76, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 0, 0, 0, 0, 47, 0, 0, 0,
+ 77, 78, 0, 0, 0, 72, 0, 79, 149, 80,
+ 73, 0, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 77, 78, 0, 72, 0, 0, 0, 79,
+ 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 77, 78, 0, 72, 0, 0, 0, 91,
+ 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 100, 0, 0,
+ 0, 0, 12, 13, 0, 101, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 77, 78, 0, 72, 0, 0, 0, 91,
+ 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 76, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 77, 78, 0, 72, 0, 0, 0, 79,
+ 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
+ 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 76, 0, 34,
+ 35, 0, 0, 0, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 79,
+ 2, 80, 3, 4, 5, 6, 7, 0, 0, 8,
+ 9, 10, 0, 0, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 26, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 0, 1, 0,
+ 0, 47, 2, 0, 3, 4, 5, 6, 7, 293,
+ 48, 8, 9, 10, 0, 0, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 294, 1, 0, 47, 0, 2, 0, 3, 4, 5,
+ 6, 7, 256, 0, 8, 9, 10, 0, 0, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 0, 0, 0, 301, 0, 47, 0, 0, 0,
+ 1, 0, 0, 305, 2, 256, 3, 4, 5, 6,
+ 7, 0, 0, 8, 9, 10, 0, 0, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 1, 0, 0, 47, 2, 0, 3, 4,
+ 5, 6, 7, 0, 256, 8, 9, 10, 0, 0,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 0, 0, 317, 1, 0, 47, 0, 2,
+ 0, 3, 4, 5, 6, 7, 256, 0, 8, 9,
+ 10, 0, 0, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
+ 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 0, 0, 323, 1, 0,
+ 47, 0, 2, 0, 3, 4, 5, 6, 7, 256,
+ 0, 8, 9, 10, 0, 0, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 1, 330, 0, 47, 2, 0, 3, 4, 5, 6,
+ 7, 0, 256, 8, 9, 10, 0, 0, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 1, 331, 0, 47, 2, 0, 3, 4,
+ 5, 6, 7, 0, 256, 8, 9, 10, 0, 0,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 0, 0, 1, 0, 0, 47, 2, 0,
+ 3, 4, 5, 6, 7, 0, 190, 8, 9, 10,
+ 0, 0, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
+ 2, 0, 3, 4, 5, 6, 7, 0, 256, 8,
+ 9, 10, 0, 0, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
+ 0, 47, 2, 0, 3, 4, 5, 6, 7, 0,
+ 296, 8, 9, 10, 0, 0, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 1, 250, 251, 47, 2, 0, 3, 4, 5, 6,
+ 7, 0, 306, 0, 9, 0, 0, 0, 0, 12,
+ 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
+ 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 306, 1, 0, 46, 0, 2, 0, 3, 4,
- 5, 6, 7, 242, 0, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 1, 313, 0, 46, 2, 0, 3,
- 4, 5, 6, 7, 0, 242, 8, 9, 0, 0,
- 10, 11, 12, 0, 14, 15, 16, 17, 18, 19,
- 20, 0, 21, 22, 23, 24, 0, 26, 27, 28,
- 0, 0, 0, 0, 29, 30, 31, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 1, 314, 0, 46, 2, 0,
- 3, 4, 5, 6, 7, 0, 242, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 1, 0, 0, 46, 2,
- 0, 3, 4, 5, 6, 7, 0, 179, 8, 9,
- 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
- 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
- 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
- 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 1, 0, 0, 46,
- 2, 0, 3, 4, 5, 6, 7, 0, 242, 8,
- 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
- 46, 2, 0, 3, 4, 5, 6, 7, 0, 280,
- 8, 9, 0, 0, 10, 11, 12, 0, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 23, 24,
- 0, 26, 27, 28, 0, 0, 0, 0, 29, 30,
- 31, 32, 33, 34, 0, 0, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 1, 0, 0, 0,
- 2, 46, 3, 4, 5, 6, 7, 0, 0, 0,
- 289, 0, 0, 0, 11, 12, 0, 14, 65, 16,
- 17, 0, 66, 67, 0, 21, 22, 23, 24, 0,
- 26, 27, 0, 0, 0, 283, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 284, 0, 0, 0, 0, 0,
- 46, 0, 124, 125, 126, 127, 128, 129, 0, 130,
- 0, 0, 131, 132, 133, 124, 125, 126, 127, 128,
- 129, 0, 130, 0, 0, 131, 132, 133, 0, 0,
- 134, 135, 136, 137, 138, 139, 140, 0, 0, 0,
- 0, 0, 0, 134, 135, 136, 137, 138, 139, 140,
- 0, 0, 199, 0, 169, 124, 125, 126, 127, 128,
- 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
- 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
- 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
- 0, 0, 0, 0, 169, 0, 134, 135, 136, 137,
- 138, 139, 140, 0, 224, 124, 125, 126, 127, 128,
- 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
- 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
- 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
- 0, 273, 0, 0, 0, 0, 134, 135, 136, 137,
- 138, 139, 140, 0, 302, 124, 125, 126, 127, 128,
- 129, 0, 130, 0, 0, 131, 132, 133, 124, 125,
- 126, 127, 128, 129, 0, 130, 0, 0, 131, 132,
- 133, 0, 0, 134, 135, 136, 137, 138, 139, 140,
- 0, 308, 0, 0, 0, 0, 134, 135, 136, 137,
- 138, 139, 140
+ 1, 0, 0, 0, 2, 47, 3, 4, 5, 6,
+ 7, 0, 0, 0, 9, 0, 0, 0, 0, 12,
+ 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
+ 22, 23, 24, 25, 0, 27, 0, 0, 0, 299,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 300,
+ 0, 0, 0, 0, 0, 47, 0, 130, 131, 132,
+ 133, 134, 135, 129, 136, 0, 0, 137, 138, 139,
+ 0, 0, 130, 131, 132, 133, 134, 135, 0, 136,
+ 0, 0, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 0, 0, 0, 0, 0, 0, 0, 0,
+ 140, 141, 142, 143, 144, 145, 146, 130, 131, 132,
+ 133, 134, 135, 0, 136, 0, 0, 137, 138, 139,
+ 216, 217, 218, 219, 220, 221, 0, 222, 0, 0,
+ 223, 224, 225, 0, 0, 140, 141, 142, 143, 144,
+ 145, 146, 0, 0, 0, 0, 180, 0, 226, 227,
+ 228, 229, 230, 231, 232, 0, 0, 233, 130, 131,
+ 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
+ 139, 130, 131, 132, 133, 134, 135, 0, 136, 0,
+ 0, 137, 138, 139, 0, 0, 140, 141, 142, 143,
+ 144, 145, 146, 0, 235, 0, 0, 0, 0, 140,
+ 141, 142, 143, 144, 145, 146, 0, 287, 130, 131,
+ 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
+ 139, 130, 131, 132, 133, 134, 135, 0, 136, 0,
+ 0, 137, 138, 139, 0, 0, 140, 141, 142, 143,
+ 144, 145, 146, 0, 319, 0, 0, 0, 0, 140,
+ 141, 142, 143, 144, 145, 146, 0, 325, 130, 131,
+ 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
+ 139, 216, 217, 218, 219, 220, 221, 0, 222, 0,
+ 0, 223, 224, 225, 0, 0, 140, 141, 142, 143,
+ 144, 145, 146, 0, 0, 0, 0, 0, 0, 226,
+ 227, 228, 229, 230, 231, 232
};
static const yytype_int16 yycheck[] =
{
- 0, 198, 20, 28, 0, 153, 57, 39, 42, 9,
- 244, 73, 0, 13, 248, 87, 92, 89, 52, 44,
- 20, 57, 88, 92, 86, 25, 92, 224, 28, 105,
- 81, 82, 83, 84, 86, 232, 105, 87, 272, 44,
- 45, 91, 276, 86, 44, 45, 39, 83, 84, 49,
- 87, 199, 92, 49, 86, 75, 76, 77, 292, 86,
- 87, 150, 151, 88, 88, 299, 92, 86, 91, 303,
- 86, 86, 86, 86, 222, 309, 101, 86, 312, 79,
- 91, 87, 86, 280, 50, 51, 52, 53, 88, 52,
- 89, 57, 289, 93, 60, 61, 62, 86, 92, 296,
- 24, 101, 86, 86, 86, 302, 86, 86, 108, 42,
- 86, 308, 78, 79, 80, 81, 82, 83, 84, 86,
- 49, 86, 86, 123, 86, 86, 275, 123, 146, 54,
- 174, 57, 150, 151, 60, 122, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 146, -1, -1, -1,
- 150, 151, -1, -1, 80, 81, 82, 83, 84, 13,
+ 0, 29, 159, 21, 0, 209, 74, 93, 40, 93,
+ 10, 89, 58, 43, 14, 93, 40, 45, 104, 87,
+ 104, 21, 28, 53, 88, 111, 26, 111, 92, 29,
+ 88, 235, 90, 58, 45, 46, 61, 258, 84, 85,
+ 0, 262, 246, 58, 87, 45, 46, 87, 88, 55,
+ 50, 156, 157, 210, 50, 87, 81, 82, 83, 84,
+ 85, 89, 76, 77, 78, 286, 87, 82, 83, 84,
+ 85, 292, 88, 93, 87, 92, 233, 89, 87, 107,
+ 80, 88, 87, 87, 170, 87, 170, 53, 309, 89,
+ 87, 92, 296, 87, 94, 316, 87, 87, 93, 320,
+ 87, 35, 306, 24, 90, 326, 87, 107, 329, 313,
+ 87, 87, 87, 35, 114, 319, 51, 52, 53, 54,
+ 93, 325, 87, 58, 43, 87, 61, 62, 63, 129,
+ 87, 87, 87, 129, 152, 87, 87, 50, 156, 157,
+ 289, 185, -1, 170, 79, 80, 81, 82, 83, 84,
+ 85, -1, 152, -1, 128, -1, 156, 157, -1, -1,
+ -1, 5, -1, -1, -1, -1, 10, -1, -1, 13,
14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, -1, 174, -1, -1, 31, 32, 179,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, -1, -1, -1, 198, 10,
- 54, 55, 56, 57, 58, 59, -1, 18, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, 224, -1, 226, -1, -1, -1,
- -1, -1, 232, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 54, 244, -1, -1, 247, 248, 274,
- -1, 247, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, -1, 272, -1, 274, -1, 276, 277, -1, 90,
- 280, 277, -1, 94, -1, -1, -1, -1, 288, 289,
- -1, -1, 292, -1, -1, -1, 296, -1, -1, 299,
- -1, -1, 302, 303, -1, 305, -1, -1, 308, 309,
- -1, -1, 312, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- -1, -1, -1, 41, -1, -1, 147, 148, 149, -1,
- -1, 152, 50, 51, 52, 53, 54, 55, -1, 57,
- -1, 162, 60, 61, 62, -1, -1, -1, -1, 170,
- 171, -1, 173, -1, -1, -1, 177, -1, -1, -1,
- 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, -1, 223, -1, -1, -1, -1, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, 5, 60, 61, 62,
- -1, 10, -1, -1, 13, 14, 15, -1, 17, -1,
- 19, 20, 21, 22, 23, 78, 79, 80, 81, 82,
- 83, 84, 31, 32, 87, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- -1, -1, -1, 284, -1, 54, 55, 56, 57, 58,
- 59, -1, 293, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, 81, 82, -1, -1, -1, 5, -1, 88,
- -1, 90, 10, 92, -1, 13, 14, 15, -1, 17,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, -1,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, -1, 50, 51, 52, 53, 54, 55, 56, 57,
+ -1, -1, -1, 27, -1, 185, -1, -1, 32, 33,
+ 190, 35, 36, 37, 38, -1, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, -1, -1, -1, -1, 209,
+ -1, 11, -1, 57, 58, 59, 60, -1, -1, 19,
+ 64, 65, 66, 67, 68, 69, 70, 71, 28, -1,
+ -1, -1, -1, -1, 78, 235, -1, 237, 82, 83,
+ -1, -1, -1, -1, -1, 89, 246, 91, -1, -1,
+ -1, -1, -1, -1, -1, 55, -1, -1, 258, -1,
+ 288, 261, 262, -1, -1, 261, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 79,
+ -1, -1, -1, -1, -1, -1, 286, -1, 288, -1,
+ -1, 91, 292, 293, -1, 95, 296, 293, -1, -1,
+ 100, 101, -1, -1, -1, 305, 306, -1, -1, 309,
+ -1, -1, -1, 313, -1, -1, 316, -1, -1, 319,
+ 320, -1, 322, -1, -1, 325, 326, -1, -1, 329,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, -1, -1, -1,
+ -1, -1, -1, 153, 154, 155, -1, -1, 158, -1,
+ -1, -1, 51, 52, 53, 54, 55, 56, 168, 58,
+ -1, -1, 61, 62, 63, -1, -1, -1, -1, -1,
+ -1, 181, 182, -1, 184, -1, -1, -1, 188, -1,
+ 79, 80, 81, 82, 83, 84, 85, -1, -1, 88,
+ -1, 90, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, -1, 234, -1, -1, -1, -1, -1,
+ -1, -1, -1, 5, -1, 245, -1, -1, 10, -1,
+ -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, -1,
+ 32, 33, -1, 35, 36, 37, 38, -1, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, -1, -1, -1,
+ 290, -1, -1, 55, 56, 57, 58, 59, 60, -1,
+ 300, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 310, -1, -1, -1, -1, -1, 78, -1, -1, -1,
+ 82, 83, -1, -1, -1, 5, -1, 89, -1, 91,
+ 10, 93, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 85, -1, 5, 88, 89,
+ -1, 91, 10, -1, -1, 13, 14, 15, -1, 17,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, -1, 32, 33, -1, 35, 36, 37,
+ 38, -1, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, -1, -1, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 5, 87,
- 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
- 17, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
- 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
- -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, -1, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, -1, -1, -1,
- 5, -1, 88, 89, 90, 10, -1, -1, 13, 14,
- 15, -1, 17, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, -1, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, -1, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
- -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
+ 68, 69, 70, 71, -1, -1, -1, -1, -1, -1,
+ 78, 79, 80, 81, 82, 83, 84, 85, -1, 5,
+ 88, 89, -1, 91, 10, -1, -1, 13, 14, 15,
-1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, -1, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
- -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
- 17, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- -1, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, -1, -1, -1, -1, -1, -1, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
- -1, 88, 10, 90, -1, 13, 14, 15, -1, 17,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, -1,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, -1, -1, -1, -1, -1, -1, -1, 56, 57,
- 58, 59, -1, -1, -1, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
- 88, 10, 90, -1, 13, 14, 15, -1, 17, -1,
- 19, 20, 21, 22, 23, -1, -1, -1, -1, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- -1, -1, -1, -1, -1, -1, -1, 56, -1, 58,
- 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 13, -1, -1, 88,
- 17, 90, 19, 20, 21, 22, 23, -1, -1, 26,
- 27, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, 46,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, -1, 13, -1, -1,
- 77, 17, -1, 19, 20, 21, 22, 23, 24, 86,
- 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 74, 13,
- -1, 77, -1, 17, -1, 19, 20, 21, 22, 23,
- 86, -1, 26, 27, -1, -1, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ -1, 27, -1, -1, -1, -1, 32, 33, -1, 35,
+ 36, 37, 38, -1, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, -1, -1, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, 85,
+ -1, 5, 88, 89, -1, 91, 10, -1, -1, 13,
+ 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, -1, 32, 33,
+ -1, 35, 36, 37, 38, -1, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, -1, -1, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- -1, 75, -1, 77, -1, -1, -1, 13, -1, -1,
- 16, 17, 86, 19, 20, 21, 22, 23, -1, -1,
- 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
- -1, 77, 17, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, -1, -1, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
- 13, -1, 77, -1, 17, -1, 19, 20, 21, 22,
- 23, 86, -1, 26, 27, -1, -1, 30, 31, 32,
- -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, 85, -1, 5, -1, 89, -1, 91, 10, -1,
+ -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, -1,
+ 32, 33, -1, 35, 36, 37, 38, -1, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, -1, -1, -1,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
+ 82, 83, -1, -1, -1, 5, -1, 89, 90, 91,
+ 10, -1, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
+ 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
+ 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
+ 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
+ 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
+ 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
+ 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, -1, -1, 57, 58, 59,
+ 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
+ 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, -1, -1, 57, -1, 59,
+ 60, -1, -1, -1, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, -1, -1, -1, -1, 13, -1, -1, 89,
+ 17, 91, 19, 20, 21, 22, 23, -1, -1, 26,
+ 27, 28, -1, -1, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
+ 47, 48, 49, 50, -1, -1, -1, -1, 55, 56,
+ 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, -1, 13, -1,
+ -1, 78, 17, -1, 19, 20, 21, 22, 23, 24,
+ 87, 26, 27, 28, -1, -1, 31, 32, 33, -1,
+ 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
+ 75, 13, -1, 78, -1, 17, -1, 19, 20, 21,
+ 22, 23, 87, -1, 26, 27, 28, -1, -1, 31,
+ 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, -1, -1, -1, 76, -1, 78, -1, -1, -1,
+ 13, -1, -1, 16, 17, 87, 19, 20, 21, 22,
+ 23, -1, -1, 26, 27, 28, -1, -1, 31, 32,
+ 33, -1, 35, 36, 37, 38, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, -1, -1,
+ -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ -1, -1, 13, -1, -1, 78, 17, -1, 19, 20,
+ 21, 22, 23, -1, 87, 26, 27, 28, -1, -1,
+ 31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, -1, -1, 75, 13, -1, 78, -1, 17,
+ -1, 19, 20, 21, 22, 23, 87, -1, 26, 27,
+ 28, -1, -1, 31, 32, 33, -1, 35, 36, 37,
+ 38, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, -1, -1, -1, -1, 55, 56, 57,
+ 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, -1, -1, 75, 13, -1,
+ 78, -1, 17, -1, 19, 20, 21, 22, 23, 87,
+ -1, 26, 27, 28, -1, -1, 31, 32, 33, -1,
+ 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
+ 13, 76, -1, 78, 17, -1, 19, 20, 21, 22,
+ 23, -1, 87, 26, 27, 28, -1, -1, 31, 32,
+ 33, -1, 35, 36, 37, 38, 39, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, 49, 50, -1, -1,
+ -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ -1, -1, 13, 76, -1, 78, 17, -1, 19, 20,
+ 21, 22, 23, -1, 87, 26, 27, 28, -1, -1,
+ 31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, -1, -1, 13, -1, -1, 78, 17, -1,
+ 19, 20, 21, 22, 23, -1, 87, 26, 27, 28,
+ -1, -1, 31, 32, 33, -1, 35, 36, 37, 38,
+ 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ 49, 50, -1, -1, -1, -1, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, -1, -1, 13, -1, -1, 78,
+ 17, -1, 19, 20, 21, 22, 23, -1, 87, 26,
+ 27, 28, -1, -1, 31, 32, 33, -1, 35, 36,
+ 37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, 49, 50, -1, -1, -1, -1, 55, 56,
+ 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, -1, -1, 13, -1,
+ -1, 78, 17, -1, 19, 20, 21, 22, 23, -1,
+ 87, 26, 27, 28, -1, -1, 31, 32, 33, -1,
+ 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
+ 13, 14, 15, 78, 17, -1, 19, 20, 21, 22,
+ 23, -1, 87, -1, 27, -1, -1, -1, -1, 32,
+ 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
+ -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 74, 13, -1, 77, -1, 17, -1, 19, 20,
- 21, 22, 23, 86, -1, 26, 27, -1, -1, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, 75, -1, 77, 17, -1, 19,
- 20, 21, 22, 23, -1, 86, 26, 27, -1, -1,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, 75, -1, 77, 17, -1,
- 19, 20, 21, 22, 23, -1, 86, 26, 27, -1,
- -1, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, -1, 77, 17,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
- -1, -1, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- 17, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, -1, -1, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
- 77, 17, -1, 19, 20, 21, 22, 23, -1, 86,
- 26, 27, -1, -1, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 13, -1, -1, -1,
- 17, 77, 19, 20, 21, 22, 23, -1, -1, -1,
- 86, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, -1, -1, -1, 23, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 42, -1, -1, -1, -1, -1,
- 77, -1, 50, 51, 52, 53, 54, 55, -1, 57,
- -1, -1, 60, 61, 62, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
- 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, 87, -1, 89, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, -1, 89, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84
+ 13, -1, -1, -1, 17, 78, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
+ 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, 23,
+ -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 43,
+ -1, -1, -1, -1, -1, 78, -1, 51, 52, 53,
+ 54, 55, 56, 42, 58, -1, -1, 61, 62, 63,
+ -1, -1, 51, 52, 53, 54, 55, 56, -1, 58,
+ -1, -1, 61, 62, 63, 79, 80, 81, 82, 83,
+ 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
+ 79, 80, 81, 82, 83, 84, 85, 51, 52, 53,
+ 54, 55, 56, -1, 58, -1, -1, 61, 62, 63,
+ 51, 52, 53, 54, 55, 56, -1, 58, -1, -1,
+ 61, 62, 63, -1, -1, 79, 80, 81, 82, 83,
+ 84, 85, -1, -1, -1, -1, 90, -1, 79, 80,
+ 81, 82, 83, 84, 85, -1, -1, 88, 51, 52,
+ 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
+ 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
+ -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
+ 83, 84, 85, -1, 87, -1, -1, -1, -1, 79,
+ 80, 81, 82, 83, 84, 85, -1, 87, 51, 52,
+ 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
+ 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
+ -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
+ 83, 84, 85, -1, 87, -1, -1, -1, -1, 79,
+ 80, 81, 82, 83, 84, 85, -1, 87, 51, 52,
+ 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
+ 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
+ -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
+ 83, 84, 85, -1, -1, -1, -1, -1, -1, 79,
+ 80, 81, 82, 83, 84, 85
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1310,60 +1379,63 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 13, 17, 19, 20, 21, 22, 23, 26, 27,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 42, 43, 44, 45, 46, 47, 48, 49, 54,
- 55, 56, 57, 58, 59, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 77, 86, 94, 95,
- 96, 97, 98, 103, 105, 108, 109, 110, 112, 114,
- 115, 116, 117, 39, 86, 35, 39, 40, 105, 106,
- 107, 5, 10, 14, 15, 56, 81, 82, 88, 90,
- 105, 121, 122, 125, 128, 129, 130, 132, 105, 39,
- 88, 111, 132, 44, 45, 105, 122, 124, 105, 106,
- 106, 105, 0, 96, 111, 132, 86, 86, 87, 130,
- 130, 130, 132, 14, 15, 92, 105, 126, 127, 132,
- 134, 135, 88, 41, 50, 51, 52, 53, 54, 55,
- 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
- 84, 106, 86, 89, 132, 86, 32, 54, 55, 57,
- 58, 59, 62, 87, 121, 128, 131, 133, 105, 132,
- 42, 52, 113, 86, 86, 86, 106, 86, 105, 89,
- 92, 92, 91, 92, 87, 91, 91, 87, 134, 86,
- 108, 132, 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132, 86, 87,
- 122, 123, 123, 123, 135, 50, 51, 52, 53, 54,
- 55, 57, 60, 61, 62, 78, 79, 80, 81, 82,
- 83, 84, 87, 52, 86, 132, 73, 86, 99, 100,
- 101, 102, 86, 132, 132, 132, 14, 15, 105, 127,
- 132, 89, 86, 108, 118, 119, 120, 24, 118, 135,
- 86, 86, 86, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
- 135, 132, 118, 86, 105, 86, 118, 24, 74, 120,
- 86, 108, 89, 23, 42, 75, 106, 102, 16, 86,
- 108, 86, 118, 42, 132, 86, 86, 104, 105, 118,
- 74, 132, 86, 118, 86, 87, 74, 86, 86, 118,
- 105, 86, 118, 75, 75, 86, 86
+ 28, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 43, 44, 45, 46, 47, 48, 49, 50,
+ 55, 56, 57, 58, 59, 60, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 78, 87, 95,
+ 96, 97, 98, 99, 104, 106, 109, 110, 111, 114,
+ 116, 117, 118, 119, 40, 87, 36, 40, 41, 106,
+ 107, 108, 5, 10, 14, 15, 57, 82, 83, 89,
+ 91, 106, 123, 124, 127, 130, 131, 132, 134, 106,
+ 40, 89, 112, 134, 45, 46, 106, 124, 126, 106,
+ 27, 35, 112, 113, 134, 107, 107, 106, 0, 97,
+ 112, 134, 87, 87, 88, 132, 132, 132, 134, 14,
+ 15, 93, 106, 128, 129, 134, 136, 137, 89, 42,
+ 51, 52, 53, 54, 55, 56, 58, 61, 62, 63,
+ 79, 80, 81, 82, 83, 84, 85, 107, 87, 90,
+ 134, 87, 33, 55, 56, 58, 59, 60, 63, 88,
+ 123, 130, 133, 135, 106, 134, 43, 53, 115, 87,
+ 134, 134, 87, 87, 37, 87, 87, 107, 87, 106,
+ 90, 93, 93, 92, 93, 88, 92, 92, 88, 136,
+ 87, 109, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 87,
+ 88, 124, 125, 125, 125, 137, 51, 52, 53, 54,
+ 55, 56, 58, 61, 62, 63, 79, 80, 81, 82,
+ 83, 84, 85, 88, 53, 87, 134, 74, 87, 100,
+ 101, 102, 103, 37, 135, 35, 87, 134, 134, 134,
+ 14, 15, 106, 129, 134, 90, 87, 109, 120, 121,
+ 122, 24, 120, 137, 87, 87, 87, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 137, 134, 120, 87, 106, 87,
+ 35, 134, 120, 24, 75, 122, 87, 109, 90, 23,
+ 43, 76, 107, 103, 134, 16, 87, 109, 87, 120,
+ 43, 134, 87, 87, 105, 106, 120, 75, 134, 87,
+ 120, 87, 88, 75, 87, 87, 120, 106, 87, 120,
+ 76, 76, 87, 87
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 93, 94, 95, 95, 96, 96, 96, 96, 96,
- 97, 98, 99, 100, 100, 101, 101, 102, 102, 103,
- 103, 104, 104, 104, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 106, 106, 107, 107, 108, 108, 108, 108, 109,
- 109, 109, 110, 110, 110, 110, 110, 111, 111, 111,
- 111, 111, 111, 111, 112, 112, 112, 112, 113, 113,
- 114, 114, 114, 115, 115, 116, 116, 116, 116, 117,
- 117, 117, 118, 118, 119, 119, 120, 120, 121, 121,
- 121, 121, 121, 121, 121, 121, 122, 123, 124, 125,
- 125, 125, 126, 126, 127, 127, 127, 128, 129, 129,
- 130, 130, 130, 131, 131, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 134, 134, 135, 135
+ 0, 94, 95, 96, 96, 97, 97, 97, 97, 97,
+ 98, 99, 100, 101, 101, 102, 102, 103, 103, 104,
+ 104, 105, 105, 105, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 107, 107, 108, 108, 109, 109, 109, 109, 110,
+ 110, 110, 111, 111, 111, 111, 111, 111, 111, 112,
+ 112, 112, 112, 112, 112, 112, 113, 113, 113, 113,
+ 113, 114, 114, 114, 114, 115, 115, 116, 116, 116,
+ 117, 117, 118, 118, 118, 118, 119, 119, 119, 120,
+ 120, 121, 121, 122, 122, 123, 123, 123, 123, 123,
+ 123, 123, 123, 124, 125, 126, 127, 127, 127, 128,
+ 128, 129, 129, 129, 130, 131, 131, 132, 132, 132,
+ 133, 133, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
+ 137, 137
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1376,17 +1448,18 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 2, 0, 1, 3,
- 2, 4, 2, 5, 5, 5, 5, 5, 1, 1,
- 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
- 11, 12, 0, 1, 1, 2, 1, 1, 1, 1,
- 1, 1, 2, 4, 1, 1, 1, 1, 1, 3,
- 3, 3, 1, 3, 3, 3, 3, 3, 2, 2,
- 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
+ 1, 1, 3, 3, 3, 3, 3, 3, 2, 0,
+ 1, 3, 2, 4, 2, 5, 2, 2, 5, 4,
+ 3, 5, 5, 5, 5, 1, 1, 3, 3, 3,
+ 4, 7, 6, 9, 7, 10, 7, 11, 12, 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
+ 4, 1, 1, 1, 1, 1, 3, 3, 3, 1,
+ 3, 3, 3, 3, 3, 2, 2, 1, 1, 1,
+ 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 0, 1, 1, 3
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 0, 1,
+ 1, 3
};
@@ -1660,49 +1733,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1664 "engines/director/lingo/lingo-gr.cpp"
+#line 1737 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1670 "engines/director/lingo/lingo-gr.cpp"
+#line 1743 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1676 "engines/director/lingo/lingo-gr.cpp"
+#line 1749 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1682 "engines/director/lingo/lingo-gr.cpp"
+#line 1755 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1688 "engines/director/lingo/lingo-gr.cpp"
+#line 1761 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1694 "engines/director/lingo/lingo-gr.cpp"
+#line 1767 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1700 "engines/director/lingo/lingo-gr.cpp"
+#line 1773 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1706 "engines/director/lingo/lingo-gr.cpp"
+#line 1779 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -1970,7 +2043,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 1974 "engines/director/lingo/lingo-gr.cpp"
+#line 2047 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -1981,7 +2054,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 1985 "engines/director/lingo/lingo-gr.cpp"
+#line 2058 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -1991,37 +2064,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2068 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2074 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2080 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2086 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 2092 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 2098 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2032,7 +2105,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2036 "engines/director/lingo/lingo-gr.cpp"
+#line 2109 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2042,13 +2115,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2046 "engines/director/lingo/lingo-gr.cpp"
+#line 2119 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2052 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2057,852 +2130,918 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 2134 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2068 "engines/director/lingo/lingo-gr.cpp"
+#line 2141 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2074 "engines/director/lingo/lingo-gr.cpp"
+#line 2147 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2080 "engines/director/lingo/lingo-gr.cpp"
+#line 2153 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2086 "engines/director/lingo/lingo-gr.cpp"
+#line 2159 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2092 "engines/director/lingo/lingo-gr.cpp"
+#line 2165 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2098 "engines/director/lingo/lingo-gr.cpp"
+#line 2171 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2104 "engines/director/lingo/lingo-gr.cpp"
+#line 2177 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2110 "engines/director/lingo/lingo-gr.cpp"
+#line 2183 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2116 "engines/director/lingo/lingo-gr.cpp"
+#line 2189 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2122 "engines/director/lingo/lingo-gr.cpp"
+#line 2195 "engines/director/lingo/lingo-gr.cpp"
break;
- case 32: /* ID: tIN */
-#line 304 "engines/director/lingo/lingo-gr.y"
+ case 32: /* ID: tFRAME */
+#line 302 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("frame"); }
+#line 2201 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 33: /* ID: tIN */
+#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2128 "engines/director/lingo/lingo-gr.cpp"
+#line 2207 "engines/director/lingo/lingo-gr.cpp"
break;
- case 33: /* ID: tINTERSECTS */
-#line 306 "engines/director/lingo/lingo-gr.y"
+ case 34: /* ID: tINTERSECTS */
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2134 "engines/director/lingo/lingo-gr.cpp"
+#line 2213 "engines/director/lingo/lingo-gr.cpp"
break;
- case 34: /* ID: tINTO */
-#line 307 "engines/director/lingo/lingo-gr.y"
+ case 35: /* ID: tINTO */
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2140 "engines/director/lingo/lingo-gr.cpp"
+#line 2219 "engines/director/lingo/lingo-gr.cpp"
break;
- case 35: /* ID: tITEM */
-#line 308 "engines/director/lingo/lingo-gr.y"
+ case 36: /* ID: tITEM */
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2146 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
break;
- case 36: /* ID: tLINE */
-#line 309 "engines/director/lingo/lingo-gr.y"
+ case 37: /* ID: tLINE */
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2152 "engines/director/lingo/lingo-gr.cpp"
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
break;
- case 37: /* ID: tMOD */
-#line 312 "engines/director/lingo/lingo-gr.y"
+ case 38: /* ID: tMOD */
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
- case 38: /* ID: tMOVIE */
-#line 313 "engines/director/lingo/lingo-gr.y"
+ case 39: /* ID: tMOVIE */
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2164 "engines/director/lingo/lingo-gr.cpp"
+#line 2243 "engines/director/lingo/lingo-gr.cpp"
break;
- case 39: /* ID: tNEXT */
-#line 314 "engines/director/lingo/lingo-gr.y"
+ case 40: /* ID: tNEXT */
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2170 "engines/director/lingo/lingo-gr.cpp"
+#line 2249 "engines/director/lingo/lingo-gr.cpp"
break;
- case 40: /* ID: tNOT */
-#line 315 "engines/director/lingo/lingo-gr.y"
+ case 41: /* ID: tNOT */
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2176 "engines/director/lingo/lingo-gr.cpp"
+#line 2255 "engines/director/lingo/lingo-gr.cpp"
break;
- case 41: /* ID: tOF */
-#line 316 "engines/director/lingo/lingo-gr.y"
+ case 42: /* ID: tOF */
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2182 "engines/director/lingo/lingo-gr.cpp"
+#line 2261 "engines/director/lingo/lingo-gr.cpp"
break;
- case 42: /* ID: tOPEN */
-#line 318 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("open"); }
-#line 2188 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 43: /* ID: tOR */
+ case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("or"); }
-#line 2194 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("open"); }
+#line 2267 "engines/director/lingo/lingo-gr.cpp"
break;
- case 44: /* ID: tPLAY */
+ case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("play"); }
-#line 2200 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("or"); }
+#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPLAYACCEL */
-#line 321 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("playAccel"); }
-#line 2206 "engines/director/lingo/lingo-gr.cpp"
+#line 2279 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tPREVIOUS */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2212 "engines/director/lingo/lingo-gr.cpp"
+#line 2285 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tREPEAT */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2218 "engines/director/lingo/lingo-gr.cpp"
+#line 2291 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSCRIPT */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2224 "engines/director/lingo/lingo-gr.cpp"
+#line 2297 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSET */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2230 "engines/director/lingo/lingo-gr.cpp"
+#line 2303 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tSTARTS */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2236 "engines/director/lingo/lingo-gr.cpp"
+#line 2309 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTELL */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2242 "engines/director/lingo/lingo-gr.cpp"
+#line 2315 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tTO */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2248 "engines/director/lingo/lingo-gr.cpp"
+#line 2321 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tASSERTERROR */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2254 "engines/director/lingo/lingo-gr.cpp"
+#line 2327 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tSPRITE */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2260 "engines/director/lingo/lingo-gr.cpp"
+#line 2333 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWHEN */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2266 "engines/director/lingo/lingo-gr.cpp"
+#line 2339 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWHILE */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2272 "engines/director/lingo/lingo-gr.cpp"
+#line 2345 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWINDOW */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2278 "engines/director/lingo/lingo-gr.cpp"
+#line 2351 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWITH */
-#line 337 "engines/director/lingo/lingo-gr.y"
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2284 "engines/director/lingo/lingo-gr.cpp"
+#line 2357 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWITHIN */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2290 "engines/director/lingo/lingo-gr.cpp"
+#line 2363 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tWORD */
-#line 339 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2296 "engines/director/lingo/lingo-gr.cpp"
+#line 2369 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* idlist: %empty */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2302 "engines/director/lingo/lingo-gr.cpp"
+#line 2375 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* nonemptyidlist: ID */
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 347 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2311 "engines/director/lingo/lingo-gr.cpp"
+#line 2384 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 350 "engines/director/lingo/lingo-gr.y"
+#line 351 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2319 "engines/director/lingo/lingo-gr.cpp"
+#line 2392 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* proc: ID cmdargs '\n' */
-#line 371 "engines/director/lingo/lingo-gr.y"
+#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2325 "engines/director/lingo/lingo-gr.cpp"
+#line 2398 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: tPUT cmdargs '\n' */
-#line 372 "engines/director/lingo/lingo-gr.y"
+#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2331 "engines/director/lingo/lingo-gr.cpp"
+#line 2404 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tNEXT tREPEAT '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+ case 74: /* proc: tPLAY cmdargs '\n' */
+#line 374 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
+#line 2410 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 75: /* proc: tPLAY playargs '\n' */
+#line 375 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
+#line 2416 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 76: /* proc: tNEXT tREPEAT '\n' */
+#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2337 "engines/director/lingo/lingo-gr.cpp"
+#line 2422 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tEXIT tREPEAT '\n' */
-#line 374 "engines/director/lingo/lingo-gr.y"
+ case 77: /* proc: tEXIT tREPEAT '\n' */
+#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2343 "engines/director/lingo/lingo-gr.cpp"
+#line 2428 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tEXIT '\n' */
-#line 375 "engines/director/lingo/lingo-gr.y"
+ case 78: /* proc: tEXIT '\n' */
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2349 "engines/director/lingo/lingo-gr.cpp"
+#line 2434 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* cmdargs: %empty */
-#line 378 "engines/director/lingo/lingo-gr.y"
+ case 79: /* cmdargs: %empty */
+#line 381 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2357 "engines/director/lingo/lingo-gr.cpp"
+#line 2442 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* cmdargs: expr */
-#line 381 "engines/director/lingo/lingo-gr.y"
+ case 80: /* cmdargs: expr */
+#line 384 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2367 "engines/director/lingo/lingo-gr.cpp"
+#line 2452 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* cmdargs: expr ',' nonemptyexprlist */
-#line 386 "engines/director/lingo/lingo-gr.y"
+ case 81: /* cmdargs: expr ',' nonemptyexprlist */
+#line 389 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2376 "engines/director/lingo/lingo-gr.cpp"
+#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* cmdargs: expr expr_nounarymath */
-#line 390 "engines/director/lingo/lingo-gr.y"
+ case 82: /* cmdargs: expr expr_nounarymath */
+#line 393 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2387 "engines/director/lingo/lingo-gr.cpp"
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 396 "engines/director/lingo/lingo-gr.y"
+ case 83: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 399 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2397 "engines/director/lingo/lingo-gr.cpp"
+#line 2482 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: '(' ')' */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 84: /* cmdargs: '(' ')' */
+#line 404 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2405 "engines/director/lingo/lingo-gr.cpp"
+#line 2490 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 85: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 407 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2499 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 86: /* playargs: tFRAME expr */
+#line 413 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `play frame arg`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2509 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 87: /* playargs: tMOVIE expr */
+#line 418 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `play movie arg`
+ NodeList *args = new NodeList;
+ args->push_back(new IntNode(1));
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2520 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 88: /* playargs: tFRAME expr tOF tMOVIE expr */
+#line 424 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `play frame arg of movie arg`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-3].node));
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2531 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 89: /* playargs: expr tOF tMOVIE expr */
+#line 430 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `play arg of movie arg` (weird but valid)
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-3].node));
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2542 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 410 "engines/director/lingo/lingo-gr.y"
+ case 90: /* playargs: tFRAME expr expr_nounarymath */
+#line 436 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `play frame arg arg` (also weird but valid)
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-1].node));
+ args->push_back((yyvsp[0].node));
+ (yyval.nodelist) = args; }
+#line 2553 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 91: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 444 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2420 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 411 "engines/director/lingo/lingo-gr.y"
+ case 92: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 445 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2426 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 93: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 446 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2432 "engines/director/lingo/lingo-gr.cpp"
+#line 2571 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* asgn: tSET varorthe to expr '\n' */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 94: /* asgn: tSET varorthe to expr '\n' */
+#line 447 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2438 "engines/director/lingo/lingo-gr.cpp"
+#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* definevars: tGLOBAL idlist '\n' */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 97: /* definevars: tGLOBAL idlist '\n' */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
+#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* definevars: tPROPERTY idlist '\n' */
-#line 419 "engines/director/lingo/lingo-gr.y"
+ case 98: /* definevars: tPROPERTY idlist '\n' */
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2450 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* definevars: tINSTANCE idlist '\n' */
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 99: /* definevars: tINSTANCE idlist '\n' */
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2456 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* ifstmt: tIF expr tTHEN stmt */
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 100: /* ifstmt: tIF expr tTHEN stmt */
+#line 457 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2465 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 101: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 461 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2472 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 431 "engines/director/lingo/lingo-gr.y"
+ case 102: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 465 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2483 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 437 "engines/director/lingo/lingo-gr.y"
+ case 103: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 471 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 441 "engines/director/lingo/lingo-gr.y"
+ case 104: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 475 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2501 "engines/director/lingo/lingo-gr.cpp"
+#line 2640 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 105: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 479 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2647 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 106: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 483 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2654 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 107: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 485 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2522 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+ case 108: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 487 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2529 "engines/director/lingo/lingo-gr.cpp"
+#line 2668 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* stmtlist: %empty */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 109: /* stmtlist: %empty */
+#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2674 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* nonemptystmtlist: stmtlistline */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 111: /* nonemptystmtlist: stmtlistline */
+#line 496 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 112: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 502 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* stmtlistline: '\n' */
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 113: /* stmtlistline: '\n' */
+#line 509 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2562 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* simpleexpr_noparens_nounarymath: tINT */
-#line 482 "engines/director/lingo/lingo-gr.y"
+ case 115: /* simpleexpr_noparens_nounarymath: tINT */
+#line 516 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2568 "engines/director/lingo/lingo-gr.cpp"
+#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 483 "engines/director/lingo/lingo-gr.y"
+ case 116: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 517 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2574 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 117: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 518 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2580 "engines/director/lingo/lingo-gr.cpp"
+#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 118: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 519 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2586 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 486 "engines/director/lingo/lingo-gr.y"
+ case 119: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 520 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2592 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 120: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 521 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2598 "engines/director/lingo/lingo-gr.cpp"
+#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* var: ID */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 123: /* var: ID */
+#line 526 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2604 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* list: '[' exprlist ']' */
-#line 502 "engines/director/lingo/lingo-gr.y"
+ case 126: /* list: '[' exprlist ']' */
+#line 536 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* list: '[' ':' ']' */
-#line 503 "engines/director/lingo/lingo-gr.y"
+ case 127: /* list: '[' ':' ']' */
+#line 537 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2616 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* list: '[' proplist ']' */
-#line 504 "engines/director/lingo/lingo-gr.y"
+ case 128: /* list: '[' proplist ']' */
+#line 538 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2622 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* proplist: proppair */
-#line 507 "engines/director/lingo/lingo-gr.y"
+ case 129: /* proplist: proppair */
+#line 541 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2770 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* proplist: proplist ',' proppair */
-#line 511 "engines/director/lingo/lingo-gr.y"
+ case 130: /* proplist: proplist ',' proppair */
+#line 545 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2778 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* proppair: tSYMBOL ':' expr */
-#line 516 "engines/director/lingo/lingo-gr.y"
+ case 131: /* proppair: tSYMBOL ':' expr */
+#line 550 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2784 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* proppair: ID ':' expr */
-#line 517 "engines/director/lingo/lingo-gr.y"
+ case 132: /* proppair: ID ':' expr */
+#line 551 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2790 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* proppair: tSTRING ':' expr */
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 133: /* proppair: tSTRING ':' expr */
+#line 552 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2796 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* parens: '(' expr ')' */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 134: /* parens: '(' expr ')' */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2802 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* unarymath: '+' simpleexpr */
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 135: /* unarymath: '+' simpleexpr */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2808 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* unarymath: '-' simpleexpr */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 136: /* unarymath: '-' simpleexpr */
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2814 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* expr: expr '+' expr */
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 143: /* expr: expr '+' expr */
+#line 576 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2820 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* expr: expr '-' expr */
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 144: /* expr: expr '-' expr */
+#line 577 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2826 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* expr: expr '*' expr */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 145: /* expr: expr '*' expr */
+#line 578 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2832 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* expr: expr '/' expr */
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 146: /* expr: expr '/' expr */
+#line 579 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2838 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* expr: expr tMOD expr */
-#line 546 "engines/director/lingo/lingo-gr.y"
+ case 147: /* expr: expr tMOD expr */
+#line 580 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2844 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* expr: expr '>' expr */
-#line 547 "engines/director/lingo/lingo-gr.y"
+ case 148: /* expr: expr '>' expr */
+#line 581 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2850 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* expr: expr '<' expr */
-#line 548 "engines/director/lingo/lingo-gr.y"
+ case 149: /* expr: expr '<' expr */
+#line 582 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2856 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* expr: expr tEQ expr */
-#line 549 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr tEQ expr */
+#line 583 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2862 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* expr: expr tNEQ expr */
-#line 550 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr tNEQ expr */
+#line 584 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2868 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* expr: expr tGE expr */
-#line 551 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr tGE expr */
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2874 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* expr: expr tLE expr */
-#line 552 "engines/director/lingo/lingo-gr.y"
+ case 153: /* expr: expr tLE expr */
+#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2880 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* expr: expr tAND expr */
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr: expr tAND expr */
+#line 587 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2886 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr tOR expr */
-#line 554 "engines/director/lingo/lingo-gr.y"
+ case 155: /* expr: expr tOR expr */
+#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2892 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr '&' expr */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 156: /* expr: expr '&' expr */
+#line 589 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2898 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr tCONCAT expr */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 157: /* expr: expr tCONCAT expr */
+#line 590 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr tCONTAINS expr */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 158: /* expr: expr tCONTAINS expr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2910 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tSTARTS expr */
-#line 558 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr tSTARTS expr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2916 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 161: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2922 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 162: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2928 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 568 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2934 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 569 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2940 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 165: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 571 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 572 "engines/director/lingo/lingo-gr.y"
+ case 167: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2958 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 573 "engines/director/lingo/lingo-gr.y"
+ case 168: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2964 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 574 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 575 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2976 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 576 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2982 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 577 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2988 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 578 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2994 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 579 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 613 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 3000 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 580 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 614 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 3006 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 176: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 615 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 3012 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 3018 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* exprlist: %empty */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 178: /* exprlist: %empty */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 3024 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* nonemptyexprlist: expr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+ case 180: /* nonemptyexprlist: expr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2894 "engines/director/lingo/lingo-gr.cpp"
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 181: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 3041 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3101,7 +3240,7 @@ yyreturn:
return yyresult;
}
-#line 598 "engines/director/lingo/lingo-gr.y"
+#line 632 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 4fd31614ed..03c4243a80 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -78,57 +78,58 @@ extern int yydebug;
tELSE = 279, /* tELSE */
tELSIF = 280, /* tELSIF */
tEXIT = 281, /* tEXIT */
- tGLOBAL = 282, /* tGLOBAL */
- tGO = 283, /* tGO */
- tGOLOOP = 284, /* tGOLOOP */
- tIF = 285, /* tIF */
- tIN = 286, /* tIN */
- tINTO = 287, /* tINTO */
- tMACRO = 288, /* tMACRO */
- tMOVIE = 289, /* tMOVIE */
- tNEXT = 290, /* tNEXT */
- tOF = 291, /* tOF */
- tPREVIOUS = 292, /* tPREVIOUS */
- tPUT = 293, /* tPUT */
- tREPEAT = 294, /* tREPEAT */
- tSET = 295, /* tSET */
- tTHEN = 296, /* tTHEN */
- tTO = 297, /* tTO */
- tWHEN = 298, /* tWHEN */
- tWITH = 299, /* tWITH */
- tWHILE = 300, /* tWHILE */
- tFACTORY = 301, /* tFACTORY */
- tOPEN = 302, /* tOPEN */
- tPLAY = 303, /* tPLAY */
- tINSTANCE = 304, /* tINSTANCE */
- tGE = 305, /* tGE */
- tLE = 306, /* tLE */
- tEQ = 307, /* tEQ */
- tNEQ = 308, /* tNEQ */
- tAND = 309, /* tAND */
- tOR = 310, /* tOR */
- tNOT = 311, /* tNOT */
- tMOD = 312, /* tMOD */
- tAFTER = 313, /* tAFTER */
- tBEFORE = 314, /* tBEFORE */
- tCONCAT = 315, /* tCONCAT */
- tCONTAINS = 316, /* tCONTAINS */
- tSTARTS = 317, /* tSTARTS */
- tCHAR = 318, /* tCHAR */
- tITEM = 319, /* tITEM */
- tLINE = 320, /* tLINE */
- tWORD = 321, /* tWORD */
- tSPRITE = 322, /* tSPRITE */
- tINTERSECTS = 323, /* tINTERSECTS */
- tWITHIN = 324, /* tWITHIN */
- tTELL = 325, /* tTELL */
- tPROPERTY = 326, /* tPROPERTY */
- tON = 327, /* tON */
- tMETHOD = 328, /* tMETHOD */
- tENDIF = 329, /* tENDIF */
- tENDREPEAT = 330, /* tENDREPEAT */
- tENDTELL = 331, /* tENDTELL */
- tASSERTERROR = 332 /* tASSERTERROR */
+ tFRAME = 282, /* tFRAME */
+ tGLOBAL = 283, /* tGLOBAL */
+ tGO = 284, /* tGO */
+ tGOLOOP = 285, /* tGOLOOP */
+ tIF = 286, /* tIF */
+ tIN = 287, /* tIN */
+ tINTO = 288, /* tINTO */
+ tMACRO = 289, /* tMACRO */
+ tMOVIE = 290, /* tMOVIE */
+ tNEXT = 291, /* tNEXT */
+ tOF = 292, /* tOF */
+ tPREVIOUS = 293, /* tPREVIOUS */
+ tPUT = 294, /* tPUT */
+ tREPEAT = 295, /* tREPEAT */
+ tSET = 296, /* tSET */
+ tTHEN = 297, /* tTHEN */
+ tTO = 298, /* tTO */
+ tWHEN = 299, /* tWHEN */
+ tWITH = 300, /* tWITH */
+ tWHILE = 301, /* tWHILE */
+ tFACTORY = 302, /* tFACTORY */
+ tOPEN = 303, /* tOPEN */
+ tPLAY = 304, /* tPLAY */
+ tINSTANCE = 305, /* tINSTANCE */
+ tGE = 306, /* tGE */
+ tLE = 307, /* tLE */
+ tEQ = 308, /* tEQ */
+ tNEQ = 309, /* tNEQ */
+ tAND = 310, /* tAND */
+ tOR = 311, /* tOR */
+ tNOT = 312, /* tNOT */
+ tMOD = 313, /* tMOD */
+ tAFTER = 314, /* tAFTER */
+ tBEFORE = 315, /* tBEFORE */
+ tCONCAT = 316, /* tCONCAT */
+ tCONTAINS = 317, /* tCONTAINS */
+ tSTARTS = 318, /* tSTARTS */
+ tCHAR = 319, /* tCHAR */
+ tITEM = 320, /* tITEM */
+ tLINE = 321, /* tLINE */
+ tWORD = 322, /* tWORD */
+ tSPRITE = 323, /* tSPRITE */
+ tINTERSECTS = 324, /* tINTERSECTS */
+ tWITHIN = 325, /* tWITHIN */
+ tTELL = 326, /* tTELL */
+ tPROPERTY = 327, /* tPROPERTY */
+ tON = 328, /* tON */
+ tMETHOD = 329, /* tMETHOD */
+ tENDIF = 330, /* tENDIF */
+ tENDREPEAT = 331, /* tENDREPEAT */
+ tENDTELL = 332, /* tENDTELL */
+ tASSERTERROR = 333 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -153,7 +154,7 @@ union YYSTYPE
Director::Node *node;
Director::NodeList *nodelist;
-#line 157 "engines/director/lingo/lingo-gr.h"
+#line 158 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index db48c7eb86..ebec753fed 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -135,7 +135,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%token<s> tENDCLAUSE tPLAYACCEL
%token<objectprop> tTHEOBJECTPROP
%token tCAST tFIELD tSCRIPT tWINDOW
-%token tDOWN tELSE tELSIF tEXIT tGLOBAL tGO tGOLOOP tIF tIN tINTO tMACRO
+%token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tGOLOOP tIF tIN tINTO tMACRO
%token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
%token tWITH tWHILE tFACTORY tOPEN tPLAY tINSTANCE
%token tGE tLE tEQ tNEQ tAND tOR tNOT tMOD
@@ -167,7 +167,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> stmt stmtoneliner
%type<node> proc asgn definevars
%type<node> ifstmt ifelsestmt loop
-%type<nodelist> cmdargs stmtlist nonemptystmtlist
+%type<nodelist> cmdargs playargs stmtlist nonemptystmtlist
%type<node> stmtlistline
// EXPRESSION
@@ -299,6 +299,7 @@ ID: tVARID
// | tEXIT { $$ = new Common::String("exit"); }
// tFACTORY
| tFIELD { $$ = new Common::String("field"); }
+ | tFRAME { $$ = new Common::String("frame"); }
// | tGLOBAL { $$ = new Common::String("global"); }
// tIF
| tIN { $$ = new Common::String("in"); }
@@ -317,7 +318,7 @@ ID: tVARID
// | tON { $$ = new Common::String("on"); }
| tOPEN { $$ = new Common::String("open"); }
| tOR { $$ = new Common::String("or"); }
- | tPLAY { $$ = new Common::String("play"); } // FIXME: lexer includes "play frame"
+ // | tPLAY { $$ = new Common::String("play"); }
| tPLAYACCEL { $$ = new Common::String("playAccel"); }
| tPREVIOUS { $$ = new Common::String("previous"); }
// | tPROPERTY { $$ = new Common::String("property"); }
@@ -370,6 +371,8 @@ stmtoneliner: proc
proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
| tPUT cmdargs '\n' { $$ = new CmdNode(new Common::String("put"), $cmdargs); }
+ | tPLAY cmdargs '\n' { $$ = new CmdNode(new Common::String("play"), $cmdargs); }
+ | tPLAY playargs '\n' { $$ = new CmdNode(new Common::String("play"), $playargs); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
| tEXIT '\n' { $$ = new ExitNode(); }
@@ -407,6 +410,37 @@ cmdargs: /* empty */ {
$$ = $args; }
;
+playargs: tFRAME expr[frame] {
+ // This matches `play frame arg`
+ NodeList *args = new NodeList;
+ args->push_back($frame);
+ $$ = args; }
+ | tMOVIE expr[movie] {
+ // This matches `play movie arg`
+ NodeList *args = new NodeList;
+ args->push_back(new IntNode(1));
+ args->push_back($movie);
+ $$ = args; }
+ | tFRAME expr[frame] tOF tMOVIE expr[movie] {
+ // This matches `play frame arg of movie arg`
+ NodeList *args = new NodeList;
+ args->push_back($frame);
+ args->push_back($movie);
+ $$ = args; }
+ | expr[frame] tOF tMOVIE expr[movie] {
+ // This matches `play arg of movie arg` (weird but valid)
+ NodeList *args = new NodeList;
+ args->push_back($frame);
+ args->push_back($movie);
+ $$ = args; }
+ | tFRAME expr[frame] expr_nounarymath[movie] {
+ // This matches `play frame arg arg` (also weird but valid)
+ NodeList *args = new NodeList;
+ args->push_back($frame);
+ args->push_back($movie);
+ $$ = args; }
+ ;
+
asgn: tPUT expr tINTO varorchunk '\n' { $$ = new PutIntoNode($expr, $varorchunk); }
| tPUT expr tAFTER varorchunk '\n' { $$ = new PutAfterNode($expr, $varorchunk); }
| tPUT expr tBEFORE varorchunk '\n' { $$ = new PutBeforeNode($expr, $varorchunk); }
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index c850233aa7..c6c3692361 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -364,7 +364,7 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[327] =
+static const flex_int16_t yy_accept[325] =
{ 0,
0, 0, 75, 73, 1, 71, 71, 73, 73, 70,
70, 69, 70, 66, 70, 67, 67, 67, 67, 67,
@@ -372,36 +372,36 @@ static const flex_int16_t yy_accept[327] =
67, 67, 67, 1, 67, 1, 71, 0, 72, 2,
65, 68, 69, 64, 62, 63, 67, 67, 67, 67,
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 10, 23, 67, 67, 67, 67, 67, 67, 67, 32,
- 33, 67, 35, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 53, 67, 67, 67, 1, 0, 67,
- 2, 68, 67, 4, 67, 67, 67, 67, 67, 67,
-
- 12, 67, 67, 67, 18, 67, 67, 67, 67, 67,
- 67, 28, 67, 67, 31, 67, 67, 67, 67, 41,
- 67, 67, 67, 44, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 0, 67, 67, 67, 6, 7, 67,
- 9, 11, 0, 14, 67, 67, 0, 0, 0, 67,
- 67, 22, 24, 25, 67, 67, 67, 30, 34, 37,
- 67, 67, 67, 67, 67, 67, 67, 46, 0, 52,
- 58, 67, 67, 56, 61, 0, 67, 3, 67, 67,
- 12, 15, 67, 0, 0, 18, 67, 67, 26, 67,
- 29, 0, 67, 67, 67, 67, 67, 67, 67, 67,
-
- 51, 51, 51, 59, 67, 67, 0, 67, 5, 67,
- 12, 16, 0, 0, 0, 67, 67, 27, 0, 67,
- 67, 67, 42, 43, 67, 55, 45, 0, 51, 51,
- 60, 57, 0, 67, 67, 0, 19, 67, 67, 0,
- 67, 67, 67, 67, 0, 0, 0, 51, 51, 0,
- 13, 8, 17, 20, 67, 0, 67, 39, 40, 67,
- 0, 0, 0, 51, 51, 13, 67, 0, 38, 67,
- 0, 0, 0, 0, 51, 21, 36, 67, 50, 49,
- 50, 0, 0, 0, 0, 51, 67, 49, 0, 0,
- 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
-
- 67, 0, 0, 50, 49, 49, 50, 0, 67, 48,
- 49, 49, 0, 67, 49, 67, 0, 49, 67, 0,
- 0, 54, 0, 0, 47, 0
+ 67, 10, 24, 67, 67, 67, 67, 67, 67, 67,
+ 33, 34, 67, 36, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 53, 67, 67, 67, 1, 0,
+ 67, 2, 68, 67, 4, 67, 67, 67, 67, 67,
+
+ 67, 12, 67, 67, 67, 67, 19, 67, 67, 67,
+ 67, 67, 67, 29, 67, 67, 32, 67, 67, 67,
+ 67, 41, 67, 67, 67, 44, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 0, 67, 67, 67, 6,
+ 7, 67, 9, 11, 0, 14, 67, 67, 67, 0,
+ 0, 0, 67, 67, 23, 25, 26, 67, 67, 67,
+ 31, 35, 37, 67, 67, 67, 67, 67, 67, 67,
+ 46, 0, 52, 58, 67, 67, 56, 61, 0, 67,
+ 3, 67, 67, 12, 15, 16, 67, 0, 0, 19,
+ 67, 67, 27, 67, 30, 67, 67, 67, 67, 67,
+
+ 67, 67, 67, 51, 51, 51, 59, 67, 67, 0,
+ 67, 5, 67, 12, 17, 0, 0, 0, 67, 67,
+ 28, 67, 67, 67, 42, 43, 67, 55, 45, 0,
+ 51, 51, 60, 57, 0, 67, 67, 0, 20, 67,
+ 67, 67, 67, 67, 67, 0, 0, 0, 51, 51,
+ 0, 13, 8, 18, 21, 67, 67, 39, 40, 67,
+ 0, 0, 0, 51, 51, 13, 67, 38, 67, 0,
+ 0, 0, 0, 51, 22, 67, 50, 49, 50, 0,
+ 0, 0, 0, 51, 67, 49, 0, 0, 0, 0,
+ 0, 67, 0, 0, 0, 0, 0, 0, 67, 0,
+
+ 0, 50, 49, 49, 50, 0, 67, 48, 49, 49,
+ 0, 67, 49, 67, 0, 49, 67, 0, 0, 54,
+ 0, 0, 47, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -446,89 +446,89 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[339] =
+static const flex_int16_t yy_base[337] =
{ 0,
- 0, 58, 655, 720, 59, 720, 720, 647, 0, 720,
- 643, 55, 54, 720, 638, 49, 51, 57, 46, 50,
- 48, 56, 0, 85, 59, 95, 73, 98, 106, 68,
- 124, 138, 98, 165, 148, 85, 720, 644, 720, 0,
- 720, 638, 122, 720, 720, 720, 0, 120, 73, 93,
- 124, 143, 146, 139, 146, 146, 157, 164, 162, 641,
- 0, 160, 167, 166, 177, 166, 183, 163, 171, 0,
- 0, 186, 0, 191, 192, 176, 190, 194, 191, 198,
- 197, 207, 214, 0, 215, 217, 207, 249, 224, 224,
- 0, 632, 237, 0, 217, 216, 229, 229, 237, 247,
-
- 639, 241, 249, 254, 275, 243, 258, 250, 260, 251,
- 266, 0, 266, 251, 0, 258, 254, 258, 273, 0,
- 286, 287, 290, 0, 288, 287, 293, 317, 295, 299,
- 308, 305, 310, 314, 301, 306, 307, 0, 0, 323,
- 0, 0, 637, 0, 324, 331, 318, 321, 325, 339,
- 327, 0, 0, 0, 330, 333, 344, 0, 0, 362,
- 341, 349, 354, 344, 348, 343, 347, 0, 379, 0,
- 0, 364, 357, 363, 0, 357, 362, 0, 372, 371,
- 0, 0, 374, 380, 372, 635, 376, 374, 0, 391,
- 0, 411, 394, 388, 387, 388, 389, 390, 406, 399,
-
- 631, 431, 429, 0, 401, 410, 410, 411, 0, 415,
- 0, 0, 419, 419, 447, 434, 433, 0, 424, 439,
- 425, 431, 0, 0, 440, 0, 0, 466, 469, 470,
- 0, 0, 444, 441, 448, 463, 720, 464, 470, 473,
- 471, 461, 456, 488, 489, 485, 486, 492, 510, 462,
- 0, 0, 720, 0, 486, 494, 500, 0, 0, 499,
- 499, 627, 506, 606, 532, 720, 503, 517, 0, 507,
- 520, 580, 521, 534, 539, 0, 720, 525, 720, 0,
- 720, 454, 543, 553, 556, 340, 519, 0, 567, 562,
- 329, 574, 578, 546, 557, 547, 568, 585, 583, 554,
-
- 561, 318, 199, 169, 566, 595, 158, 144, 569, 127,
- 119, 116, 507, 575, 616, 584, 618, 634, 594, 598,
- 611, 0, 80, 77, 70, 720, 671, 673, 676, 679,
- 684, 689, 691, 696, 701, 703, 708, 713
+ 0, 58, 650, 717, 59, 717, 717, 644, 0, 717,
+ 640, 55, 54, 717, 635, 49, 51, 57, 46, 50,
+ 57, 63, 0, 63, 58, 97, 87, 97, 98, 100,
+ 136, 138, 136, 117, 155, 129, 717, 639, 717, 0,
+ 717, 633, 134, 717, 717, 717, 0, 97, 121, 136,
+ 136, 147, 142, 137, 142, 156, 152, 157, 178, 169,
+ 640, 0, 172, 182, 178, 189, 177, 189, 174, 179,
+ 0, 0, 193, 0, 198, 196, 186, 190, 205, 189,
+ 192, 201, 204, 224, 0, 230, 224, 218, 260, 239,
+ 240, 0, 631, 240, 0, 234, 234, 238, 237, 243,
+
+ 241, 637, 240, 250, 250, 266, 283, 255, 269, 264,
+ 275, 266, 278, 0, 278, 273, 0, 280, 272, 277,
+ 285, 0, 283, 293, 295, 0, 294, 292, 298, 326,
+ 306, 310, 318, 317, 324, 326, 315, 318, 319, 0,
+ 0, 335, 0, 0, 634, 0, 333, 335, 340, 327,
+ 331, 333, 347, 334, 0, 0, 0, 337, 340, 350,
+ 0, 0, 358, 354, 362, 368, 356, 363, 358, 360,
+ 0, 391, 0, 0, 376, 370, 373, 0, 367, 372,
+ 0, 383, 380, 0, 0, 0, 381, 389, 381, 604,
+ 383, 380, 0, 396, 0, 407, 389, 400, 399, 403,
+
+ 402, 406, 406, 572, 440, 439, 0, 409, 418, 418,
+ 417, 0, 423, 0, 0, 425, 423, 458, 439, 438,
+ 0, 445, 431, 433, 0, 0, 440, 0, 0, 473,
+ 468, 474, 0, 0, 453, 447, 454, 471, 717, 473,
+ 476, 475, 465, 460, 488, 494, 490, 488, 509, 510,
+ 461, 0, 0, 717, 0, 493, 504, 0, 0, 499,
+ 499, 501, 506, 479, 537, 717, 505, 0, 506, 519,
+ 460, 520, 539, 540, 0, 525, 717, 0, 717, 349,
+ 543, 558, 542, 252, 519, 0, 563, 544, 247, 548,
+ 580, 537, 546, 557, 576, 581, 584, 580, 586, 211,
+
+ 168, 139, 561, 586, 132, 98, 583, 89, 86, 81,
+ 582, 585, 614, 588, 618, 615, 603, 607, 603, 0,
+ 79, 70, 68, 717, 668, 670, 673, 676, 681, 686,
+ 688, 693, 698, 700, 705, 710
} ;
-static const flex_int16_t yy_def[339] =
+static const flex_int16_t yy_def[337] =
{ 0,
- 326, 1, 326, 326, 326, 326, 326, 327, 328, 326,
- 326, 326, 326, 326, 326, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 326, 329, 326, 326, 327, 326, 330,
- 326, 326, 326, 326, 326, 326, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 326, 326, 329,
- 330, 326, 329, 329, 329, 329, 329, 329, 329, 329,
-
- 329, 329, 329, 329, 326, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 326, 329, 329, 329, 329, 329, 329,
- 329, 329, 331, 329, 329, 329, 326, 326, 326, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 332, 329,
- 329, 329, 329, 329, 329, 326, 329, 329, 329, 329,
- 333, 329, 329, 326, 326, 326, 329, 329, 329, 329,
- 329, 326, 329, 329, 329, 329, 329, 329, 329, 329,
-
- 332, 332, 332, 329, 329, 329, 326, 329, 329, 329,
- 333, 329, 326, 326, 326, 329, 329, 329, 326, 329,
- 329, 329, 329, 329, 329, 329, 329, 326, 332, 332,
- 329, 329, 326, 329, 329, 326, 326, 329, 329, 326,
- 329, 329, 329, 329, 326, 326, 326, 332, 332, 326,
- 329, 329, 326, 329, 329, 326, 329, 329, 329, 329,
- 326, 326, 326, 332, 332, 326, 329, 326, 329, 329,
- 326, 334, 326, 335, 332, 329, 326, 329, 326, 336,
- 326, 335, 335, 335, 335, 332, 329, 336, 326, 335,
- 335, 335, 326, 329, 326, 326, 335, 334, 335, 326,
-
- 329, 326, 326, 335, 336, 336, 335, 326, 329, 326,
- 336, 336, 337, 329, 338, 329, 326, 338, 329, 326,
- 326, 329, 326, 326, 326, 0, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326
+ 324, 1, 324, 324, 324, 324, 324, 325, 326, 324,
+ 324, 324, 324, 324, 324, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 324, 327, 324, 324, 325, 324, 328,
+ 324, 324, 324, 324, 324, 324, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 324, 324,
+ 327, 328, 324, 327, 327, 327, 327, 327, 327, 327,
+
+ 327, 327, 327, 327, 327, 327, 324, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 324, 327, 327, 327, 327,
+ 327, 327, 327, 327, 329, 327, 327, 327, 327, 324,
+ 324, 324, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 330, 327, 327, 327, 327, 327, 327, 324, 327,
+ 327, 327, 327, 331, 327, 327, 327, 324, 324, 324,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+
+ 327, 327, 327, 330, 330, 330, 327, 327, 327, 324,
+ 327, 327, 327, 331, 327, 324, 324, 324, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 324,
+ 330, 330, 327, 327, 324, 327, 327, 324, 324, 327,
+ 327, 327, 327, 327, 327, 324, 324, 324, 330, 330,
+ 324, 327, 327, 324, 327, 327, 327, 327, 327, 327,
+ 324, 324, 324, 330, 330, 324, 327, 327, 327, 324,
+ 332, 324, 333, 330, 327, 327, 324, 334, 324, 333,
+ 333, 333, 333, 330, 327, 334, 324, 333, 333, 333,
+ 324, 327, 324, 324, 333, 332, 333, 324, 327, 324,
+
+ 324, 333, 334, 334, 333, 324, 327, 324, 334, 334,
+ 335, 327, 336, 327, 324, 336, 327, 324, 324, 327,
+ 324, 324, 324, 0, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324
} ;
-static const flex_int16_t yy_nxt[780] =
+static const flex_int16_t yy_nxt[777] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -536,88 +536,88 @@ static const flex_int16_t yy_nxt[780] =
32, 23, 23, 33, 23, 23, 23, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
- 36, 37, 37, 42, 43, 44, 45, 48, 50, 58,
- 51, 325, 54, 55, 49, 56, 35, 52, 325, 59,
- 64, 325, 60, 53, 57, 77, 36, 37, 37, 94,
- 68, 48, 50, 58, 51, 54, 55, 49, 56, 69,
-
- 35, 52, 59, 61, 64, 60, 53, 57, 65, 77,
- 62, 95, 66, 94, 68, 63, 70, 310, 85, 86,
- 310, 67, 69, 71, 87, 72, 73, 61, 310, 74,
- 42, 43, 65, 62, 75, 95, 66, 76, 63, 78,
- 70, 79, 85, 86, 67, 313, 71, 87, 72, 73,
- 93, 80, 74, 96, 81, 82, 97, 75, 83, 289,
- 76, 90, 101, 78, 84, 79, 88, 37, 37, 58,
- 289, 98, 99, 93, 80, 100, 96, 81, 102, 82,
- 97, 103, 83, 89, 108, 90, 101, 84, 104, 106,
- 107, 109, 110, 58, 98, 99, 111, 114, 100, 112,
-
- 310, 115, 102, 116, 117, 103, 120, 89, 108, 118,
- 126, 104, 106, 107, 109, 113, 110, 121, 119, 111,
- 114, 124, 122, 112, 115, 123, 125, 116, 117, 120,
- 127, 128, 129, 118, 126, 133, 130, 134, 113, 135,
- 121, 119, 131, 137, 124, 122, 138, 132, 123, 125,
- 88, 37, 37, 127, 136, 128, 129, 139, 133, 140,
- 130, 134, 141, 135, 142, 131, 137, 89, 146, 138,
- 132, 144, 145, 150, 153, 151, 105, 154, 136, 155,
- 139, 158, 140, 159, 152, 141, 156, 157, 142, 160,
- 161, 89, 146, 147, 144, 145, 150, 153, 148, 151,
-
- 162, 154, 155, 163, 158, 149, 159, 152, 164, 166,
- 156, 157, 160, 161, 165, 167, 168, 147, 169, 310,
- 171, 148, 172, 162, 173, 174, 175, 163, 149, 176,
- 298, 177, 164, 166, 178, 179, 180, 165, 167, 168,
- 182, 293, 170, 171, 183, 172, 184, 185, 173, 174,
- 175, 186, 187, 176, 177, 188, 189, 178, 179, 190,
- 180, 191, 194, 192, 182, 170, 195, 196, 183, 184,
- 185, 197, 198, 199, 186, 193, 187, 200, 188, 189,
- 169, 204, 190, 205, 206, 191, 194, 207, 208, 209,
- 195, 196, 210, 213, 197, 198, 199, 212, 214, 193,
-
- 200, 216, 202, 217, 203, 204, 205, 218, 206, 220,
- 207, 208, 192, 209, 221, 222, 210, 213, 223, 224,
- 212, 214, 225, 226, 216, 202, 217, 203, 227, 219,
- 228, 218, 228, 220, 231, 232, 233, 221, 222, 234,
- 235, 223, 224, 236, 229, 225, 237, 226, 215, 238,
- 239, 227, 240, 219, 241, 289, 242, 231, 232, 233,
- 230, 243, 234, 235, 244, 147, 236, 228, 229, 237,
- 228, 228, 250, 238, 239, 240, 251, 252, 241, 242,
- 253, 254, 245, 230, 243, 255, 256, 244, 257, 147,
- 258, 259, 246, 228, 249, 250, 247, 266, 248, 251,
-
- 252, 260, 261, 262, 253, 254, 245, 263, 313, 255,
- 256, 228, 257, 258, 259, 246, 267, 249, 268, 247,
- 266, 248, 264, 269, 265, 260, 261, 262, 270, 271,
- 273, 263, 276, 228, 277, 274, 278, 279, 281, 267,
- 228, 268, 287, 280, 289, 264, 269, 294, 265, 275,
- 283, 270, 271, 273, 289, 276, 290, 289, 277, 278,
- 284, 279, 281, 289, 285, 303, 287, 286, 289, 289,
- 294, 291, 308, 275, 283, 289, 301, 292, 309, 293,
- 290, 272, 302, 284, 289, 304, 298, 285, 295, 303,
- 286, 311, 297, 296, 245, 291, 308, 314, 299, 301,
-
- 307, 292, 309, 316, 300, 302, 305, 274, 247, 304,
- 319, 306, 295, 312, 311, 297, 296, 317, 245, 317,
- 314, 299, 322, 323, 307, 288, 316, 300, 272, 324,
- 305, 247, 228, 319, 306, 317, 215, 312, 143, 320,
- 143, 92, 105, 288, 321, 322, 323, 92, 39, 46,
- 41, 39, 288, 324, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 320, 326, 326, 326, 321, 326, 326,
- 288, 38, 38, 326, 38, 38, 38, 40, 40, 47,
- 47, 47, 91, 91, 91, 181, 326, 326, 181, 181,
- 201, 326, 326, 201, 211, 211, 211, 280, 326, 326,
-
- 280, 280, 282, 326, 326, 282, 288, 288, 288, 315,
- 326, 326, 315, 315, 318, 326, 318, 318, 318, 3,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326
+ 36, 37, 37, 42, 43, 44, 45, 48, 50, 323,
+ 51, 323, 54, 55, 49, 56, 35, 52, 58, 65,
+ 323, 62, 308, 53, 57, 59, 60, 308, 63, 61,
+ 308, 48, 50, 64, 51, 54, 55, 49, 56, 311,
+
+ 35, 52, 58, 65, 69, 62, 53, 57, 59, 60,
+ 66, 63, 61, 70, 67, 71, 64, 78, 89, 37,
+ 37, 75, 72, 68, 73, 74, 76, 94, 69, 77,
+ 36, 37, 37, 287, 66, 90, 70, 95, 67, 71,
+ 287, 78, 42, 43, 75, 72, 68, 73, 74, 76,
+ 94, 79, 77, 80, 96, 83, 86, 87, 84, 90,
+ 98, 95, 88, 81, 85, 97, 82, 99, 91, 308,
+ 100, 101, 102, 103, 104, 79, 58, 80, 96, 83,
+ 86, 87, 84, 59, 98, 88, 81, 85, 97, 82,
+ 99, 105, 91, 100, 101, 106, 102, 103, 104, 110,
+
+ 58, 108, 109, 111, 112, 114, 59, 113, 116, 117,
+ 118, 119, 308, 120, 128, 105, 122, 123, 106, 126,
+ 127, 115, 121, 110, 108, 109, 111, 129, 112, 114,
+ 113, 116, 117, 124, 118, 119, 125, 120, 128, 122,
+ 123, 130, 126, 127, 115, 121, 135, 131, 296, 133,
+ 129, 132, 136, 291, 134, 137, 124, 138, 144, 125,
+ 139, 89, 37, 37, 140, 130, 141, 142, 143, 135,
+ 146, 131, 133, 147, 148, 132, 136, 134, 90, 137,
+ 149, 138, 144, 139, 107, 153, 154, 140, 156, 141,
+ 142, 143, 157, 146, 158, 155, 147, 148, 159, 160,
+
+ 166, 150, 90, 161, 149, 162, 151, 163, 153, 164,
+ 154, 156, 165, 152, 167, 169, 157, 158, 155, 168,
+ 170, 171, 159, 160, 166, 150, 161, 172, 162, 151,
+ 163, 174, 164, 175, 176, 165, 152, 177, 167, 169,
+ 178, 179, 168, 170, 171, 180, 181, 182, 183, 185,
+ 287, 173, 186, 187, 174, 188, 175, 189, 176, 190,
+ 191, 177, 192, 193, 178, 179, 194, 195, 180, 181,
+ 182, 196, 183, 185, 173, 197, 186, 187, 188, 198,
+ 189, 199, 190, 200, 191, 192, 193, 201, 202, 194,
+ 203, 195, 172, 207, 209, 196, 208, 210, 211, 197,
+
+ 212, 213, 216, 198, 215, 199, 200, 217, 219, 220,
+ 201, 202, 221, 203, 205, 223, 206, 207, 209, 208,
+ 210, 211, 222, 228, 212, 213, 216, 215, 224, 225,
+ 217, 219, 220, 226, 227, 229, 221, 205, 223, 206,
+ 230, 230, 233, 234, 235, 236, 222, 228, 237, 238,
+ 239, 224, 225, 231, 240, 241, 226, 227, 229, 218,
+ 242, 271, 243, 244, 245, 233, 234, 235, 236, 230,
+ 232, 237, 238, 239, 230, 230, 150, 231, 240, 241,
+ 273, 251, 252, 253, 242, 243, 244, 245, 254, 246,
+ 255, 256, 257, 232, 258, 259, 266, 249, 250, 247,
+
+ 150, 260, 271, 248, 251, 252, 253, 261, 262, 263,
+ 230, 230, 254, 246, 255, 256, 257, 258, 259, 266,
+ 249, 250, 247, 267, 265, 260, 248, 268, 269, 270,
+ 272, 261, 262, 263, 275, 276, 277, 279, 230, 264,
+ 273, 230, 285, 287, 287, 287, 267, 292, 265, 287,
+ 268, 269, 270, 272, 274, 281, 288, 275, 276, 287,
+ 277, 279, 264, 290, 287, 282, 285, 299, 284, 283,
+ 292, 300, 297, 230, 295, 301, 289, 287, 274, 281,
+ 288, 291, 296, 311, 293, 287, 309, 290, 282, 294,
+ 299, 284, 283, 302, 300, 297, 246, 295, 306, 301,
+
+ 289, 305, 303, 307, 310, 218, 298, 304, 293, 309,
+ 248, 312, 294, 314, 317, 315, 315, 302, 278, 315,
+ 246, 322, 306, 286, 286, 305, 303, 307, 310, 298,
+ 304, 320, 321, 248, 312, 145, 314, 317, 145, 318,
+ 93, 107, 93, 39, 319, 322, 46, 41, 39, 324,
+ 286, 286, 324, 324, 320, 321, 324, 324, 324, 324,
+ 324, 324, 324, 318, 324, 324, 324, 319, 38, 38,
+ 324, 38, 38, 38, 40, 40, 47, 47, 47, 92,
+ 92, 92, 184, 324, 324, 184, 184, 204, 324, 324,
+ 204, 214, 214, 214, 278, 324, 324, 278, 278, 280,
+
+ 324, 324, 280, 286, 286, 286, 313, 324, 324, 313,
+ 313, 316, 324, 316, 316, 316, 3, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324
} ;
-static const flex_int16_t yy_chk[780] =
+static const flex_int16_t yy_chk[777] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -625,85 +625,85 @@ static const flex_int16_t yy_chk[780] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 5, 5, 5, 12, 12, 13, 13, 16, 17, 21,
- 18, 325, 19, 20, 16, 20, 2, 18, 324, 22,
- 25, 323, 22, 18, 20, 30, 36, 36, 36, 49,
- 27, 16, 17, 21, 18, 19, 20, 16, 20, 27,
-
- 2, 18, 22, 24, 25, 22, 18, 20, 26, 30,
- 24, 50, 26, 49, 27, 24, 28, 312, 33, 33,
- 311, 26, 27, 28, 33, 28, 28, 24, 310, 29,
- 43, 43, 26, 24, 29, 50, 26, 29, 24, 31,
- 28, 31, 33, 33, 26, 308, 28, 33, 28, 28,
- 48, 31, 29, 51, 31, 32, 52, 29, 32, 307,
- 29, 35, 56, 31, 32, 31, 34, 34, 34, 35,
- 304, 53, 54, 48, 31, 55, 51, 31, 57, 32,
- 52, 58, 32, 34, 63, 35, 56, 32, 59, 62,
- 62, 64, 65, 35, 53, 54, 66, 68, 55, 67,
-
- 303, 69, 57, 72, 74, 58, 76, 34, 63, 75,
- 81, 59, 62, 62, 64, 67, 65, 77, 75, 66,
- 68, 79, 78, 67, 69, 78, 80, 72, 74, 76,
- 82, 83, 85, 75, 81, 87, 85, 89, 67, 90,
- 77, 75, 86, 95, 79, 78, 96, 86, 78, 80,
- 88, 88, 88, 82, 93, 83, 85, 97, 87, 98,
- 85, 89, 99, 90, 100, 86, 95, 88, 104, 96,
- 86, 102, 103, 106, 108, 107, 105, 109, 93, 110,
- 97, 114, 98, 116, 107, 99, 111, 113, 100, 117,
- 118, 88, 104, 105, 102, 103, 106, 108, 105, 107,
-
- 119, 109, 110, 121, 114, 105, 116, 107, 122, 125,
- 111, 113, 117, 118, 123, 126, 127, 105, 128, 302,
- 129, 105, 130, 119, 131, 132, 133, 121, 105, 134,
- 291, 135, 122, 125, 136, 137, 140, 123, 126, 127,
- 145, 286, 128, 129, 146, 130, 147, 148, 131, 132,
- 133, 149, 150, 134, 135, 151, 155, 136, 137, 156,
- 140, 157, 161, 160, 145, 128, 162, 163, 146, 147,
- 148, 164, 165, 166, 149, 160, 150, 167, 151, 155,
- 169, 172, 156, 173, 174, 157, 161, 176, 177, 179,
- 162, 163, 180, 184, 164, 165, 166, 183, 185, 160,
-
- 167, 187, 169, 188, 169, 172, 173, 190, 174, 193,
- 176, 177, 192, 179, 194, 195, 180, 184, 196, 197,
- 183, 185, 198, 199, 187, 169, 188, 169, 200, 192,
- 203, 190, 202, 193, 205, 206, 207, 194, 195, 208,
- 210, 196, 197, 213, 202, 198, 214, 199, 215, 216,
- 217, 200, 219, 192, 220, 282, 221, 205, 206, 207,
- 203, 222, 208, 210, 225, 215, 213, 228, 202, 214,
- 229, 230, 233, 216, 217, 219, 234, 235, 220, 221,
- 236, 238, 228, 203, 222, 239, 240, 225, 241, 215,
- 242, 243, 228, 248, 230, 233, 228, 250, 229, 234,
-
- 235, 244, 245, 246, 236, 238, 228, 247, 313, 239,
- 240, 249, 241, 242, 243, 228, 255, 230, 256, 228,
- 250, 229, 248, 257, 249, 244, 245, 246, 260, 261,
- 263, 247, 267, 265, 268, 274, 270, 271, 273, 255,
- 275, 256, 278, 313, 283, 248, 257, 287, 249, 265,
- 274, 260, 261, 263, 284, 267, 283, 285, 268, 270,
- 274, 271, 273, 290, 274, 296, 278, 275, 289, 297,
- 287, 284, 300, 265, 274, 292, 294, 285, 301, 293,
- 283, 272, 295, 274, 299, 297, 298, 274, 289, 296,
- 275, 305, 290, 289, 293, 284, 300, 309, 292, 294,
-
- 299, 285, 301, 314, 293, 295, 298, 264, 293, 297,
- 316, 298, 289, 306, 305, 290, 289, 315, 293, 317,
- 309, 292, 319, 320, 299, 315, 314, 293, 262, 321,
- 298, 293, 201, 316, 298, 318, 186, 306, 143, 317,
- 101, 92, 60, 318, 317, 319, 320, 42, 38, 15,
- 11, 8, 315, 321, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 317, 0, 0, 0, 317, 0, 0,
- 318, 327, 327, 0, 327, 327, 327, 328, 328, 329,
- 329, 329, 330, 330, 330, 331, 0, 0, 331, 331,
- 332, 0, 0, 332, 333, 333, 333, 334, 0, 0,
-
- 334, 334, 335, 0, 0, 335, 336, 336, 336, 337,
- 0, 0, 337, 337, 338, 0, 338, 338, 338, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326
+ 5, 5, 5, 12, 12, 13, 13, 16, 17, 323,
+ 18, 322, 19, 20, 16, 20, 2, 18, 21, 25,
+ 321, 24, 310, 18, 20, 21, 22, 309, 24, 22,
+ 308, 16, 17, 24, 18, 19, 20, 16, 20, 306,
+
+ 2, 18, 21, 25, 27, 24, 18, 20, 21, 22,
+ 26, 24, 22, 27, 26, 28, 24, 30, 34, 34,
+ 34, 29, 28, 26, 28, 28, 29, 48, 27, 29,
+ 36, 36, 36, 305, 26, 34, 27, 49, 26, 28,
+ 302, 30, 43, 43, 29, 28, 26, 28, 28, 29,
+ 48, 31, 29, 31, 50, 32, 33, 33, 32, 34,
+ 52, 49, 33, 31, 32, 51, 31, 53, 35, 301,
+ 54, 55, 56, 57, 58, 31, 35, 31, 50, 32,
+ 33, 33, 32, 35, 52, 33, 31, 32, 51, 31,
+ 53, 59, 35, 54, 55, 60, 56, 57, 58, 64,
+
+ 35, 63, 63, 65, 66, 68, 35, 67, 69, 70,
+ 73, 75, 300, 76, 82, 59, 77, 78, 60, 80,
+ 81, 68, 76, 64, 63, 63, 65, 83, 66, 68,
+ 67, 69, 70, 79, 73, 75, 79, 76, 82, 77,
+ 78, 84, 80, 81, 68, 76, 88, 86, 289, 87,
+ 83, 86, 90, 284, 87, 91, 79, 94, 101, 79,
+ 96, 89, 89, 89, 97, 84, 98, 99, 100, 88,
+ 103, 86, 87, 104, 105, 86, 90, 87, 89, 91,
+ 106, 94, 101, 96, 107, 108, 109, 97, 110, 98,
+ 99, 100, 111, 103, 112, 109, 104, 105, 113, 115,
+
+ 123, 107, 89, 116, 106, 118, 107, 119, 108, 120,
+ 109, 110, 121, 107, 124, 127, 111, 112, 109, 125,
+ 128, 129, 113, 115, 123, 107, 116, 130, 118, 107,
+ 119, 131, 120, 132, 133, 121, 107, 134, 124, 127,
+ 135, 136, 125, 128, 129, 137, 138, 139, 142, 147,
+ 280, 130, 148, 149, 131, 150, 132, 151, 133, 152,
+ 153, 134, 154, 158, 135, 136, 159, 160, 137, 138,
+ 139, 163, 142, 147, 130, 164, 148, 149, 150, 165,
+ 151, 166, 152, 167, 153, 154, 158, 168, 169, 159,
+ 170, 160, 172, 175, 177, 163, 176, 179, 180, 164,
+
+ 182, 183, 188, 165, 187, 166, 167, 189, 191, 192,
+ 168, 169, 194, 170, 172, 197, 172, 175, 177, 176,
+ 179, 180, 196, 202, 182, 183, 188, 187, 198, 199,
+ 189, 191, 192, 200, 201, 203, 194, 172, 197, 172,
+ 206, 205, 208, 209, 210, 211, 196, 202, 213, 216,
+ 217, 198, 199, 205, 219, 220, 200, 201, 203, 218,
+ 222, 271, 223, 224, 227, 208, 209, 210, 211, 231,
+ 206, 213, 216, 217, 230, 232, 218, 205, 219, 220,
+ 264, 235, 236, 237, 222, 223, 224, 227, 238, 230,
+ 240, 241, 242, 206, 243, 244, 251, 231, 232, 230,
+
+ 218, 245, 262, 230, 235, 236, 237, 246, 247, 248,
+ 249, 250, 238, 230, 240, 241, 242, 243, 244, 251,
+ 231, 232, 230, 256, 250, 245, 230, 257, 260, 261,
+ 263, 246, 247, 248, 267, 269, 270, 272, 265, 249,
+ 273, 274, 276, 283, 281, 288, 256, 285, 250, 290,
+ 257, 260, 261, 263, 265, 273, 281, 267, 269, 282,
+ 270, 272, 249, 283, 287, 273, 276, 292, 274, 273,
+ 285, 293, 290, 204, 288, 294, 282, 295, 265, 273,
+ 281, 291, 296, 311, 287, 297, 303, 283, 273, 287,
+ 292, 274, 273, 295, 293, 290, 291, 288, 298, 294,
+
+ 282, 297, 296, 299, 304, 190, 291, 296, 287, 303,
+ 291, 307, 287, 312, 314, 313, 316, 295, 311, 315,
+ 291, 319, 298, 313, 316, 297, 296, 299, 304, 291,
+ 296, 317, 318, 291, 307, 145, 312, 314, 102, 315,
+ 93, 61, 42, 38, 315, 319, 15, 11, 8, 3,
+ 313, 316, 0, 0, 317, 318, 0, 0, 0, 0,
+ 0, 0, 0, 315, 0, 0, 0, 315, 325, 325,
+ 0, 325, 325, 325, 326, 326, 327, 327, 327, 328,
+ 328, 328, 329, 0, 0, 329, 329, 330, 0, 0,
+ 330, 331, 331, 331, 332, 0, 0, 332, 332, 333,
+
+ 0, 0, 333, 334, 334, 334, 335, 0, 0, 335,
+ 335, 336, 0, 336, 336, 336, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324
} ;
static yy_state_type yy_last_accepting_state;
@@ -1066,13 +1066,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 >= 327 )
+ if ( yy_current_state >= 325 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 326 );
+ while ( yy_current_state != 324 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1187,12 +1187,12 @@ YY_RULE_SETUP
case 16:
YY_RULE_SETUP
#line 147 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGLOBAL; }
+{ count(); return tFRAME; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 148 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGO; }
+{ count(); return tGLOBAL; }
YY_BREAK
case 18:
YY_RULE_SETUP
@@ -1202,92 +1202,92 @@ YY_RULE_SETUP
case 19:
YY_RULE_SETUP
#line 150 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGOLOOP; }
+{ count(); return tGO; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 151 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINSTANCE; }
+{ count(); return tGOLOOP; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 152 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTERSECTS;}
+{ count(); return tINSTANCE; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 153 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTO; }
+{ count(); return tINTERSECTS;}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 154 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIN; }
+{ count(); return tINTO; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 155 "engines/director/lingo/lingo-lex.l"
-{ count(); return tITEM; }
+{ count(); return tIN; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 156 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLINE; }
+{ count(); return tITEM; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 157 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMACRO;; }
+{ count(); return tLINE; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 158 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMETHOD; }
+{ count(); return tMACRO;; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 159 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOD;}
+{ count(); return tMETHOD; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 160 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOVIE; }
+{ count(); return tMOD;}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 161 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEXT; }
+{ count(); return tMOVIE; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 162 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNOT; }
+{ count(); return tNEXT; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 163 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOF; }
+{ count(); return tNOT; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 164 "engines/director/lingo/lingo-lex.l"
-{ count(); return tON; } // D3
+{ count(); return tOF; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 165 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOPEN; }
+{ count(); return tON; } // D3
YY_BREAK
case 35:
YY_RULE_SETUP
#line 166 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOR; }
+{ count(); return tOPEN; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 167 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAY; }
+{ count(); return tOR; }
YY_BREAK
case 37:
YY_RULE_SETUP
@@ -1969,7 +1969,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 >= 327 )
+ if ( yy_current_state >= 325 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1997,11 +1997,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 >= 327 )
+ if ( yy_current_state >= 325 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 326);
+ yy_is_jam = (yy_current_state == 324);
return yy_is_jam ? 0 : yy_current_state;
}
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 49511cd61a..dbd453df04 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -144,6 +144,7 @@ end({spc}+{identifier})? {
^{spc}*factory { count(); return tFACTORY; }
exit { count(); return tEXIT; }
field { count(); return tFIELD; }
+frame { count(); return tFRAME; }
global { count(); return tGLOBAL; }
go{spc}+(to{spc}+)?frame { count(); return tGO; }
go{spc}+(to)? { count(); return tGO; }
@@ -164,7 +165,6 @@ of { count(); return tOF; }
on { count(); return tON; } // D3
open { count(); return tOPEN; }
or { count(); return tOR; }
-play{spc}+frame { count(); return tPLAY; }
play { count(); return tPLAY; }
playAccel { count(); return tPLAYACCEL; }
previous { count(); return tPREVIOUS; }
Commit: da9341c79615d956877ba5459717c83f271b8deb
https://github.com/scummvm/scummvm/commit/da9341c79615d956877ba5459717c83f271b8deb
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove play preprocessor
Changed paths:
engines/director/lingo/lingo-preprocessor.cpp
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index 7131ddd190..b9832e1278 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -27,7 +27,6 @@
namespace Director {
Common::String preprocessWhen(Common::String in, bool *changed);
-Common::String preprocessPlay(Common::String in);
Common::String preprocessSound(Common::String in);
bool isspec(char c) {
@@ -211,7 +210,6 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
res1 = preprocessWhen(res1, &changed);
if (!changed) {
- res1 = preprocessPlay(res1);
res1 = preprocessSound(res1);
}
@@ -301,53 +299,6 @@ Common::String preprocessWhen(Common::String in, bool *changed) {
return res;
}
-// play done -> play #done
-Common::String preprocessPlay(Common::String in) {
- Common::String res, next;
- const char *ptr = in.c_str();
- const char *beg = ptr;
- const char *nextPtr;
-
- while ((ptr = scumm_strcasestr(beg, "play")) != NULL) {
- if (ptr != findtokstart(in.c_str(), ptr)) { // If we're in the middle of a word
- res += *beg++;
- continue;
- }
-
- ptr += 4; // end of 'play'
- res += Common::String(beg, ptr);
-
- if (!*ptr) // If it is end of the line
- break;
-
- if (Common::isAlnum(*ptr)) { // If it is in the middle of the word
- beg = ptr;
- continue;
- }
-
- next = nexttok(ptr, &nextPtr);
-
- debugC(2, kDebugParse | kDebugPreprocess, "PLAY: nexttok: %s", next.c_str());
-
- if (next.equalsIgnoreCase("done")) {
- res += " #"; // Turn it into SYMBOL
- } else {
- res += ' ';
- }
-
- res += next;
- ptr = nextPtr;
- beg = ptr;
- }
-
- res += Common::String(beg);
-
- if (in.size() != res.size())
- debugC(2, kDebugParse | kDebugPreprocess, "PLAY: in: %s\nout: %s", in.c_str(), res.c_str());
-
- return res;
-}
-
// sound fadeIn 5, 10 -> sound #fadeIn, 5, 10
Common::String preprocessSound(Common::String in) {
Common::String res, next;
Commit: 4d6e4558c926877762e2a0866bc981ea0e08f0a4
https://github.com/scummvm/scummvm/commit/4d6e4558c926877762e2a0866bc981ea0e08f0a4
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement playAccel
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 816b344876..d9e3ae43f3 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -467,6 +467,20 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
}
}
+ if (node->name->equalsIgnoreCase("playAccel")) {
+ for (uint i = 0; i < node->args->size(); i++) {
+ Node *arg = (*node->args)[i];
+ if (arg->type == kVarNode) {
+ code1(LC::c_symbolpush);
+ codeString(static_cast<VarNode *>(arg)->name->c_str());
+ } else {
+ compile(arg);
+ }
+ }
+ codeCmd(node->name, node->args->size());
+ return;
+ }
+
compileList(node->args);
codeCmd(node->name, node->args->size());
}
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 7b78e7da85..ee718379ce 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -609,18 +609,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 108
+#define YYFINAL 107
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2465
+#define YYLAST 2463
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 94
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 44
/* YYNRULES -- Number of rules. */
-#define YYNRULES 181
+#define YYNRULES 180
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 334
+#define YYNSTATES 333
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 333
@@ -681,21 +681,21 @@ static const yytype_int16 yyrline[] =
244, 248, 250, 252, 253, 256, 262, 269, 270, 275,
279, 283, 284, 285, 290, 291, 292, 293, 294, 295,
296, 301, 302, 305, 307, 308, 309, 310, 313, 314,
- 315, 316, 317, 319, 320, 322, 323, 326, 327, 328,
- 329, 330, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 343, 344, 347, 351, 361, 362, 363, 364, 367,
- 368, 369, 372, 373, 374, 375, 376, 377, 378, 381,
- 384, 389, 393, 399, 404, 407, 413, 418, 424, 430,
- 436, 444, 445, 446, 447, 450, 450, 452, 453, 454,
- 457, 461, 465, 471, 475, 479, 483, 485, 487, 491,
- 492, 496, 502, 509, 510, 516, 517, 518, 519, 520,
- 521, 522, 523, 526, 528, 532, 536, 537, 538, 541,
- 545, 550, 551, 552, 555, 557, 558, 561, 562, 563,
- 570, 571, 575, 576, 577, 578, 579, 580, 581, 582,
- 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
+ 315, 316, 317, 319, 320, 322, 325, 326, 327, 328,
+ 329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
+ 342, 343, 346, 350, 360, 361, 362, 363, 366, 367,
+ 368, 371, 372, 373, 374, 375, 376, 377, 380, 383,
+ 388, 392, 398, 403, 406, 412, 417, 423, 429, 435,
+ 443, 444, 445, 446, 449, 449, 451, 452, 453, 456,
+ 460, 464, 470, 474, 478, 482, 484, 486, 490, 491,
+ 495, 501, 508, 509, 515, 516, 517, 518, 519, 520,
+ 521, 522, 525, 527, 531, 535, 536, 537, 540, 544,
+ 549, 550, 551, 554, 556, 557, 560, 561, 562, 569,
+ 570, 574, 575, 576, 577, 578, 579, 580, 581, 582,
+ 583, 584, 585, 586, 587, 588, 589, 590, 591, 598,
599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
- 609, 610, 611, 612, 613, 614, 615, 616, 619, 620,
- 623, 627
+ 609, 610, 611, 612, 613, 614, 615, 618, 619, 622,
+ 626
};
#endif
@@ -758,7 +758,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-222)
+#define YYPACT_NINF (-225)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -772,40 +772,40 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1323, -222, -222, -222, -222, -222, -222, -222, -32, -222,
- 2137, 930, -222, -222, 2137, -222, -24, -222, -222, 1010,
- -11, 2137, -222, -222, -222, -222, 2137, -222, 1090, 2137,
- -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
- -222, -222, -222, -222, -222, 2137, 2137, -222, -222, 40,
- 1323, -222, -222, -222, -222, 1010, -222, -222, -222, -222,
- -222, -222, -222, -222, -43, -222, -222, -222, -222, -222,
- -21, -16, -222, -222, -222, -222, 930, 930, 930, 930,
- 438, -12, -222, -222, -222, -222, -222, -222, 2181, 2137,
- -13, 848, -9, 520, 2137, 930, -222, -222, -30, -5,
- 930, 930, -4, -2, 602, 3, 6, 2137, -222, -222,
- 9, 684, -222, -222, 2137, -222, -222, -222, 2216, -20,
- 5, -17, -78, -64, -222, 2367, -1, -7, 930, 1829,
- 930, 930, 930, 930, 930, 930, 930, 930, 930, 930,
- 930, 930, 930, 930, 930, 930, 930, 10, -222, -222,
- 311, -222, 2137, 1170, 1170, 1250, 2137, 2137, 156, 930,
- -222, -222, -222, 2229, 34, 2267, -222, -222, 930, -68,
- 766, 2367, -222, -222, 66, -222, -222, 13, -222, -222,
- -222, 930, 930, -222, 930, 2077, -222, -222, 930, 14,
- 1891, 79, -25, -25, -25, -25, 65, 65, -222, -15,
- -25, -25, -25, -25, -15, -46, -46, -222, -222, 1891,
- 930, -222, 19, 23, 24, -7, 930, 930, 930, 930,
- 930, 930, 930, 930, 930, 930, 930, 930, 930, 930,
- 930, 930, 930, 930, 930, 1891, 2280, 2137, -222, -222,
- 25, -222, -222, 78, 2380, 930, 1891, 2367, 2367, 2367,
- -20, 5, 27, -222, 2367, -222, -222, -222, 1385, -222,
- -222, 1953, 1891, -58, -222, -222, -222, -25, -25, -25,
- -25, 65, 65, -222, -15, -25, -25, -25, -25, -15,
- -46, -46, -222, -222, -7, 2166, 1448, -222, 2137, -68,
- 930, 2367, 1517, 2015, 35, -222, 1891, -222, -222, 81,
- 930, 38, 43, -222, 2367, 2137, 1891, -222, -222, 1579,
- 930, 2317, -222, 1891, -40, -222, 1642, 44, 2330, 1891,
- 1891, -222, 2137, 45, -222, 1891, 1705, -222, -222, 1767,
- 48, 49, -222, -222
+ 1322, -225, -225, -225, -225, -225, -225, -33, -225, 2135,
+ 929, -225, -225, 2135, -225, -30, -225, -225, 1009, 20,
+ 2135, -225, -225, -225, -225, 2135, -225, 1089, 2135, -225,
+ -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+ -225, -225, -225, -225, 2135, 2135, -225, -225, 34, 1322,
+ -225, -225, -225, -225, 1009, -225, -225, -225, -225, -225,
+ -225, -225, -225, -51, -225, -225, -225, -225, -225, -41,
+ -38, -225, -225, -225, -225, 929, 929, 929, 929, 437,
+ -29, -225, -225, -225, -225, -225, -225, 2179, 2135, -10,
+ 847, -9, 519, 2135, 929, -225, -225, -35, -5, 929,
+ 929, -2, -1, 601, 3, 7, 2135, -225, -225, 9,
+ 683, -225, -225, 2135, -225, -225, -225, 2214, -31, -17,
+ -12, -78, -66, -225, 2365, 5, 10, 929, 1828, 929,
+ 929, 929, 929, 929, 929, 929, 929, 929, 929, 929,
+ 929, 929, 929, 929, 929, 929, 12, -225, -225, 310,
+ -225, 2135, 1169, 1169, 1249, 2135, 2135, 155, 929, -225,
+ -225, -225, 2227, 47, 2265, -225, -225, 929, -23, 765,
+ 2365, -225, -225, 52, -225, -225, 16, -225, -225, -225,
+ 929, 929, -225, 929, 2075, -225, -225, 929, 15, 1890,
+ 83, -26, -26, -26, -26, 189, 189, -225, -44, -26,
+ -26, -26, -26, -44, -37, -37, -225, -225, 1890, 929,
+ -225, 21, 23, 24, 10, 929, 929, 929, 929, 929,
+ 929, 929, 929, 929, 929, 929, 929, 929, 929, 929,
+ 929, 929, 929, 929, 1890, 2278, 2135, -225, -225, 25,
+ -225, -225, 79, 2378, 929, 1890, 2365, 2365, 2365, -31,
+ -17, 26, -225, 2365, -225, -225, -225, 1384, -225, -225,
+ 1952, 1890, -61, -225, -225, -225, -26, -26, -26, -26,
+ 189, 189, -225, -44, -26, -26, -26, -26, -44, -37,
+ -37, -225, -225, 10, 2164, 1447, -225, 2135, -23, 929,
+ 2365, 1516, 2014, 29, -225, 1890, -225, -225, 74, 929,
+ 31, 33, -225, 2365, 2135, 1890, -225, -225, 1578, 929,
+ 2315, -225, 1890, -16, -225, 1641, 35, 2328, 1890, 1890,
+ -225, 2135, 36, -225, 1890, 1704, -225, -225, 1766, 37,
+ 38, -225, -225
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -813,60 +813,60 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 24, 45, 28, 31, 48, 57, 30, 0, 32,
- 61, 0, 33, 35, 0, 39, 40, 42, 46, 79,
- 47, 49, 52, 55, 58, 56, 0, 43, 79, 61,
- 26, 44, 41, 38, 25, 27, 50, 29, 36, 37,
- 60, 54, 34, 59, 51, 61, 0, 53, 5, 0,
- 2, 3, 6, 7, 8, 79, 9, 65, 69, 70,
- 71, 66, 67, 68, 0, 78, 40, 47, 49, 63,
- 0, 62, 115, 116, 118, 117, 41, 0, 0, 0,
- 178, 123, 137, 121, 122, 138, 139, 142, 0, 61,
- 0, 0, 0, 80, 0, 0, 123, 125, 0, 0,
- 32, 39, 0, 0, 80, 0, 0, 61, 1, 4,
- 0, 80, 77, 97, 0, 119, 135, 136, 0, 118,
- 117, 0, 123, 0, 129, 180, 0, 179, 178, 0,
+ 0, 24, 28, 31, 47, 56, 30, 0, 32, 60,
+ 0, 33, 35, 0, 39, 40, 42, 45, 78, 46,
+ 48, 51, 54, 57, 55, 0, 43, 78, 60, 26,
+ 44, 41, 38, 25, 27, 49, 29, 36, 37, 59,
+ 53, 34, 58, 50, 60, 0, 52, 5, 0, 2,
+ 3, 6, 7, 8, 78, 9, 64, 68, 69, 70,
+ 65, 66, 67, 0, 77, 40, 46, 48, 62, 0,
+ 61, 114, 115, 117, 116, 41, 0, 0, 0, 177,
+ 122, 136, 120, 121, 137, 138, 141, 0, 60, 0,
+ 0, 0, 79, 0, 0, 122, 124, 0, 0, 32,
+ 39, 0, 0, 79, 0, 0, 60, 1, 4, 0,
+ 79, 76, 96, 0, 118, 134, 135, 0, 117, 116,
+ 0, 122, 0, 128, 179, 0, 178, 177, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 84,
- 0, 73, 35, 26, 44, 38, 25, 27, 50, 0,
- 140, 141, 160, 82, 0, 0, 95, 96, 0, 13,
- 86, 87, 74, 75, 42, 99, 98, 0, 72, 64,
- 134, 0, 0, 127, 0, 0, 128, 126, 0, 0,
- 109, 100, 152, 153, 150, 151, 154, 155, 147, 157,
- 158, 159, 149, 148, 156, 143, 144, 145, 146, 109,
- 0, 124, 0, 0, 0, 81, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 75, 83, 0,
+ 72, 35, 26, 44, 38, 25, 27, 49, 0, 139,
+ 140, 159, 81, 0, 0, 94, 95, 0, 13, 85,
+ 86, 73, 74, 42, 98, 97, 0, 71, 63, 133,
+ 0, 0, 126, 0, 0, 127, 125, 0, 0, 108,
+ 99, 151, 152, 149, 150, 153, 154, 146, 156, 157,
+ 158, 148, 147, 155, 142, 143, 144, 145, 108, 0,
+ 123, 0, 0, 0, 80, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 109, 0, 0, 17, 18,
- 11, 14, 15, 42, 90, 0, 109, 133, 131, 132,
- 0, 0, 0, 130, 181, 120, 113, 114, 0, 110,
- 111, 0, 10, 0, 91, 92, 93, 170, 171, 168,
- 169, 172, 173, 165, 175, 176, 177, 167, 166, 174,
- 161, 162, 163, 164, 83, 0, 0, 94, 61, 0,
- 0, 89, 20, 0, 0, 112, 109, 102, 85, 0,
- 0, 0, 0, 16, 88, 21, 109, 104, 101, 0,
- 0, 0, 106, 109, 0, 22, 0, 0, 0, 109,
- 12, 19, 0, 0, 103, 109, 0, 23, 105, 0,
- 0, 0, 107, 108
+ 0, 0, 0, 0, 108, 0, 0, 17, 18, 11,
+ 14, 15, 42, 89, 0, 108, 132, 130, 131, 0,
+ 0, 0, 129, 180, 119, 112, 113, 0, 109, 110,
+ 0, 10, 0, 90, 91, 92, 169, 170, 167, 168,
+ 171, 172, 164, 174, 175, 176, 166, 165, 173, 160,
+ 161, 162, 163, 82, 0, 0, 93, 60, 0, 0,
+ 88, 20, 0, 0, 111, 108, 101, 84, 0, 0,
+ 0, 0, 16, 87, 21, 108, 103, 100, 0, 0,
+ 0, 105, 108, 0, 22, 0, 0, 0, 108, 12,
+ 19, 0, 0, 102, 108, 0, 23, 104, 0, 0,
+ 0, 106, 107
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -222, -222, -222, 87, -222, -222, -222, -222, -222, -149,
- -222, -222, 0, -28, -222, 4, -222, -222, -6, -222,
- -222, -222, -222, -222, -222, -222, -204, -222, -221, -86,
- -18, -105, -222, -222, -222, -44, -84, -222, -14, -222,
- 200, -27, 26, -157
+ -225, -225, -225, 77, -225, -225, -225, -225, -225, -161,
+ -225, -225, 0, -25, -225, 4, -225, -225, -11, -225,
+ -225, -225, -225, -225, -225, -225, -203, -225, -224, -86,
+ -18, -82, -225, -225, -225, -55, -80, -225, -7, -225,
+ 200, -39, 8, -157
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 239, 240, 241, 242,
- 54, 314, 81, 70, 71, 257, 57, 58, 92, 103,
- 59, 168, 60, 61, 62, 63, 258, 259, 260, 82,
- 83, 212, 98, 84, 123, 124, 85, 86, 87, 162,
- 125, 163, 126, 127
+ 0, 48, 49, 50, 51, 52, 238, 239, 240, 241,
+ 53, 313, 80, 69, 70, 256, 56, 57, 91, 102,
+ 58, 167, 59, 60, 61, 62, 257, 258, 259, 81,
+ 82, 211, 97, 83, 122, 123, 84, 85, 86, 161,
+ 124, 162, 125, 126
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -874,544 +874,544 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 105, 215, 97, 56, 262, 237, 160, 64, 161,
- 69, 128, 136, 166, 89, 184, 90, 106, 160, 238,
- 161, 96, 102, 167, 185, 160, 99, 161, 186, 69,
- 188, 286, 298, 136, 94, 95, 137, 295, 145, 146,
- 108, 295, 292, 136, 112, 69, 107, 321, 322, 110,
- 55, 213, 214, 263, 56, 65, 142, 143, 144, 145,
- 146, 147, 115, 116, 117, 295, 113, 143, 144, 145,
- 146, 295, 114, 181, 148, 183, 284, 128, 151, 177,
- 122, 188, 169, 172, 160, 173, 161, 234, 295, 69,
- 175, 187, 309, 176, 164, 295, 178, 209, 182, 295,
- 246, 245, 316, 261, 255, 295, 264, 69, 295, 320,
- 265, 266, 289, 290, 179, 326, 130, 131, 132, 133,
- 184, 329, 308, 136, 310, 312, 137, 138, 139, 55,
- 313, 324, 328, 191, 211, 332, 333, 109, 211, 211,
- 303, 253, 0, 244, 140, 141, 142, 143, 144, 145,
- 146, 0, 96, 0, 189, 0, 96, 96, 0, 0,
- 0, 72, 0, 0, 0, 0, 73, 0, 0, 1,
- 74, 75, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 0, 9, 0, 252, 0, 0, 12, 13,
- 55, 15, 66, 17, 18, 0, 67, 68, 0, 22,
- 23, 24, 25, 0, 27, 0, 0, 0, 0, 55,
- 0, 88, 0, 76, 33, 34, 35, 0, 0, 93,
- 37, 38, 39, 40, 41, 42, 43, 44, 104, 0,
- 0, 0, 0, 0, 47, 55, 0, 288, 77, 78,
- 0, 0, 0, 0, 0, 79, 55, 80, 0, 0,
- 0, 0, 0, 0, 0, 111, 0, 0, 55, 0,
- 302, 55, 55, 0, 0, 297, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
- 0, 0, 0, 0, 0, 0, 55, 0, 69, 0,
- 0, 150, 55, 55, 0, 165, 55, 307, 0, 0,
- 170, 171, 0, 0, 0, 315, 55, 0, 0, 55,
- 0, 0, 0, 55, 0, 0, 55, 0, 0, 55,
- 55, 0, 327, 0, 0, 55, 55, 0, 0, 55,
+ 54, 214, 96, 104, 55, 261, 159, 63, 165, 68,
+ 89, 127, 160, 88, 135, 183, 101, 159, 166, 105,
+ 95, 135, 184, 160, 159, 98, 185, 187, 68, 297,
+ 160, 285, 135, 294, 107, 136, 111, 294, 142, 143,
+ 144, 145, 291, 109, 68, 106, 112, 144, 145, 54,
+ 113, 236, 262, 55, 64, 141, 142, 143, 144, 145,
+ 127, 294, 180, 146, 237, 93, 94, 294, 114, 115,
+ 116, 320, 321, 212, 213, 283, 181, 147, 150, 121,
+ 182, 176, 168, 159, 294, 171, 172, 244, 68, 160,
+ 174, 294, 308, 163, 175, 294, 177, 186, 187, 208,
+ 233, 294, 315, 245, 294, 254, 68, 260, 263, 319,
+ 264, 265, 288, 178, 289, 325, 307, 309, 311, 183,
+ 312, 328, 323, 327, 331, 332, 108, 302, 54, 252,
+ 243, 0, 190, 210, 0, 188, 0, 210, 210, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 95, 0, 0, 0, 95, 95, 0, 0, 0,
+ 71, 0, 0, 0, 0, 72, 0, 0, 1, 73,
+ 74, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 251, 0, 0, 11, 12, 54,
+ 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
+ 23, 24, 0, 26, 0, 0, 0, 0, 54, 0,
+ 87, 0, 75, 32, 33, 34, 0, 0, 92, 36,
+ 37, 38, 39, 40, 41, 42, 43, 103, 0, 0,
+ 0, 0, 0, 46, 54, 0, 287, 76, 77, 0,
+ 129, 130, 131, 132, 78, 54, 79, 135, 0, 0,
+ 136, 137, 138, 0, 110, 0, 0, 54, 0, 0,
+ 54, 54, 301, 0, 296, 0, 0, 0, 139, 140,
+ 141, 142, 143, 144, 145, 0, 0, 0, 117, 0,
+ 0, 0, 0, 0, 0, 54, 0, 68, 0, 0,
+ 149, 54, 54, 0, 164, 54, 306, 0, 0, 169,
+ 170, 0, 0, 0, 314, 54, 0, 0, 54, 0,
+ 0, 0, 54, 0, 0, 54, 0, 0, 54, 54,
+ 0, 326, 0, 0, 54, 54, 0, 0, 54, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 0, 0, 0,
- 0, 0, 0, 196, 197, 198, 0, 0, 201, 0,
- 0, 0, 130, 131, 132, 133, 134, 135, 236, 136,
- 0, 0, 137, 138, 139, 0, 0, 0, 0, 0,
- 0, 247, 248, 0, 249, 0, 0, 0, 254, 0,
- 140, 141, 142, 143, 144, 145, 146, 0, 0, 210,
- 0, 180, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 267, 268, 269, 270,
+ 202, 203, 204, 205, 206, 207, 0, 0, 0, 0,
+ 0, 0, 195, 196, 197, 0, 0, 200, 0, 0,
+ 0, 129, 130, 131, 132, 133, 134, 235, 135, 0,
+ 0, 136, 137, 138, 0, 0, 0, 0, 0, 0,
+ 246, 247, 0, 248, 0, 0, 0, 253, 0, 139,
+ 140, 141, 142, 143, 144, 145, 0, 0, 209, 0,
+ 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 266, 267, 268, 269, 270,
271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 283, 0, 285, 0, 0, 0, 0, 0,
- 0, 0, 0, 72, 0, 291, 0, 0, 73, 0,
- 0, 1, 119, 120, 0, 2, 0, 3, 4, 5,
- 6, 7, 0, 0, 0, 9, 0, 0, 0, 0,
- 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
- 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
- 304, 0, 0, 30, 31, 76, 33, 34, 35, 0,
- 311, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 318, 0, 0, 0, 0, 0, 47, 0, 0, 0,
- 77, 78, 0, 0, 0, 72, 0, 79, 0, 80,
- 73, 121, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
- 0, 0, 12, 152, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 130, 131, 132, 133, 153, 154, 76, 155, 156,
- 157, 137, 138, 158, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 140,
- 141, 142, 143, 144, 145, 146, 0, 72, 159, 79,
- 0, 80, 73, 0, 0, 1, 74, 75, 0, 2,
- 0, 3, 4, 5, 6, 7, 0, 0, 0, 9,
- 0, 0, 0, 0, 12, 13, 0, 15, 66, 174,
- 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 130, 131, 132, 133, 153, 154, 76,
- 155, 34, 35, 137, 138, 158, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
- 47, 140, 141, 142, 143, 144, 145, 146, 0, 72,
- 159, 79, 0, 80, 73, 0, 0, 1, 74, 75,
- 0, 2, 0, 3, 4, 5, 6, 7, 0, 0,
- 0, 9, 0, 0, 0, 0, 12, 13, 0, 15,
- 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
- 25, 0, 27, 0, 0, 130, 131, 132, 133, 153,
- 154, 76, 155, 34, 35, 137, 138, 158, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
- 0, 0, 47, 140, 141, 142, 143, 144, 145, 146,
- 0, 72, 159, 79, 0, 80, 73, 0, 0, 1,
- 74, 75, 0, 2, 0, 3, 4, 5, 6, 7,
- 0, 0, 0, 9, 0, 0, 0, 0, 12, 13,
- 0, 15, 66, 243, 18, 0, 67, 68, 0, 22,
- 23, 24, 25, 0, 27, 0, 0, 130, 131, 132,
- 133, 153, 154, 76, 155, 34, 35, 137, 138, 158,
- 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 0, 0, 0, 0, 47, 140, 141, 142, 143, 144,
- 145, 146, 0, 72, 0, 79, 0, 80, 73, 0,
- 0, 1, 74, 75, 0, 2, 0, 3, 4, 5,
- 6, 7, 0, 0, 0, 9, 0, 0, 0, 0,
- 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
- 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 76, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 0, 0, 0, 0, 47, 0, 0, 0,
- 77, 78, 0, 0, 0, 72, 0, 79, 149, 80,
- 73, 0, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
- 0, 0, 77, 78, 0, 72, 0, 0, 0, 79,
- 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
- 0, 0, 77, 78, 0, 72, 0, 0, 0, 91,
- 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 100, 0, 0,
- 0, 0, 12, 13, 0, 101, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 76, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
- 0, 0, 77, 78, 0, 72, 0, 0, 0, 91,
- 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 76, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
- 0, 0, 77, 78, 0, 72, 0, 0, 0, 79,
- 73, 80, 0, 1, 74, 75, 0, 2, 0, 3,
- 4, 5, 6, 7, 0, 0, 0, 9, 0, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 76, 0, 34,
- 35, 0, 0, 0, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 47, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 79,
- 2, 80, 3, 4, 5, 6, 7, 0, 0, 8,
- 9, 10, 0, 0, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 26, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 0, 1, 0,
- 0, 47, 2, 0, 3, 4, 5, 6, 7, 293,
- 48, 8, 9, 10, 0, 0, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 294, 1, 0, 47, 0, 2, 0, 3, 4, 5,
- 6, 7, 256, 0, 8, 9, 10, 0, 0, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 0, 301, 0, 47, 0, 0, 0,
- 1, 0, 0, 305, 2, 256, 3, 4, 5, 6,
- 7, 0, 0, 8, 9, 10, 0, 0, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 0, 0, 47, 2, 0, 3, 4,
- 5, 6, 7, 0, 256, 8, 9, 10, 0, 0,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 317, 1, 0, 47, 0, 2,
- 0, 3, 4, 5, 6, 7, 256, 0, 8, 9,
- 10, 0, 0, 11, 12, 13, 0, 15, 16, 17,
- 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
- 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 323, 1, 0,
- 47, 0, 2, 0, 3, 4, 5, 6, 7, 256,
- 0, 8, 9, 10, 0, 0, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 1, 330, 0, 47, 2, 0, 3, 4, 5, 6,
- 7, 0, 256, 8, 9, 10, 0, 0, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 331, 0, 47, 2, 0, 3, 4,
- 5, 6, 7, 0, 256, 8, 9, 10, 0, 0,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 0, 0, 47, 2, 0,
- 3, 4, 5, 6, 7, 0, 190, 8, 9, 10,
- 0, 0, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 2, 0, 3, 4, 5, 6, 7, 0, 256, 8,
- 9, 10, 0, 0, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
- 0, 47, 2, 0, 3, 4, 5, 6, 7, 0,
- 296, 8, 9, 10, 0, 0, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 1, 250, 251, 47, 2, 0, 3, 4, 5, 6,
- 7, 0, 306, 0, 9, 0, 0, 0, 0, 12,
- 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
- 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 281, 282, 0, 284, 0, 0, 0, 0, 0, 0,
+ 0, 0, 71, 0, 290, 0, 0, 72, 0, 0,
+ 1, 118, 119, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 0, 11,
+ 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
+ 21, 22, 23, 24, 0, 26, 0, 0, 0, 303,
+ 0, 0, 29, 30, 75, 32, 33, 34, 0, 310,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 317,
+ 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
+ 77, 0, 0, 0, 71, 0, 78, 0, 79, 72,
+ 120, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 0, 11, 151, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 129, 130, 131, 132, 152, 153, 75, 154, 155, 156,
+ 136, 137, 157, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 139, 140,
+ 141, 142, 143, 144, 145, 0, 71, 158, 78, 0,
+ 79, 72, 0, 0, 1, 73, 74, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 0, 11, 12, 0, 14, 65, 173, 17,
+ 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
+ 0, 0, 129, 130, 131, 132, 152, 153, 75, 154,
+ 33, 34, 136, 137, 157, 36, 37, 38, 39, 40,
+ 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
+ 139, 140, 141, 142, 143, 144, 145, 0, 71, 158,
+ 78, 0, 79, 72, 0, 0, 1, 73, 74, 0,
+ 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 0, 11, 12, 0, 14, 65,
+ 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
+ 0, 26, 0, 0, 129, 130, 131, 132, 152, 153,
+ 75, 154, 33, 34, 136, 137, 157, 36, 37, 38,
+ 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
+ 0, 46, 139, 140, 141, 142, 143, 144, 145, 0,
+ 71, 158, 78, 0, 79, 72, 0, 0, 1, 73,
+ 74, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 0, 11, 12, 0,
+ 14, 65, 242, 17, 0, 66, 67, 0, 21, 22,
+ 23, 24, 0, 26, 0, 0, 129, 130, 131, 132,
+ 152, 153, 75, 154, 33, 34, 136, 137, 157, 36,
+ 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
+ 0, 0, 0, 46, 139, 140, 141, 142, 143, 144,
+ 145, 0, 71, 0, 78, 0, 79, 72, 0, 0,
+ 1, 73, 74, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 0, 11,
+ 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
+ 21, 22, 23, 24, 0, 26, 0, 0, 0, 0,
+ 0, 0, 29, 30, 75, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
+ 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
+ 77, 0, 0, 0, 71, 0, 78, 148, 79, 72,
+ 0, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 76, 77, 0, 71, 0, 0, 0, 78, 72,
+ 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 76, 77, 0, 71, 0, 0, 0, 90, 72,
+ 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 99, 0, 0, 0,
+ 0, 11, 12, 0, 100, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 76, 77, 0, 71, 0, 0, 0, 90, 72,
+ 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 0, 0, 0, 0, 0, 0, 75, 32, 33, 34,
+ 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 76, 77, 0, 71, 0, 0, 0, 78, 72,
+ 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
+ 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
+ 0, 0, 0, 0, 0, 0, 75, 0, 33, 34,
+ 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 78, 0,
+ 79, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
+ 46, 0, 0, 2, 3, 4, 5, 6, 292, 47,
+ 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 293,
+ 1, 0, 46, 0, 0, 0, 2, 3, 4, 5,
+ 6, 255, 0, 7, 8, 9, 0, 0, 10, 11,
+ 12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
+ 21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
+ 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 0, 300, 0, 46, 0, 0, 0, 1,
+ 0, 0, 304, 0, 255, 2, 3, 4, 5, 6,
+ 0, 0, 7, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 1, 0, 0, 0, 2, 47, 3, 4, 5, 6,
- 7, 0, 0, 0, 9, 0, 0, 0, 0, 12,
- 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
- 22, 23, 24, 25, 0, 27, 0, 0, 0, 299,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 300,
- 0, 0, 0, 0, 0, 47, 0, 130, 131, 132,
- 133, 134, 135, 129, 136, 0, 0, 137, 138, 139,
- 0, 0, 130, 131, 132, 133, 134, 135, 0, 136,
- 0, 0, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 141, 142, 143, 144, 145, 146, 130, 131, 132,
- 133, 134, 135, 0, 136, 0, 0, 137, 138, 139,
- 216, 217, 218, 219, 220, 221, 0, 222, 0, 0,
- 223, 224, 225, 0, 0, 140, 141, 142, 143, 144,
- 145, 146, 0, 0, 0, 0, 180, 0, 226, 227,
- 228, 229, 230, 231, 232, 0, 0, 233, 130, 131,
- 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
- 139, 130, 131, 132, 133, 134, 135, 0, 136, 0,
- 0, 137, 138, 139, 0, 0, 140, 141, 142, 143,
- 144, 145, 146, 0, 235, 0, 0, 0, 0, 140,
- 141, 142, 143, 144, 145, 146, 0, 287, 130, 131,
- 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
- 139, 130, 131, 132, 133, 134, 135, 0, 136, 0,
- 0, 137, 138, 139, 0, 0, 140, 141, 142, 143,
- 144, 145, 146, 0, 319, 0, 0, 0, 0, 140,
- 141, 142, 143, 144, 145, 146, 0, 325, 130, 131,
- 132, 133, 134, 135, 0, 136, 0, 0, 137, 138,
- 139, 216, 217, 218, 219, 220, 221, 0, 222, 0,
- 0, 223, 224, 225, 0, 0, 140, 141, 142, 143,
- 144, 145, 146, 0, 0, 0, 0, 0, 0, 226,
- 227, 228, 229, 230, 231, 232
+ 0, 1, 0, 0, 46, 0, 0, 2, 3, 4,
+ 5, 6, 0, 255, 7, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 316, 1, 0, 46, 0, 0, 0,
+ 2, 3, 4, 5, 6, 255, 0, 7, 8, 9,
+ 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
+ 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
+ 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
+ 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 322, 1, 0, 46,
+ 0, 0, 0, 2, 3, 4, 5, 6, 255, 0,
+ 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
+ 329, 0, 46, 0, 0, 2, 3, 4, 5, 6,
+ 0, 255, 7, 8, 9, 0, 0, 10, 11, 12,
+ 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
+ 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
+ 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
+ 0, 1, 330, 0, 46, 0, 0, 2, 3, 4,
+ 5, 6, 0, 255, 7, 8, 9, 0, 0, 10,
+ 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
+ 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
+ 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
+ 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 1, 0, 0, 46, 0, 0, 2,
+ 3, 4, 5, 6, 0, 189, 7, 8, 9, 0,
+ 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
+ 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
+ 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
+ 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 1, 0, 0, 46, 0,
+ 0, 2, 3, 4, 5, 6, 0, 255, 7, 8,
+ 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
+ 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
+ 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
+ 46, 0, 0, 2, 3, 4, 5, 6, 0, 295,
+ 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
+ 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
+ 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 1, 249,
+ 250, 0, 46, 0, 2, 3, 4, 5, 6, 0,
+ 0, 305, 8, 0, 0, 0, 0, 11, 12, 0,
+ 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
+ 23, 24, 0, 26, 0, 0, 0, 0, 0, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 0, 1, 0,
+ 0, 0, 0, 46, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 0, 11, 12, 0,
+ 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
+ 23, 24, 0, 26, 0, 0, 0, 298, 0, 0,
+ 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 299, 0, 0,
+ 0, 0, 0, 46, 0, 129, 130, 131, 132, 133,
+ 134, 128, 135, 0, 0, 136, 137, 138, 0, 0,
+ 129, 130, 131, 132, 133, 134, 0, 135, 0, 0,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 0, 0, 0, 0, 0, 0, 0, 0, 139, 140,
+ 141, 142, 143, 144, 145, 129, 130, 131, 132, 133,
+ 134, 0, 135, 0, 0, 136, 137, 138, 215, 216,
+ 217, 218, 219, 220, 0, 221, 0, 0, 222, 223,
+ 224, 0, 0, 139, 140, 141, 142, 143, 144, 145,
+ 0, 0, 0, 0, 179, 0, 225, 226, 227, 228,
+ 229, 230, 231, 0, 0, 232, 129, 130, 131, 132,
+ 133, 134, 0, 135, 0, 0, 136, 137, 138, 129,
+ 130, 131, 132, 133, 134, 0, 135, 0, 0, 136,
+ 137, 138, 0, 0, 139, 140, 141, 142, 143, 144,
+ 145, 0, 234, 0, 0, 0, 0, 139, 140, 141,
+ 142, 143, 144, 145, 0, 286, 129, 130, 131, 132,
+ 133, 134, 0, 135, 0, 0, 136, 137, 138, 129,
+ 130, 131, 132, 133, 134, 0, 135, 0, 0, 136,
+ 137, 138, 0, 0, 139, 140, 141, 142, 143, 144,
+ 145, 0, 318, 0, 0, 0, 0, 139, 140, 141,
+ 142, 143, 144, 145, 0, 324, 129, 130, 131, 132,
+ 133, 134, 0, 135, 0, 0, 136, 137, 138, 215,
+ 216, 217, 218, 219, 220, 0, 221, 0, 0, 222,
+ 223, 224, 0, 0, 139, 140, 141, 142, 143, 144,
+ 145, 0, 0, 0, 0, 0, 0, 225, 226, 227,
+ 228, 229, 230, 231
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 159, 21, 0, 209, 74, 93, 40, 93,
- 10, 89, 58, 43, 14, 93, 40, 45, 104, 87,
- 104, 21, 28, 53, 88, 111, 26, 111, 92, 29,
- 88, 235, 90, 58, 45, 46, 61, 258, 84, 85,
- 0, 262, 246, 58, 87, 45, 46, 87, 88, 55,
- 50, 156, 157, 210, 50, 87, 81, 82, 83, 84,
- 85, 89, 76, 77, 78, 286, 87, 82, 83, 84,
- 85, 292, 88, 93, 87, 92, 233, 89, 87, 107,
- 80, 88, 87, 87, 170, 87, 170, 53, 309, 89,
- 87, 92, 296, 87, 94, 316, 87, 87, 93, 320,
- 87, 35, 306, 24, 90, 326, 87, 107, 329, 313,
- 87, 87, 87, 35, 114, 319, 51, 52, 53, 54,
- 93, 325, 87, 58, 43, 87, 61, 62, 63, 129,
- 87, 87, 87, 129, 152, 87, 87, 50, 156, 157,
- 289, 185, -1, 170, 79, 80, 81, 82, 83, 84,
- 85, -1, 152, -1, 128, -1, 156, 157, -1, -1,
- -1, 5, -1, -1, -1, -1, 10, -1, -1, 13,
- 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, 185, -1, -1, 32, 33,
- 190, 35, 36, 37, 38, -1, 40, 41, -1, 43,
- 44, 45, 46, -1, 48, -1, -1, -1, -1, 209,
- -1, 11, -1, 57, 58, 59, 60, -1, -1, 19,
- 64, 65, 66, 67, 68, 69, 70, 71, 28, -1,
- -1, -1, -1, -1, 78, 235, -1, 237, 82, 83,
- -1, -1, -1, -1, -1, 89, 246, 91, -1, -1,
- -1, -1, -1, -1, -1, 55, -1, -1, 258, -1,
- 288, 261, 262, -1, -1, 261, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 79,
- -1, -1, -1, -1, -1, -1, 286, -1, 288, -1,
- -1, 91, 292, 293, -1, 95, 296, 293, -1, -1,
- 100, 101, -1, -1, -1, 305, 306, -1, -1, 309,
- -1, -1, -1, 313, -1, -1, 316, -1, -1, 319,
- 320, -1, 322, -1, -1, 325, 326, -1, -1, 329,
+ 0, 158, 20, 28, 0, 208, 92, 40, 43, 9,
+ 40, 89, 92, 13, 58, 93, 27, 103, 53, 44,
+ 20, 58, 88, 103, 110, 25, 92, 88, 28, 90,
+ 110, 234, 58, 257, 0, 61, 87, 261, 82, 83,
+ 84, 85, 245, 54, 44, 45, 87, 84, 85, 49,
+ 88, 74, 209, 49, 87, 81, 82, 83, 84, 85,
+ 89, 285, 93, 88, 87, 45, 46, 291, 75, 76,
+ 77, 87, 88, 155, 156, 232, 93, 87, 87, 79,
+ 92, 106, 87, 169, 308, 87, 87, 35, 88, 169,
+ 87, 315, 295, 93, 87, 319, 87, 92, 88, 87,
+ 53, 325, 305, 87, 328, 90, 106, 24, 87, 312,
+ 87, 87, 87, 113, 35, 318, 87, 43, 87, 93,
+ 87, 324, 87, 87, 87, 87, 49, 288, 128, 184,
+ 169, -1, 128, 151, -1, 127, -1, 155, 156, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 151, -1, -1, -1, 155, 156, -1, -1, -1,
+ 5, -1, -1, -1, -1, 10, -1, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, 184, -1, -1, 32, 33, 189,
+ 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, -1, -1, -1, -1, 208, -1,
+ 10, -1, 57, 58, 59, 60, -1, -1, 18, 64,
+ 65, 66, 67, 68, 69, 70, 71, 27, -1, -1,
+ -1, -1, -1, 78, 234, -1, 236, 82, 83, -1,
+ 51, 52, 53, 54, 89, 245, 91, 58, -1, -1,
+ 61, 62, 63, -1, 54, -1, -1, 257, -1, -1,
+ 260, 261, 287, -1, 260, -1, -1, -1, 79, 80,
+ 81, 82, 83, 84, 85, -1, -1, -1, 78, -1,
+ -1, -1, -1, -1, -1, 285, -1, 287, -1, -1,
+ 90, 291, 292, -1, 94, 295, 292, -1, -1, 99,
+ 100, -1, -1, -1, 304, 305, -1, -1, 308, -1,
+ -1, -1, 312, -1, -1, 315, -1, -1, 318, 319,
+ -1, 321, -1, -1, 324, 325, -1, -1, 328, 129,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, -1, -1, -1,
- -1, -1, -1, 153, 154, 155, -1, -1, 158, -1,
- -1, -1, 51, 52, 53, 54, 55, 56, 168, 58,
- -1, -1, 61, 62, 63, -1, -1, -1, -1, -1,
- -1, 181, 182, -1, 184, -1, -1, -1, 188, -1,
- 79, 80, 81, 82, 83, 84, 85, -1, -1, 88,
- -1, 90, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 216, 217, 218, 219,
+ 140, 141, 142, 143, 144, 145, -1, -1, -1, -1,
+ -1, -1, 152, 153, 154, -1, -1, 157, -1, -1,
+ -1, 51, 52, 53, 54, 55, 56, 167, 58, -1,
+ -1, 61, 62, 63, -1, -1, -1, -1, -1, -1,
+ 180, 181, -1, 183, -1, -1, -1, 187, -1, 79,
+ 80, 81, 82, 83, 84, 85, -1, -1, 88, -1,
+ 90, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 215, 216, 217, 218, 219,
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, 232, -1, 234, -1, -1, -1, -1, -1,
- -1, -1, -1, 5, -1, 245, -1, -1, 10, -1,
- -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, -1,
- 32, 33, -1, 35, 36, 37, 38, -1, 40, 41,
- -1, 43, 44, 45, 46, -1, 48, -1, -1, -1,
- 290, -1, -1, 55, 56, 57, 58, 59, 60, -1,
- 300, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 310, -1, -1, -1, -1, -1, 78, -1, -1, -1,
- 82, 83, -1, -1, -1, 5, -1, 89, -1, 91,
- 10, 93, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 85, -1, 5, 88, 89,
- -1, 91, 10, -1, -1, 13, 14, 15, -1, 17,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, -1, 32, 33, -1, 35, 36, 37,
- 38, -1, 40, 41, -1, 43, 44, 45, 46, -1,
- 48, -1, -1, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- 78, 79, 80, 81, 82, 83, 84, 85, -1, 5,
- 88, 89, -1, 91, 10, -1, -1, 13, 14, 15,
- -1, 17, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, -1, 32, 33, -1, 35,
- 36, 37, 38, -1, 40, 41, -1, 43, 44, 45,
- 46, -1, 48, -1, -1, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, 85,
- -1, 5, 88, 89, -1, 91, 10, -1, -1, 13,
- 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, -1, 32, 33,
- -1, 35, 36, 37, 38, -1, 40, 41, -1, 43,
- 44, 45, 46, -1, 48, -1, -1, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, 85, -1, 5, -1, 89, -1, 91, 10, -1,
- -1, 13, 14, 15, -1, 17, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, -1,
- 32, 33, -1, 35, 36, 37, 38, -1, 40, 41,
- -1, 43, 44, 45, 46, -1, 48, -1, -1, -1,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
- -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
- 82, 83, -1, -1, -1, 5, -1, 89, 90, 91,
- 10, -1, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
- 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
- -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
- 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
- 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
- -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
- 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, 55, 56, 57, 58, 59,
- 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
- -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
- 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, -1, -1, 57, 58, 59,
- 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
- -1, -1, 82, 83, -1, 5, -1, -1, -1, 89,
- 10, 91, -1, 13, 14, 15, -1, 17, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, -1, 32, 33, -1, 35, 36, 37, 38, -1,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, -1, -1, 57, -1, 59,
- 60, -1, -1, -1, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, 78, -1,
- -1, -1, -1, -1, -1, -1, 13, -1, -1, 89,
- 17, 91, 19, 20, 21, 22, 23, -1, -1, 26,
- 27, 28, -1, -1, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
- 47, 48, 49, 50, -1, -1, -1, -1, 55, 56,
- 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, -1, 13, -1,
- -1, 78, 17, -1, 19, 20, 21, 22, 23, 24,
- 87, 26, 27, 28, -1, -1, 31, 32, 33, -1,
- 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
- 75, 13, -1, 78, -1, 17, -1, 19, 20, 21,
- 22, 23, 87, -1, 26, 27, 28, -1, -1, 31,
- 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
- -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
- -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, -1, -1, -1, 76, -1, 78, -1, -1, -1,
- 13, -1, -1, 16, 17, 87, 19, 20, 21, 22,
- 23, -1, -1, 26, 27, 28, -1, -1, 31, 32,
- 33, -1, 35, 36, 37, 38, 39, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, 49, 50, -1, -1,
+ 230, 231, -1, 233, -1, -1, -1, -1, -1, -1,
+ -1, -1, 5, -1, 244, -1, -1, 10, -1, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
+ 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, 289,
+ -1, -1, 55, 56, 57, 58, 59, 60, -1, 299,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 309,
+ -1, -1, -1, -1, -1, 78, -1, -1, -1, 82,
+ 83, -1, -1, -1, 5, -1, 89, -1, 91, 10,
+ 93, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, 78, 79, 80,
+ 81, 82, 83, 84, 85, -1, 5, 88, 89, -1,
+ 91, 10, -1, -1, 13, 14, 15, -1, -1, -1,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, -1, 32, 33, -1, 35, 36, 37, 38,
+ -1, 40, 41, -1, 43, 44, 45, 46, -1, 48,
+ -1, -1, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, 85, -1, 5, 88,
+ 89, -1, 91, 10, -1, -1, 13, 14, 15, -1,
+ -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ 27, -1, -1, -1, -1, 32, 33, -1, 35, 36,
+ 37, 38, -1, 40, 41, -1, 43, 44, 45, 46,
+ -1, 48, -1, -1, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, -1, -1, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, 85, -1,
+ 5, 88, 89, -1, 91, 10, -1, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, -1, 32, 33, -1,
+ 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, -1, -1, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ 85, -1, 5, -1, 89, -1, 91, 10, -1, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
+ 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
-1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- -1, -1, 13, -1, -1, 78, 17, -1, 19, 20,
- 21, 22, 23, -1, 87, 26, 27, 28, -1, -1,
- 31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
+ -1, -1, -1, -1, -1, 78, -1, -1, -1, 82,
+ 83, -1, -1, -1, 5, -1, 89, 90, 91, 10,
+ -1, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
-1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
-1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, -1, -1, 75, 13, -1, 78, -1, 17,
- -1, 19, 20, 21, 22, 23, 87, -1, 26, 27,
- 28, -1, -1, 31, 32, 33, -1, 35, 36, 37,
- 38, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
+ 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
+ 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
+ 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
+ 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
+ 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, -1, -1, 57, -1, 59, 60,
+ -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, -1, -1, -1, -1, 13, -1, -1, 89, -1,
+ 91, 19, 20, 21, 22, 23, -1, -1, 26, 27,
+ 28, -1, -1, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, 43, 44, 45, 46, 47,
48, 49, 50, -1, -1, -1, -1, 55, 56, 57,
58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, -1, -1, 75, 13, -1,
- 78, -1, 17, -1, 19, 20, 21, 22, 23, 87,
- -1, 26, 27, 28, -1, -1, 31, 32, 33, -1,
- 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
- 13, 76, -1, 78, 17, -1, 19, 20, 21, 22,
- 23, -1, 87, 26, 27, 28, -1, -1, 31, 32,
+ 68, 69, 70, 71, 72, 73, -1, 13, -1, -1,
+ 78, -1, -1, 19, 20, 21, 22, 23, 24, 87,
+ 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
+ 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
+ 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, -1, -1, 75,
+ 13, -1, 78, -1, -1, -1, 19, 20, 21, 22,
+ 23, 87, -1, 26, 27, 28, -1, -1, 31, 32,
33, -1, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, -1, 48, 49, 50, -1, -1,
-1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- -1, -1, 13, 76, -1, 78, 17, -1, 19, 20,
- 21, 22, 23, -1, 87, 26, 27, 28, -1, -1,
- 31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, 49, 50,
- -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, -1, -1, 13, -1, -1, 78, 17, -1,
- 19, 20, 21, 22, 23, -1, 87, 26, 27, 28,
+ -1, -1, -1, 76, -1, 78, -1, -1, -1, 13,
+ -1, -1, 16, -1, 87, 19, 20, 21, 22, 23,
+ -1, -1, 26, 27, 28, -1, -1, 31, 32, 33,
+ -1, 35, 36, 37, 38, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, -1, -1, -1,
+ -1, 55, 56, 57, 58, 59, 60, -1, -1, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
+ -1, 13, -1, -1, 78, -1, -1, 19, 20, 21,
+ 22, 23, -1, 87, 26, 27, 28, -1, -1, 31,
+ 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, -1, -1, 75, 13, -1, 78, -1, -1, -1,
+ 19, 20, 21, 22, 23, 87, -1, 26, 27, 28,
-1, -1, 31, 32, 33, -1, 35, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
49, 50, -1, -1, -1, -1, 55, 56, 57, 58,
59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, -1, -1, 13, -1, -1, 78,
- 17, -1, 19, 20, 21, 22, 23, -1, 87, 26,
- 27, 28, -1, -1, 31, 32, 33, -1, 35, 36,
- 37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
- -1, 48, 49, 50, -1, -1, -1, -1, 55, 56,
- 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, -1, -1, 13, -1,
- -1, 78, 17, -1, 19, 20, 21, 22, 23, -1,
- 87, 26, 27, 28, -1, -1, 31, 32, 33, -1,
- 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, 49, 50, -1, -1, -1, -1,
+ 69, 70, 71, 72, -1, -1, 75, 13, -1, 78,
+ -1, -1, -1, 19, 20, 21, 22, 23, 87, -1,
+ 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
+ 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
+ 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, -1, -1, 13,
+ 76, -1, 78, -1, -1, 19, 20, 21, 22, 23,
+ -1, 87, 26, 27, 28, -1, -1, 31, 32, 33,
+ -1, 35, 36, 37, 38, 39, 40, 41, -1, 43,
+ 44, 45, 46, -1, 48, 49, 50, -1, -1, -1,
+ -1, 55, 56, 57, 58, 59, 60, -1, -1, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
+ -1, 13, 76, -1, 78, -1, -1, 19, 20, 21,
+ 22, 23, -1, 87, 26, 27, 28, -1, -1, 31,
+ 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
+ -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, -1, -1, 13, -1, -1, 78, -1, -1, 19,
+ 20, 21, 22, 23, -1, 87, 26, 27, 28, -1,
+ -1, 31, 32, 33, -1, 35, 36, 37, 38, 39,
+ 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
+ 50, -1, -1, -1, -1, 55, 56, 57, 58, 59,
+ 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, -1, -1, 13, -1, -1, 78, -1,
+ -1, 19, 20, 21, 22, 23, -1, 87, 26, 27,
+ 28, -1, -1, 31, 32, 33, -1, 35, 36, 37,
+ 38, 39, 40, 41, -1, 43, 44, 45, 46, -1,
+ 48, 49, 50, -1, -1, -1, -1, 55, 56, 57,
+ 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, -1, -1, 13, -1, -1,
+ 78, -1, -1, 19, 20, 21, 22, 23, -1, 87,
+ 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
+ 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
+ 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
+ 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, -1, 13, 14,
+ 15, -1, 78, -1, 19, 20, 21, 22, 23, -1,
+ -1, 87, 27, -1, -1, -1, -1, 32, 33, -1,
+ 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, -1, -1, -1, -1, -1, -1,
55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
- 13, 14, 15, 78, 17, -1, 19, 20, 21, 22,
- 23, -1, 87, -1, 27, -1, -1, -1, -1, 32,
- 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
- -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- 13, -1, -1, -1, 17, 78, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
- 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, -1, -1, -1, 23,
- -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 43,
- -1, -1, -1, -1, -1, 78, -1, 51, 52, 53,
- 54, 55, 56, 42, 58, -1, -1, 61, 62, 63,
- -1, -1, 51, 52, 53, 54, 55, 56, -1, 58,
- -1, -1, 61, 62, 63, 79, 80, 81, 82, 83,
- 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
- 79, 80, 81, 82, 83, 84, 85, 51, 52, 53,
- 54, 55, 56, -1, 58, -1, -1, 61, 62, 63,
+ 65, 66, 67, 68, 69, 70, 71, -1, 13, -1,
+ -1, -1, -1, 78, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, -1, 32, 33, -1,
+ 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
+ 45, 46, -1, 48, -1, -1, -1, 23, -1, -1,
+ 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 43, -1, -1,
+ -1, -1, -1, 78, -1, 51, 52, 53, 54, 55,
+ 56, 42, 58, -1, -1, 61, 62, 63, -1, -1,
51, 52, 53, 54, 55, 56, -1, 58, -1, -1,
- 61, 62, 63, -1, -1, 79, 80, 81, 82, 83,
- 84, 85, -1, -1, -1, -1, 90, -1, 79, 80,
- 81, 82, 83, 84, 85, -1, -1, 88, 51, 52,
- 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
- 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
- -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
- 83, 84, 85, -1, 87, -1, -1, -1, -1, 79,
- 80, 81, 82, 83, 84, 85, -1, 87, 51, 52,
- 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
- 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
- -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
- 83, 84, 85, -1, 87, -1, -1, -1, -1, 79,
- 80, 81, 82, 83, 84, 85, -1, 87, 51, 52,
+ 61, 62, 63, 79, 80, 81, 82, 83, 84, 85,
+ -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
+ 81, 82, 83, 84, 85, 51, 52, 53, 54, 55,
+ 56, -1, 58, -1, -1, 61, 62, 63, 51, 52,
53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
- 63, 51, 52, 53, 54, 55, 56, -1, 58, -1,
- -1, 61, 62, 63, -1, -1, 79, 80, 81, 82,
- 83, 84, 85, -1, -1, -1, -1, -1, -1, 79,
- 80, 81, 82, 83, 84, 85
+ 63, -1, -1, 79, 80, 81, 82, 83, 84, 85,
+ -1, -1, -1, -1, 90, -1, 79, 80, 81, 82,
+ 83, 84, 85, -1, -1, 88, 51, 52, 53, 54,
+ 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
+ 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
+ 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
+ 85, -1, 87, -1, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 85, -1, 87, 51, 52, 53, 54,
+ 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
+ 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
+ 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
+ 85, -1, 87, -1, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 85, -1, 87, 51, 52, 53, 54,
+ 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
+ 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
+ 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
+ 85, -1, -1, -1, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 85
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 13, 17, 19, 20, 21, 22, 23, 26, 27,
- 28, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 43, 44, 45, 46, 47, 48, 49, 50,
- 55, 56, 57, 58, 59, 60, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 78, 87, 95,
- 96, 97, 98, 99, 104, 106, 109, 110, 111, 114,
- 116, 117, 118, 119, 40, 87, 36, 40, 41, 106,
- 107, 108, 5, 10, 14, 15, 57, 82, 83, 89,
- 91, 106, 123, 124, 127, 130, 131, 132, 134, 106,
- 40, 89, 112, 134, 45, 46, 106, 124, 126, 106,
- 27, 35, 112, 113, 134, 107, 107, 106, 0, 97,
- 112, 134, 87, 87, 88, 132, 132, 132, 134, 14,
- 15, 93, 106, 128, 129, 134, 136, 137, 89, 42,
- 51, 52, 53, 54, 55, 56, 58, 61, 62, 63,
- 79, 80, 81, 82, 83, 84, 85, 107, 87, 90,
- 134, 87, 33, 55, 56, 58, 59, 60, 63, 88,
- 123, 130, 133, 135, 106, 134, 43, 53, 115, 87,
- 134, 134, 87, 87, 37, 87, 87, 107, 87, 106,
- 90, 93, 93, 92, 93, 88, 92, 92, 88, 136,
- 87, 109, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 87,
- 88, 124, 125, 125, 125, 137, 51, 52, 53, 54,
- 55, 56, 58, 61, 62, 63, 79, 80, 81, 82,
- 83, 84, 85, 88, 53, 87, 134, 74, 87, 100,
- 101, 102, 103, 37, 135, 35, 87, 134, 134, 134,
- 14, 15, 106, 129, 134, 90, 87, 109, 120, 121,
- 122, 24, 120, 137, 87, 87, 87, 134, 134, 134,
+ 0, 13, 19, 20, 21, 22, 23, 26, 27, 28,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 43, 44, 45, 46, 47, 48, 49, 50, 55,
+ 56, 57, 58, 59, 60, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 78, 87, 95, 96,
+ 97, 98, 99, 104, 106, 109, 110, 111, 114, 116,
+ 117, 118, 119, 40, 87, 36, 40, 41, 106, 107,
+ 108, 5, 10, 14, 15, 57, 82, 83, 89, 91,
+ 106, 123, 124, 127, 130, 131, 132, 134, 106, 40,
+ 89, 112, 134, 45, 46, 106, 124, 126, 106, 27,
+ 35, 112, 113, 134, 107, 107, 106, 0, 97, 112,
+ 134, 87, 87, 88, 132, 132, 132, 134, 14, 15,
+ 93, 106, 128, 129, 134, 136, 137, 89, 42, 51,
+ 52, 53, 54, 55, 56, 58, 61, 62, 63, 79,
+ 80, 81, 82, 83, 84, 85, 107, 87, 90, 134,
+ 87, 33, 55, 56, 58, 59, 60, 63, 88, 123,
+ 130, 133, 135, 106, 134, 43, 53, 115, 87, 134,
+ 134, 87, 87, 37, 87, 87, 107, 87, 106, 90,
+ 93, 93, 92, 93, 88, 92, 92, 88, 136, 87,
+ 109, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 87, 88,
+ 124, 125, 125, 125, 137, 51, 52, 53, 54, 55,
+ 56, 58, 61, 62, 63, 79, 80, 81, 82, 83,
+ 84, 85, 88, 53, 87, 134, 74, 87, 100, 101,
+ 102, 103, 37, 135, 35, 87, 134, 134, 134, 14,
+ 15, 106, 129, 134, 90, 87, 109, 120, 121, 122,
+ 24, 120, 137, 87, 87, 87, 134, 134, 134, 134,
134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 137, 134, 120, 87, 106, 87,
- 35, 134, 120, 24, 75, 122, 87, 109, 90, 23,
- 43, 76, 107, 103, 134, 16, 87, 109, 87, 120,
- 43, 134, 87, 87, 105, 106, 120, 75, 134, 87,
- 120, 87, 88, 75, 87, 87, 120, 106, 87, 120,
- 76, 76, 87, 87
+ 134, 134, 134, 137, 134, 120, 87, 106, 87, 35,
+ 134, 120, 24, 75, 122, 87, 109, 90, 23, 43,
+ 76, 107, 103, 134, 16, 87, 109, 87, 120, 43,
+ 134, 87, 87, 105, 106, 120, 75, 134, 87, 120,
+ 87, 88, 75, 87, 87, 120, 106, 87, 120, 76,
+ 76, 87, 87
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1423,19 +1423,19 @@ static const yytype_uint8 yyr1[] =
106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 107, 107, 108, 108, 109, 109, 109, 109, 110,
- 110, 110, 111, 111, 111, 111, 111, 111, 111, 112,
- 112, 112, 112, 112, 112, 112, 113, 113, 113, 113,
- 113, 114, 114, 114, 114, 115, 115, 116, 116, 116,
- 117, 117, 118, 118, 118, 118, 119, 119, 119, 120,
- 120, 121, 121, 122, 122, 123, 123, 123, 123, 123,
- 123, 123, 123, 124, 125, 126, 127, 127, 127, 128,
- 128, 129, 129, 129, 130, 131, 131, 132, 132, 132,
- 133, 133, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 107, 107, 108, 108, 109, 109, 109, 109, 110, 110,
+ 110, 111, 111, 111, 111, 111, 111, 111, 112, 112,
+ 112, 112, 112, 112, 112, 113, 113, 113, 113, 113,
+ 114, 114, 114, 114, 115, 115, 116, 116, 116, 117,
+ 117, 118, 118, 118, 118, 119, 119, 119, 120, 120,
+ 121, 121, 122, 122, 123, 123, 123, 123, 123, 123,
+ 123, 123, 124, 125, 126, 127, 127, 127, 128, 128,
+ 129, 129, 129, 130, 131, 131, 132, 132, 132, 133,
+ 133, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
- 137, 137
+ 135, 135, 135, 135, 135, 135, 135, 136, 136, 137,
+ 137
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1447,19 +1447,19 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 2, 0,
- 1, 3, 2, 4, 2, 5, 2, 2, 5, 4,
- 3, 5, 5, 5, 5, 1, 1, 3, 3, 3,
- 4, 7, 6, 9, 7, 10, 7, 11, 12, 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 2,
- 4, 1, 1, 1, 1, 1, 3, 3, 3, 1,
- 3, 3, 3, 3, 3, 2, 2, 1, 1, 1,
- 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
+ 0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 3, 3, 3, 2, 0, 1,
+ 3, 2, 4, 2, 5, 2, 2, 5, 4, 3,
+ 5, 5, 5, 5, 1, 1, 3, 3, 3, 4,
+ 7, 6, 9, 7, 10, 7, 11, 12, 0, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 2, 4,
+ 1, 1, 1, 1, 1, 3, 3, 3, 1, 3,
+ 3, 3, 3, 3, 2, 2, 1, 1, 1, 1,
+ 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 0, 1,
- 1, 3
+ 3, 3, 3, 3, 3, 3, 3, 0, 1, 1,
+ 3
};
@@ -2272,776 +2272,770 @@ yyreduce:
#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
- case 45: /* ID: tPLAYACCEL */
+ case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("playAccel"); }
+ { (yyval.s) = new Common::String("previous"); }
#line 2279 "engines/director/lingo/lingo-gr.cpp"
break;
- case 46: /* ID: tPREVIOUS */
-#line 323 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("previous"); }
+ case 46: /* ID: tREPEAT */
+#line 325 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("repeat"); }
#line 2285 "engines/director/lingo/lingo-gr.cpp"
break;
- case 47: /* ID: tREPEAT */
+ case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("repeat"); }
+ { (yyval.s) = new Common::String("script"); }
#line 2291 "engines/director/lingo/lingo-gr.cpp"
break;
- case 48: /* ID: tSCRIPT */
+ case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("script"); }
+ { (yyval.s) = new Common::String("set"); }
#line 2297 "engines/director/lingo/lingo-gr.cpp"
break;
- case 49: /* ID: tSET */
+ case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("set"); }
+ { (yyval.s) = new Common::String("starts"); }
#line 2303 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* ID: tSTARTS */
+ case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("starts"); }
+ { (yyval.s) = new Common::String("tell"); }
#line 2309 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* ID: tTELL */
-#line 330 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("tell"); }
+ case 51: /* ID: tTO */
+#line 331 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("to"); }
#line 2315 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* ID: tTO */
+ case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("to"); }
+ { (yyval.s) = new Common::String("scummvmAssertError"); }
#line 2321 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ID: tASSERTERROR */
+ case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("scummvmAssertError"); }
+ { (yyval.s) = new Common::String("sprite"); }
#line 2327 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ID: tSPRITE */
+ case 54: /* ID: tWHEN */
#line 334 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("sprite"); }
+ { (yyval.s) = new Common::String("when"); }
#line 2333 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tWHEN */
+ case 55: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("when"); }
+ { (yyval.s) = new Common::String("while"); }
#line 2339 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tWHILE */
+ case 56: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("while"); }
+ { (yyval.s) = new Common::String("window"); }
#line 2345 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tWINDOW */
+ case 57: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("window"); }
+ { (yyval.s) = new Common::String("with"); }
#line 2351 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tWITH */
+ case 58: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("with"); }
+ { (yyval.s) = new Common::String("within"); }
#line 2357 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tWITHIN */
+ case 59: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("within"); }
-#line 2363 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 60: /* ID: tWORD */
-#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2363 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* idlist: %empty */
-#line 343 "engines/director/lingo/lingo-gr.y"
+ case 60: /* idlist: %empty */
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2375 "engines/director/lingo/lingo-gr.cpp"
+#line 2369 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* nonemptyidlist: ID */
-#line 347 "engines/director/lingo/lingo-gr.y"
+ case 62: /* nonemptyidlist: ID */
+#line 346 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2384 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
break;
- case 64: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 351 "engines/director/lingo/lingo-gr.y"
+ case 63: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 350 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
+#line 2386 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 71: /* proc: ID cmdargs '\n' */
+#line 371 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
#line 2392 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* proc: ID cmdargs '\n' */
+ case 72: /* proc: tPUT cmdargs '\n' */
#line 372 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
+ { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
#line 2398 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: tPUT cmdargs '\n' */
+ case 73: /* proc: tPLAY cmdargs '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
+ { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
#line 2404 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tPLAY cmdargs '\n' */
+ case 74: /* proc: tPLAY playargs '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
#line 2410 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tPLAY playargs '\n' */
+ case 75: /* proc: tNEXT tREPEAT '\n' */
#line 375 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
+ { (yyval.node) = new NextRepeatNode(); }
#line 2416 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tNEXT tREPEAT '\n' */
+ case 76: /* proc: tEXIT tREPEAT '\n' */
#line 376 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new NextRepeatNode(); }
+ { (yyval.node) = new ExitRepeatNode(); }
#line 2422 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tEXIT tREPEAT '\n' */
+ case 77: /* proc: tEXIT '\n' */
#line 377 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new ExitRepeatNode(); }
-#line 2428 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 78: /* proc: tEXIT '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2434 "engines/director/lingo/lingo-gr.cpp"
+#line 2428 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* cmdargs: %empty */
-#line 381 "engines/director/lingo/lingo-gr.y"
+ case 78: /* cmdargs: %empty */
+#line 380 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2442 "engines/director/lingo/lingo-gr.cpp"
+#line 2436 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* cmdargs: expr */
-#line 384 "engines/director/lingo/lingo-gr.y"
+ case 79: /* cmdargs: expr */
+#line 383 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2452 "engines/director/lingo/lingo-gr.cpp"
+#line 2446 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* cmdargs: expr ',' nonemptyexprlist */
-#line 389 "engines/director/lingo/lingo-gr.y"
+ case 80: /* cmdargs: expr ',' nonemptyexprlist */
+#line 388 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2455 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: expr expr_nounarymath */
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 81: /* cmdargs: expr expr_nounarymath */
+#line 392 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2472 "engines/director/lingo/lingo-gr.cpp"
+#line 2466 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 399 "engines/director/lingo/lingo-gr.y"
+ case 82: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 398 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2482 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* cmdargs: '(' ')' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 83: /* cmdargs: '(' ')' */
+#line 403 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2490 "engines/director/lingo/lingo-gr.cpp"
+#line 2484 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 84: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 406 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2499 "engines/director/lingo/lingo-gr.cpp"
+#line 2493 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* playargs: tFRAME expr */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 85: /* playargs: tFRAME expr */
+#line 412 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2509 "engines/director/lingo/lingo-gr.cpp"
+#line 2503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* playargs: tMOVIE expr */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 86: /* playargs: tMOVIE expr */
+#line 417 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2520 "engines/director/lingo/lingo-gr.cpp"
+#line 2514 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* playargs: tFRAME expr tOF tMOVIE expr */
-#line 424 "engines/director/lingo/lingo-gr.y"
+ case 87: /* playargs: tFRAME expr tOF tMOVIE expr */
+#line 423 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2531 "engines/director/lingo/lingo-gr.cpp"
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* playargs: expr tOF tMOVIE expr */
-#line 430 "engines/director/lingo/lingo-gr.y"
+ case 88: /* playargs: expr tOF tMOVIE expr */
+#line 429 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2542 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* playargs: tFRAME expr expr_nounarymath */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 89: /* playargs: tFRAME expr expr_nounarymath */
+#line 435 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
+#line 2547 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 90: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 443 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2553 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* asgn: tPUT expr tINTO varorchunk '\n' */
+ case 91: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 444 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+ { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+ case 92: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 445 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+ { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+ case 93: /* asgn: tSET varorthe to expr '\n' */
#line 446 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+ { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2571 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* asgn: tSET varorthe to expr '\n' */
-#line 447 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
+ case 96: /* definevars: tGLOBAL idlist '\n' */
+#line 451 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* definevars: tGLOBAL idlist '\n' */
+ case 97: /* definevars: tPROPERTY idlist '\n' */
#line 452 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
+ { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* definevars: tPROPERTY idlist '\n' */
+ case 98: /* definevars: tINSTANCE idlist '\n' */
#line 453 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 99: /* definevars: tINSTANCE idlist '\n' */
-#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* ifstmt: tIF expr tTHEN stmt */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 99: /* ifstmt: tIF expr tTHEN stmt */
+#line 456 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2604 "engines/director/lingo/lingo-gr.cpp"
+#line 2598 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 100: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 460 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2611 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 465 "engines/director/lingo/lingo-gr.y"
+ case 101: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 464 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2622 "engines/director/lingo/lingo-gr.cpp"
+#line 2616 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 471 "engines/director/lingo/lingo-gr.y"
+ case 102: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 470 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 103: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 474 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2640 "engines/director/lingo/lingo-gr.cpp"
+#line 2634 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 104: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 478 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2647 "engines/director/lingo/lingo-gr.cpp"
+#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 483 "engines/director/lingo/lingo-gr.y"
+ case 105: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 482 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 106: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 484 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2661 "engines/director/lingo/lingo-gr.cpp"
+#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 107: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 486 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2668 "engines/director/lingo/lingo-gr.cpp"
+#line 2662 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* stmtlist: %empty */
-#line 491 "engines/director/lingo/lingo-gr.y"
+ case 108: /* stmtlist: %empty */
+#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2674 "engines/director/lingo/lingo-gr.cpp"
+#line 2668 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* nonemptystmtlist: stmtlistline */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 110: /* nonemptystmtlist: stmtlistline */
+#line 495 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 502 "engines/director/lingo/lingo-gr.y"
+ case 111: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 501 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* stmtlistline: '\n' */
-#line 509 "engines/director/lingo/lingo-gr.y"
+ case 112: /* stmtlistline: '\n' */
+#line 508 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 114: /* simpleexpr_noparens_nounarymath: tINT */
+#line 515 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new IntNode((yyvsp[0].i)); }
#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* simpleexpr_noparens_nounarymath: tINT */
+ case 115: /* simpleexpr_noparens_nounarymath: tFLOAT */
#line 516 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new IntNode((yyvsp[0].i)); }
+ { (yyval.node) = new FloatNode((yyvsp[0].f)); }
#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* simpleexpr_noparens_nounarymath: tFLOAT */
+ case 116: /* simpleexpr_noparens_nounarymath: tSYMBOL */
#line 517 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new FloatNode((yyvsp[0].f)); }
+ { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+ case 117: /* simpleexpr_noparens_nounarymath: tSTRING */
#line 518 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
+ { (yyval.node) = new StringNode((yyvsp[0].s)); }
#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* simpleexpr_noparens_nounarymath: tSTRING */
+ case 118: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
#line 519 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new StringNode((yyvsp[0].s)); }
+ { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+ case 119: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
#line 520 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
+ { (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 521 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
+ case 122: /* var: ID */
+#line 525 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new VarNode((yyvsp[0].s)); }
#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* var: ID */
-#line 526 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new VarNode((yyvsp[0].s)); }
+ case 125: /* list: '[' exprlist ']' */
+#line 535 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* list: '[' exprlist ']' */
+ case 126: /* list: '[' ':' ']' */
#line 536 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
+ { (yyval.node) = new PropListNode(new NodeList); }
#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* list: '[' ':' ']' */
+ case 127: /* list: '[' proplist ']' */
#line 537 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropListNode(new NodeList); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 128: /* list: '[' proplist ']' */
-#line 538 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* proplist: proppair */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 128: /* proplist: proppair */
+#line 540 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2770 "engines/director/lingo/lingo-gr.cpp"
+#line 2764 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* proplist: proplist ',' proppair */
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 129: /* proplist: proplist ',' proppair */
+#line 544 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 2772 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 130: /* proppair: tSYMBOL ':' expr */
+#line 549 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2778 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proppair: tSYMBOL ':' expr */
+ case 131: /* proppair: ID ':' expr */
#line 550 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2784 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* proppair: ID ':' expr */
+ case 132: /* proppair: tSTRING ':' expr */
#line 551 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+ { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2790 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* proppair: tSTRING ':' expr */
-#line 552 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+ case 133: /* parens: '(' expr ')' */
+#line 554 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[-1].node); }
#line 2796 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* parens: '(' expr ')' */
-#line 555 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[-1].node); }
+ case 134: /* unarymath: '+' simpleexpr */
+#line 556 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[0].node); }
#line 2802 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* unarymath: '+' simpleexpr */
+ case 135: /* unarymath: '-' simpleexpr */
#line 557 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[0].node); }
+ { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
#line 2808 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* unarymath: '-' simpleexpr */
-#line 558 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
+ case 142: /* expr: expr '+' expr */
+#line 575 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2814 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* expr: expr '+' expr */
+ case 143: /* expr: expr '-' expr */
#line 576 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2820 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* expr: expr '-' expr */
+ case 144: /* expr: expr '*' expr */
#line 577 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2826 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* expr: expr '*' expr */
+ case 145: /* expr: expr '/' expr */
#line 578 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2832 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* expr: expr '/' expr */
+ case 146: /* expr: expr tMOD expr */
#line 579 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2838 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* expr: expr tMOD expr */
+ case 147: /* expr: expr '>' expr */
#line 580 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2844 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr '>' expr */
+ case 148: /* expr: expr '<' expr */
#line 581 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2850 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr '<' expr */
+ case 149: /* expr: expr tEQ expr */
#line 582 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2856 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr tEQ expr */
+ case 150: /* expr: expr tNEQ expr */
#line 583 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2862 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr tNEQ expr */
+ case 151: /* expr: expr tGE expr */
#line 584 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2868 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tGE expr */
+ case 152: /* expr: expr tLE expr */
#line 585 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2874 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr tLE expr */
+ case 153: /* expr: expr tAND expr */
#line 586 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2880 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr tAND expr */
+ case 154: /* expr: expr tOR expr */
#line 587 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2886 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr tOR expr */
+ case 155: /* expr: expr '&' expr */
#line 588 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2892 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr '&' expr */
+ case 156: /* expr: expr tCONCAT expr */
#line 589 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2898 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tCONCAT expr */
+ case 157: /* expr: expr tCONTAINS expr */
#line 590 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tCONTAINS expr */
+ case 158: /* expr: expr tSTARTS expr */
#line 591 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2910 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tSTARTS expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 160: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 599 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2916 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr_nounarymath: expr_nounarymath '+' expr */
+ case 161: /* expr_nounarymath: expr_nounarymath '-' expr */
#line 600 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2922 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr_nounarymath: expr_nounarymath '-' expr */
+ case 162: /* expr_nounarymath: expr_nounarymath '*' expr */
#line 601 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2928 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr_nounarymath: expr_nounarymath '*' expr */
+ case 163: /* expr_nounarymath: expr_nounarymath '/' expr */
#line 602 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2934 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr_nounarymath: expr_nounarymath '/' expr */
+ case 164: /* expr_nounarymath: expr_nounarymath tMOD expr */
#line 603 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2940 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr_nounarymath: expr_nounarymath tMOD expr */
+ case 165: /* expr_nounarymath: expr_nounarymath '>' expr */
#line 604 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath '>' expr */
+ case 166: /* expr_nounarymath: expr_nounarymath '<' expr */
#line 605 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath '<' expr */
+ case 167: /* expr_nounarymath: expr_nounarymath tEQ expr */
#line 606 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2958 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath tEQ expr */
+ case 168: /* expr_nounarymath: expr_nounarymath tNEQ expr */
#line 607 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2964 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+ case 169: /* expr_nounarymath: expr_nounarymath tGE expr */
#line 608 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tGE expr */
+ case 170: /* expr_nounarymath: expr_nounarymath tLE expr */
#line 609 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2976 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath tLE expr */
+ case 171: /* expr_nounarymath: expr_nounarymath tAND expr */
#line 610 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2982 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath tAND expr */
+ case 172: /* expr_nounarymath: expr_nounarymath tOR expr */
#line 611 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2988 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath tOR expr */
+ case 173: /* expr_nounarymath: expr_nounarymath '&' expr */
#line 612 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2994 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath '&' expr */
+ case 174: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
#line 613 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3000 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+ case 175: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
#line 614 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3006 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+ case 176: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
#line 615 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3012 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 177: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3018 "engines/director/lingo/lingo-gr.cpp"
+#line 3012 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* exprlist: %empty */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 177: /* exprlist: %empty */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3024 "engines/director/lingo/lingo-gr.cpp"
+#line 3018 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* nonemptyexprlist: expr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 179: /* nonemptyexprlist: expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3033 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 180: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3041 "engines/director/lingo/lingo-gr.cpp"
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3045 "engines/director/lingo/lingo-gr.cpp"
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3240,7 +3234,7 @@ yyreturn:
return yyresult;
}
-#line 632 "engines/director/lingo/lingo-gr.y"
+#line 631 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index ebec753fed..7934694077 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -319,7 +319,6 @@ ID: tVARID
| tOPEN { $$ = new Common::String("open"); }
| tOR { $$ = new Common::String("or"); }
// | tPLAY { $$ = new Common::String("play"); }
- | tPLAYACCEL { $$ = new Common::String("playAccel"); }
| tPREVIOUS { $$ = new Common::String("previous"); }
// | tPROPERTY { $$ = new Common::String("property"); }
// | tPUT { $$ = new Common::String("put"); }
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index c6c3692361..5b2d3b4b5a 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -355,8 +355,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 74
-#define YY_END_OF_BUFFER 75
+#define YY_NUM_RULES 73
+#define YY_END_OF_BUFFER 74
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -364,44 +364,43 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[325] =
+static const flex_int16_t yy_accept[320] =
{ 0,
- 0, 0, 75, 73, 1, 71, 71, 73, 73, 70,
- 70, 69, 70, 66, 70, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 1, 67, 1, 71, 0, 72, 2,
- 65, 68, 69, 64, 62, 63, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 10, 24, 67, 67, 67, 67, 67, 67, 67,
- 33, 34, 67, 36, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 53, 67, 67, 67, 1, 0,
- 67, 2, 68, 67, 4, 67, 67, 67, 67, 67,
-
- 67, 12, 67, 67, 67, 67, 19, 67, 67, 67,
- 67, 67, 67, 29, 67, 67, 32, 67, 67, 67,
- 67, 41, 67, 67, 67, 44, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 0, 67, 67, 67, 6,
- 7, 67, 9, 11, 0, 14, 67, 67, 67, 0,
- 0, 0, 67, 67, 23, 25, 26, 67, 67, 67,
- 31, 35, 37, 67, 67, 67, 67, 67, 67, 67,
- 46, 0, 52, 58, 67, 67, 56, 61, 0, 67,
- 3, 67, 67, 12, 15, 16, 67, 0, 0, 19,
- 67, 67, 27, 67, 30, 67, 67, 67, 67, 67,
-
- 67, 67, 67, 51, 51, 51, 59, 67, 67, 0,
- 67, 5, 67, 12, 17, 0, 0, 0, 67, 67,
- 28, 67, 67, 67, 42, 43, 67, 55, 45, 0,
- 51, 51, 60, 57, 0, 67, 67, 0, 20, 67,
- 67, 67, 67, 67, 67, 0, 0, 0, 51, 51,
- 0, 13, 8, 18, 21, 67, 67, 39, 40, 67,
- 0, 0, 0, 51, 51, 13, 67, 38, 67, 0,
- 0, 0, 0, 51, 22, 67, 50, 49, 50, 0,
- 0, 0, 0, 51, 67, 49, 0, 0, 0, 0,
- 0, 67, 0, 0, 0, 0, 0, 0, 67, 0,
-
- 0, 50, 49, 49, 50, 0, 67, 48, 49, 49,
- 0, 67, 49, 67, 0, 49, 67, 0, 0, 54,
- 0, 0, 47, 0
+ 0, 0, 74, 72, 1, 70, 70, 72, 72, 69,
+ 69, 68, 69, 65, 69, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 1, 66, 1, 70, 0, 71, 2,
+ 64, 67, 68, 63, 61, 62, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 10, 24, 66, 66, 66, 66, 66, 66, 66,
+ 33, 34, 66, 36, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 52, 66, 66, 66, 1, 0,
+ 66, 2, 67, 66, 4, 66, 66, 66, 66, 66,
+
+ 66, 12, 66, 66, 66, 66, 19, 66, 66, 66,
+ 66, 66, 66, 29, 66, 66, 32, 66, 66, 66,
+ 66, 40, 66, 66, 66, 43, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 0, 66, 66, 66, 6,
+ 7, 66, 9, 11, 0, 14, 66, 66, 66, 0,
+ 0, 0, 66, 66, 23, 25, 26, 66, 66, 66,
+ 31, 35, 37, 66, 66, 66, 66, 66, 66, 66,
+ 45, 0, 51, 57, 66, 66, 55, 60, 0, 66,
+ 3, 66, 66, 12, 15, 16, 66, 0, 0, 19,
+ 66, 66, 27, 66, 30, 66, 66, 66, 66, 66,
+
+ 66, 66, 50, 50, 50, 58, 66, 66, 0, 66,
+ 5, 66, 12, 17, 0, 0, 0, 66, 66, 28,
+ 66, 66, 41, 42, 66, 54, 44, 0, 50, 50,
+ 59, 56, 0, 66, 66, 0, 20, 66, 66, 66,
+ 66, 66, 0, 0, 0, 50, 50, 0, 13, 8,
+ 18, 21, 66, 38, 39, 66, 0, 0, 0, 50,
+ 50, 13, 66, 66, 0, 0, 0, 0, 50, 22,
+ 66, 49, 48, 49, 0, 0, 0, 0, 50, 66,
+ 48, 0, 0, 0, 0, 0, 66, 0, 0, 0,
+ 0, 0, 0, 66, 0, 0, 49, 48, 48, 49,
+
+ 0, 66, 47, 48, 48, 0, 66, 48, 66, 0,
+ 48, 66, 0, 0, 53, 0, 0, 46, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -446,89 +445,89 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[337] =
+static const flex_int16_t yy_base[332] =
{ 0,
- 0, 58, 650, 717, 59, 717, 717, 644, 0, 717,
- 640, 55, 54, 717, 635, 49, 51, 57, 46, 50,
+ 0, 58, 642, 710, 59, 710, 710, 636, 0, 710,
+ 632, 55, 54, 710, 627, 49, 51, 57, 46, 50,
57, 63, 0, 63, 58, 97, 87, 97, 98, 100,
- 136, 138, 136, 117, 155, 129, 717, 639, 717, 0,
- 717, 633, 134, 717, 717, 717, 0, 97, 121, 136,
+ 136, 138, 136, 117, 155, 129, 710, 633, 710, 0,
+ 710, 626, 134, 710, 710, 710, 0, 97, 121, 136,
136, 147, 142, 137, 142, 156, 152, 157, 178, 169,
- 640, 0, 172, 182, 178, 189, 177, 189, 174, 179,
+ 629, 0, 172, 182, 178, 189, 177, 189, 174, 179,
0, 0, 193, 0, 198, 196, 186, 190, 205, 189,
192, 201, 204, 224, 0, 230, 224, 218, 260, 239,
- 240, 0, 631, 240, 0, 234, 234, 238, 237, 243,
+ 240, 0, 620, 240, 0, 234, 234, 238, 237, 243,
- 241, 637, 240, 250, 250, 266, 283, 255, 269, 264,
+ 241, 627, 240, 250, 250, 266, 283, 255, 269, 264,
275, 266, 278, 0, 278, 273, 0, 280, 272, 277,
285, 0, 283, 293, 295, 0, 294, 292, 298, 326,
306, 310, 318, 317, 324, 326, 315, 318, 319, 0,
- 0, 335, 0, 0, 634, 0, 333, 335, 340, 327,
+ 0, 335, 0, 0, 618, 0, 333, 335, 340, 327,
331, 333, 347, 334, 0, 0, 0, 337, 340, 350,
- 0, 0, 358, 354, 362, 368, 356, 363, 358, 360,
- 0, 391, 0, 0, 376, 370, 373, 0, 367, 372,
- 0, 383, 380, 0, 0, 0, 381, 389, 381, 604,
- 383, 380, 0, 396, 0, 407, 389, 400, 399, 403,
-
- 402, 406, 406, 572, 440, 439, 0, 409, 418, 418,
- 417, 0, 423, 0, 0, 425, 423, 458, 439, 438,
- 0, 445, 431, 433, 0, 0, 440, 0, 0, 473,
- 468, 474, 0, 0, 453, 447, 454, 471, 717, 473,
- 476, 475, 465, 460, 488, 494, 490, 488, 509, 510,
- 461, 0, 0, 717, 0, 493, 504, 0, 0, 499,
- 499, 501, 506, 479, 537, 717, 505, 0, 506, 519,
- 460, 520, 539, 540, 0, 525, 717, 0, 717, 349,
- 543, 558, 542, 252, 519, 0, 563, 544, 247, 548,
- 580, 537, 546, 557, 576, 581, 584, 580, 586, 211,
-
- 168, 139, 561, 586, 132, 98, 583, 89, 86, 81,
- 582, 585, 614, 588, 618, 615, 603, 607, 603, 0,
- 79, 70, 68, 717, 668, 670, 673, 676, 681, 686,
- 688, 693, 698, 700, 705, 710
+ 0, 0, 0, 350, 358, 366, 354, 359, 357, 358,
+ 0, 389, 0, 0, 375, 368, 375, 0, 368, 374,
+ 0, 384, 381, 0, 0, 0, 382, 394, 383, 614,
+ 388, 386, 0, 402, 0, 396, 396, 397, 399, 398,
+
+ 402, 404, 571, 433, 438, 0, 407, 416, 418, 420,
+ 0, 424, 0, 0, 427, 427, 457, 440, 440, 0,
+ 428, 430, 0, 0, 437, 0, 0, 464, 467, 461,
+ 0, 0, 438, 443, 457, 456, 710, 459, 472, 462,
+ 458, 475, 485, 484, 482, 494, 504, 471, 0, 0,
+ 710, 0, 477, 0, 0, 481, 485, 407, 496, 396,
+ 520, 710, 494, 496, 511, 392, 514, 533, 534, 0,
+ 515, 710, 0, 710, 349, 538, 535, 539, 252, 513,
+ 0, 544, 549, 247, 543, 565, 527, 544, 536, 557,
+ 575, 570, 565, 571, 211, 168, 139, 569, 579, 132,
+
+ 98, 571, 89, 86, 81, 567, 572, 607, 578, 605,
+ 624, 581, 588, 592, 0, 79, 70, 68, 710, 661,
+ 663, 666, 669, 674, 679, 681, 686, 691, 693, 698,
+ 703
} ;
-static const flex_int16_t yy_def[337] =
+static const flex_int16_t yy_def[332] =
{ 0,
- 324, 1, 324, 324, 324, 324, 324, 325, 326, 324,
- 324, 324, 324, 324, 324, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 324, 327, 324, 324, 325, 324, 328,
- 324, 324, 324, 324, 324, 324, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 324, 324,
- 327, 328, 324, 327, 327, 327, 327, 327, 327, 327,
-
- 327, 327, 327, 327, 327, 327, 324, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 324, 327, 327, 327, 327,
- 327, 327, 327, 327, 329, 327, 327, 327, 327, 324,
- 324, 324, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 330, 327, 327, 327, 327, 327, 327, 324, 327,
- 327, 327, 327, 331, 327, 327, 327, 324, 324, 324,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
-
- 327, 327, 327, 330, 330, 330, 327, 327, 327, 324,
- 327, 327, 327, 331, 327, 324, 324, 324, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 324,
- 330, 330, 327, 327, 324, 327, 327, 324, 324, 327,
- 327, 327, 327, 327, 327, 324, 324, 324, 330, 330,
- 324, 327, 327, 324, 327, 327, 327, 327, 327, 327,
- 324, 324, 324, 330, 330, 324, 327, 327, 327, 324,
- 332, 324, 333, 330, 327, 327, 324, 334, 324, 333,
- 333, 333, 333, 330, 327, 334, 324, 333, 333, 333,
- 324, 327, 324, 324, 333, 332, 333, 324, 327, 324,
-
- 324, 333, 334, 334, 333, 324, 327, 324, 334, 334,
- 335, 327, 336, 327, 324, 336, 327, 324, 324, 327,
- 324, 324, 324, 0, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324
+ 319, 1, 319, 319, 319, 319, 319, 320, 321, 319,
+ 319, 319, 319, 319, 319, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 319, 322, 319, 319, 320, 319, 323,
+ 319, 319, 319, 319, 319, 319, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 319, 319,
+ 322, 323, 319, 322, 322, 322, 322, 322, 322, 322,
+
+ 322, 322, 322, 322, 322, 322, 319, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 319, 322, 322, 322, 322,
+ 322, 322, 322, 322, 324, 322, 322, 322, 322, 319,
+ 319, 319, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 325, 322, 322, 322, 322, 322, 322, 319, 322,
+ 322, 322, 322, 326, 322, 322, 322, 319, 319, 319,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+
+ 322, 322, 325, 325, 325, 322, 322, 322, 319, 322,
+ 322, 322, 326, 322, 319, 319, 319, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 319, 325, 325,
+ 322, 322, 319, 322, 322, 319, 319, 322, 322, 322,
+ 322, 322, 319, 319, 319, 325, 325, 319, 322, 322,
+ 319, 322, 322, 322, 322, 322, 319, 319, 319, 325,
+ 325, 319, 322, 322, 319, 327, 319, 328, 325, 322,
+ 322, 319, 329, 319, 328, 328, 328, 328, 325, 322,
+ 329, 319, 328, 328, 328, 319, 322, 319, 319, 328,
+ 327, 328, 319, 322, 319, 319, 328, 329, 329, 328,
+
+ 319, 322, 319, 329, 329, 330, 322, 331, 322, 319,
+ 331, 322, 319, 319, 322, 319, 319, 319, 0, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319
} ;
-static const flex_int16_t yy_nxt[777] =
+static const flex_int16_t yy_nxt[770] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -536,28 +535,28 @@ static const flex_int16_t yy_nxt[777] =
32, 23, 23, 33, 23, 23, 23, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
- 36, 37, 37, 42, 43, 44, 45, 48, 50, 323,
- 51, 323, 54, 55, 49, 56, 35, 52, 58, 65,
- 323, 62, 308, 53, 57, 59, 60, 308, 63, 61,
- 308, 48, 50, 64, 51, 54, 55, 49, 56, 311,
+ 36, 37, 37, 42, 43, 44, 45, 48, 50, 318,
+ 51, 318, 54, 55, 49, 56, 35, 52, 58, 65,
+ 318, 62, 303, 53, 57, 59, 60, 303, 63, 61,
+ 303, 48, 50, 64, 51, 54, 55, 49, 56, 306,
35, 52, 58, 65, 69, 62, 53, 57, 59, 60,
66, 63, 61, 70, 67, 71, 64, 78, 89, 37,
37, 75, 72, 68, 73, 74, 76, 94, 69, 77,
- 36, 37, 37, 287, 66, 90, 70, 95, 67, 71,
- 287, 78, 42, 43, 75, 72, 68, 73, 74, 76,
+ 36, 37, 37, 282, 66, 90, 70, 95, 67, 71,
+ 282, 78, 42, 43, 75, 72, 68, 73, 74, 76,
94, 79, 77, 80, 96, 83, 86, 87, 84, 90,
- 98, 95, 88, 81, 85, 97, 82, 99, 91, 308,
+ 98, 95, 88, 81, 85, 97, 82, 99, 91, 303,
100, 101, 102, 103, 104, 79, 58, 80, 96, 83,
86, 87, 84, 59, 98, 88, 81, 85, 97, 82,
99, 105, 91, 100, 101, 106, 102, 103, 104, 110,
58, 108, 109, 111, 112, 114, 59, 113, 116, 117,
- 118, 119, 308, 120, 128, 105, 122, 123, 106, 126,
+ 118, 119, 303, 120, 128, 105, 122, 123, 106, 126,
127, 115, 121, 110, 108, 109, 111, 129, 112, 114,
113, 116, 117, 124, 118, 119, 125, 120, 128, 122,
- 123, 130, 126, 127, 115, 121, 135, 131, 296, 133,
- 129, 132, 136, 291, 134, 137, 124, 138, 144, 125,
+ 123, 130, 126, 127, 115, 121, 135, 131, 291, 133,
+ 129, 132, 136, 286, 134, 137, 124, 138, 144, 125,
139, 89, 37, 37, 140, 130, 141, 142, 143, 135,
146, 131, 133, 147, 148, 132, 136, 134, 90, 137,
149, 138, 144, 139, 107, 153, 154, 140, 156, 141,
@@ -568,56 +567,55 @@ static const flex_int16_t yy_nxt[777] =
170, 171, 159, 160, 166, 150, 161, 172, 162, 151,
163, 174, 164, 175, 176, 165, 152, 177, 167, 169,
178, 179, 168, 170, 171, 180, 181, 182, 183, 185,
- 287, 173, 186, 187, 174, 188, 175, 189, 176, 190,
+ 282, 173, 186, 187, 174, 188, 175, 189, 176, 190,
191, 177, 192, 193, 178, 179, 194, 195, 180, 181,
182, 196, 183, 185, 173, 197, 186, 187, 188, 198,
189, 199, 190, 200, 191, 192, 193, 201, 202, 194,
- 203, 195, 172, 207, 209, 196, 208, 210, 211, 197,
-
- 212, 213, 216, 198, 215, 199, 200, 217, 219, 220,
- 201, 202, 221, 203, 205, 223, 206, 207, 209, 208,
- 210, 211, 222, 228, 212, 213, 216, 215, 224, 225,
- 217, 219, 220, 226, 227, 229, 221, 205, 223, 206,
- 230, 230, 233, 234, 235, 236, 222, 228, 237, 238,
- 239, 224, 225, 231, 240, 241, 226, 227, 229, 218,
- 242, 271, 243, 244, 245, 233, 234, 235, 236, 230,
- 232, 237, 238, 239, 230, 230, 150, 231, 240, 241,
- 273, 251, 252, 253, 242, 243, 244, 245, 254, 246,
- 255, 256, 257, 232, 258, 259, 266, 249, 250, 247,
-
- 150, 260, 271, 248, 251, 252, 253, 261, 262, 263,
- 230, 230, 254, 246, 255, 256, 257, 258, 259, 266,
- 249, 250, 247, 267, 265, 260, 248, 268, 269, 270,
- 272, 261, 262, 263, 275, 276, 277, 279, 230, 264,
- 273, 230, 285, 287, 287, 287, 267, 292, 265, 287,
- 268, 269, 270, 272, 274, 281, 288, 275, 276, 287,
- 277, 279, 264, 290, 287, 282, 285, 299, 284, 283,
- 292, 300, 297, 230, 295, 301, 289, 287, 274, 281,
- 288, 291, 296, 311, 293, 287, 309, 290, 282, 294,
- 299, 284, 283, 302, 300, 297, 246, 295, 306, 301,
-
- 289, 305, 303, 307, 310, 218, 298, 304, 293, 309,
- 248, 312, 294, 314, 317, 315, 315, 302, 278, 315,
- 246, 322, 306, 286, 286, 305, 303, 307, 310, 298,
- 304, 320, 321, 248, 312, 145, 314, 317, 145, 318,
- 93, 107, 93, 39, 319, 322, 46, 41, 39, 324,
- 286, 286, 324, 324, 320, 321, 324, 324, 324, 324,
- 324, 324, 324, 318, 324, 324, 324, 319, 38, 38,
- 324, 38, 38, 38, 40, 40, 47, 47, 47, 92,
- 92, 92, 184, 324, 324, 184, 184, 204, 324, 324,
- 204, 214, 214, 214, 278, 324, 324, 278, 278, 280,
-
- 324, 324, 280, 286, 286, 286, 313, 324, 324, 313,
- 313, 316, 324, 316, 316, 316, 3, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324
+ 172, 195, 206, 266, 207, 196, 208, 268, 209, 197,
+
+ 210, 211, 212, 198, 199, 214, 200, 215, 266, 216,
+ 201, 202, 204, 218, 205, 219, 206, 207, 220, 226,
+ 208, 209, 221, 210, 222, 211, 212, 223, 214, 224,
+ 225, 215, 216, 227, 228, 204, 218, 205, 219, 228,
+ 231, 232, 220, 226, 233, 221, 229, 222, 234, 235,
+ 223, 236, 224, 225, 237, 238, 227, 239, 217, 240,
+ 241, 242, 228, 231, 232, 228, 248, 233, 228, 230,
+ 229, 234, 235, 251, 236, 150, 252, 237, 249, 238,
+ 243, 239, 240, 241, 242, 247, 250, 253, 256, 248,
+ 244, 254, 230, 255, 245, 228, 246, 251, 257, 150,
+
+ 252, 249, 258, 259, 243, 228, 262, 263, 247, 250,
+ 264, 253, 256, 244, 254, 265, 255, 245, 261, 246,
+ 267, 228, 257, 270, 260, 271, 258, 259, 272, 262,
+ 263, 274, 280, 264, 268, 228, 282, 269, 265, 282,
+ 282, 287, 261, 267, 282, 282, 270, 260, 271, 276,
+ 282, 283, 272, 284, 296, 274, 280, 294, 282, 277,
+ 285, 269, 279, 278, 287, 288, 286, 292, 306, 295,
+ 289, 282, 228, 276, 297, 283, 291, 284, 296, 290,
+ 294, 243, 277, 301, 285, 279, 278, 300, 302, 288,
+ 292, 293, 295, 289, 304, 245, 298, 305, 297, 307,
+
+ 309, 299, 290, 273, 312, 243, 310, 301, 310, 315,
+ 317, 300, 302, 316, 293, 217, 281, 304, 245, 145,
+ 298, 305, 307, 309, 299, 310, 313, 312, 145, 93,
+ 107, 314, 315, 281, 317, 93, 316, 39, 46, 41,
+ 39, 319, 319, 281, 319, 319, 319, 319, 319, 319,
+ 313, 319, 319, 319, 314, 319, 319, 319, 319, 319,
+ 281, 38, 38, 319, 38, 38, 38, 40, 40, 47,
+ 47, 47, 92, 92, 92, 184, 319, 319, 184, 184,
+ 203, 319, 319, 203, 213, 213, 213, 273, 319, 319,
+ 273, 273, 275, 319, 319, 275, 281, 281, 281, 308,
+
+ 319, 319, 308, 308, 311, 319, 311, 311, 311, 3,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319
} ;
-static const flex_int16_t yy_chk[777] =
+static const flex_int16_t yy_chk[770] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -625,28 +623,28 @@ static const flex_int16_t yy_chk[777] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 5, 5, 5, 12, 12, 13, 13, 16, 17, 323,
- 18, 322, 19, 20, 16, 20, 2, 18, 21, 25,
- 321, 24, 310, 18, 20, 21, 22, 309, 24, 22,
- 308, 16, 17, 24, 18, 19, 20, 16, 20, 306,
+ 5, 5, 5, 12, 12, 13, 13, 16, 17, 318,
+ 18, 317, 19, 20, 16, 20, 2, 18, 21, 25,
+ 316, 24, 305, 18, 20, 21, 22, 304, 24, 22,
+ 303, 16, 17, 24, 18, 19, 20, 16, 20, 301,
2, 18, 21, 25, 27, 24, 18, 20, 21, 22,
26, 24, 22, 27, 26, 28, 24, 30, 34, 34,
34, 29, 28, 26, 28, 28, 29, 48, 27, 29,
- 36, 36, 36, 305, 26, 34, 27, 49, 26, 28,
- 302, 30, 43, 43, 29, 28, 26, 28, 28, 29,
+ 36, 36, 36, 300, 26, 34, 27, 49, 26, 28,
+ 297, 30, 43, 43, 29, 28, 26, 28, 28, 29,
48, 31, 29, 31, 50, 32, 33, 33, 32, 34,
- 52, 49, 33, 31, 32, 51, 31, 53, 35, 301,
+ 52, 49, 33, 31, 32, 51, 31, 53, 35, 296,
54, 55, 56, 57, 58, 31, 35, 31, 50, 32,
33, 33, 32, 35, 52, 33, 31, 32, 51, 31,
53, 59, 35, 54, 55, 60, 56, 57, 58, 64,
35, 63, 63, 65, 66, 68, 35, 67, 69, 70,
- 73, 75, 300, 76, 82, 59, 77, 78, 60, 80,
+ 73, 75, 295, 76, 82, 59, 77, 78, 60, 80,
81, 68, 76, 64, 63, 63, 65, 83, 66, 68,
67, 69, 70, 79, 73, 75, 79, 76, 82, 77,
- 78, 84, 80, 81, 68, 76, 88, 86, 289, 87,
- 83, 86, 90, 284, 87, 91, 79, 94, 101, 79,
+ 78, 84, 80, 81, 68, 76, 88, 86, 284, 87,
+ 83, 86, 90, 279, 87, 91, 79, 94, 101, 79,
96, 89, 89, 89, 97, 84, 98, 99, 100, 88,
103, 86, 87, 104, 105, 86, 90, 87, 89, 91,
106, 94, 101, 96, 107, 108, 109, 97, 110, 98,
@@ -657,53 +655,52 @@ static const flex_int16_t yy_chk[777] =
128, 129, 113, 115, 123, 107, 116, 130, 118, 107,
119, 131, 120, 132, 133, 121, 107, 134, 124, 127,
135, 136, 125, 128, 129, 137, 138, 139, 142, 147,
- 280, 130, 148, 149, 131, 150, 132, 151, 133, 152,
+ 275, 130, 148, 149, 131, 150, 132, 151, 133, 152,
153, 134, 154, 158, 135, 136, 159, 160, 137, 138,
- 139, 163, 142, 147, 130, 164, 148, 149, 150, 165,
- 151, 166, 152, 167, 153, 154, 158, 168, 169, 159,
- 170, 160, 172, 175, 177, 163, 176, 179, 180, 164,
-
- 182, 183, 188, 165, 187, 166, 167, 189, 191, 192,
- 168, 169, 194, 170, 172, 197, 172, 175, 177, 176,
- 179, 180, 196, 202, 182, 183, 188, 187, 198, 199,
- 189, 191, 192, 200, 201, 203, 194, 172, 197, 172,
- 206, 205, 208, 209, 210, 211, 196, 202, 213, 216,
- 217, 198, 199, 205, 219, 220, 200, 201, 203, 218,
- 222, 271, 223, 224, 227, 208, 209, 210, 211, 231,
- 206, 213, 216, 217, 230, 232, 218, 205, 219, 220,
- 264, 235, 236, 237, 222, 223, 224, 227, 238, 230,
- 240, 241, 242, 206, 243, 244, 251, 231, 232, 230,
-
- 218, 245, 262, 230, 235, 236, 237, 246, 247, 248,
- 249, 250, 238, 230, 240, 241, 242, 243, 244, 251,
- 231, 232, 230, 256, 250, 245, 230, 257, 260, 261,
- 263, 246, 247, 248, 267, 269, 270, 272, 265, 249,
- 273, 274, 276, 283, 281, 288, 256, 285, 250, 290,
- 257, 260, 261, 263, 265, 273, 281, 267, 269, 282,
- 270, 272, 249, 283, 287, 273, 276, 292, 274, 273,
- 285, 293, 290, 204, 288, 294, 282, 295, 265, 273,
- 281, 291, 296, 311, 287, 297, 303, 283, 273, 287,
- 292, 274, 273, 295, 293, 290, 291, 288, 298, 294,
-
- 282, 297, 296, 299, 304, 190, 291, 296, 287, 303,
- 291, 307, 287, 312, 314, 313, 316, 295, 311, 315,
- 291, 319, 298, 313, 316, 297, 296, 299, 304, 291,
- 296, 317, 318, 291, 307, 145, 312, 314, 102, 315,
- 93, 61, 42, 38, 315, 319, 15, 11, 8, 3,
- 313, 316, 0, 0, 317, 318, 0, 0, 0, 0,
- 0, 0, 0, 315, 0, 0, 0, 315, 325, 325,
- 0, 325, 325, 325, 326, 326, 327, 327, 327, 328,
- 328, 328, 329, 0, 0, 329, 329, 330, 0, 0,
- 330, 331, 331, 331, 332, 0, 0, 332, 332, 333,
-
- 0, 0, 333, 334, 334, 334, 335, 0, 0, 335,
- 335, 336, 0, 336, 336, 336, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
- 324, 324, 324, 324, 324, 324
+ 139, 164, 142, 147, 130, 165, 148, 149, 150, 166,
+ 151, 167, 152, 168, 153, 154, 158, 169, 170, 159,
+ 172, 160, 175, 266, 176, 164, 177, 260, 179, 165,
+
+ 180, 182, 183, 166, 167, 187, 168, 188, 258, 189,
+ 169, 170, 172, 191, 172, 192, 175, 176, 194, 201,
+ 177, 179, 196, 180, 197, 182, 183, 198, 187, 199,
+ 200, 188, 189, 202, 204, 172, 191, 172, 192, 205,
+ 207, 208, 194, 201, 209, 196, 204, 197, 210, 212,
+ 198, 215, 199, 200, 216, 218, 202, 219, 217, 221,
+ 222, 225, 230, 207, 208, 228, 233, 209, 229, 205,
+ 204, 210, 212, 236, 215, 217, 238, 216, 234, 218,
+ 228, 219, 221, 222, 225, 230, 235, 239, 242, 233,
+ 228, 240, 205, 241, 228, 246, 229, 236, 243, 217,
+
+ 238, 234, 244, 245, 228, 247, 248, 253, 230, 235,
+ 256, 239, 242, 228, 240, 257, 241, 228, 247, 229,
+ 259, 261, 243, 263, 246, 264, 244, 245, 265, 248,
+ 253, 267, 271, 256, 268, 269, 277, 261, 257, 276,
+ 278, 280, 247, 259, 285, 282, 263, 246, 264, 268,
+ 283, 276, 265, 277, 289, 267, 271, 287, 290, 268,
+ 278, 261, 269, 268, 280, 282, 286, 285, 306, 288,
+ 282, 292, 203, 268, 290, 276, 291, 277, 289, 283,
+ 287, 286, 268, 293, 278, 269, 268, 292, 294, 282,
+ 285, 286, 288, 282, 298, 286, 291, 299, 290, 302,
+
+ 307, 291, 283, 306, 309, 286, 310, 293, 308, 312,
+ 314, 292, 294, 313, 286, 190, 308, 298, 286, 145,
+ 291, 299, 302, 307, 291, 311, 310, 309, 102, 93,
+ 61, 310, 312, 311, 314, 42, 313, 38, 15, 11,
+ 8, 3, 0, 308, 0, 0, 0, 0, 0, 0,
+ 310, 0, 0, 0, 310, 0, 0, 0, 0, 0,
+ 311, 320, 320, 0, 320, 320, 320, 321, 321, 322,
+ 322, 322, 323, 323, 323, 324, 0, 0, 324, 324,
+ 325, 0, 0, 325, 326, 326, 326, 327, 0, 0,
+ 327, 327, 328, 0, 0, 328, 329, 329, 329, 330,
+
+ 0, 0, 330, 330, 331, 0, 331, 331, 331, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319
} ;
static yy_state_type yy_last_accepting_state;
@@ -814,8 +811,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 817 "engines/director/lingo/lingo-lex.cpp"
-#line 818 "engines/director/lingo/lingo-lex.cpp"
+#line 814 "engines/director/lingo/lingo-lex.cpp"
+#line 815 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1038,7 +1035,7 @@ YY_DECL
#line 111 "engines/director/lingo/lingo-lex.l"
-#line 1041 "engines/director/lingo/lingo-lex.cpp"
+#line 1038 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1066,13 +1063,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 >= 325 )
+ if ( yy_current_state >= 320 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 324 );
+ while ( yy_current_state != 319 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1297,51 +1294,46 @@ YY_RULE_SETUP
case 38:
YY_RULE_SETUP
#line 169 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAYACCEL; }
+{ count(); return tPREVIOUS; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 170 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPREVIOUS; }
+{ count(); return tPROPERTY; } // D4
YY_BREAK
case 40:
YY_RULE_SETUP
#line 171 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPROPERTY; } // D4
+{ count(); return tPUT; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 172 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPUT; }
+{ count(); return tREPEAT; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 173 "engines/director/lingo/lingo-lex.l"
-{ count(); return tREPEAT; }
+{ count(); return tSCRIPT; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 174 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSCRIPT; }
+{ count(); return tSET; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 175 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSET; }
+{ count(); return tSTARTS; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 176 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSTARTS; }
+{ count(); return tTELL; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 177 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTELL; }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 178 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1378,9 +1370,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 48:
+case 47:
YY_RULE_SETUP
-#line 213 "engines/director/lingo/lingo-lex.l"
+#line 212 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1404,9 +1396,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 49:
+case 48:
YY_RULE_SETUP
-#line 235 "engines/director/lingo/lingo-lex.l"
+#line 234 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1481,9 +1473,9 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
}
YY_BREAK
-case 50:
+case 49:
YY_RULE_SETUP
-#line 308 "engines/director/lingo/lingo-lex.l"
+#line 307 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1519,9 +1511,9 @@ YY_RULE_SETUP
return tTHEENTITY;
}
YY_BREAK
-case 51:
+case 50:
YY_RULE_SETUP
-#line 342 "engines/director/lingo/lingo-lex.l"
+#line 341 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1549,84 +1541,84 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s'", ptr);
}
YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 367 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTHEN; }
+ YY_BREAK
case 52:
YY_RULE_SETUP
#line 368 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTHEN; }
+{ count(); return tTO; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 369 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTO; }
+{ count(); return tASSERTERROR; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 370 "engines/director/lingo/lingo-lex.l"
-{ count(); return tASSERTERROR; }
+{ count(); return tSPRITE; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 371 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSPRITE; }
+{ count(); return tWITH; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 372 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITH; }
+{ count(); return tWITHIN; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 373 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITHIN; }
+{ count(); return tWHEN; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 374 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHEN; }
+{ count(); return tWHILE; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 375 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHILE; }
+{ count(); return tWINDOW; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 376 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWINDOW; }
+{ count(); return tWORD; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 377 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWORD; }
+#line 378 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNEQ; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 379 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEQ; }
+{ count(); return tGE; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 380 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGE; }
+{ count(); return tLE; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 381 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLE; }
+{ count(); return tCONCAT; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 382 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONCAT; }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 383 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
-case 67:
+case 66:
YY_RULE_SETUP
-#line 385 "engines/director/lingo/lingo-lex.l"
+#line 384 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1634,43 +1626,43 @@ YY_RULE_SETUP
return tVARID;
}
YY_BREAK
+case 67:
+YY_RULE_SETUP
+#line 390 "engines/director/lingo/lingo-lex.l"
+{ count(); yylval.f = atof(yytext); return tFLOAT; }
+ YY_BREAK
case 68:
YY_RULE_SETUP
#line 391 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.f = atof(yytext); return tFLOAT; }
+{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 392 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
+{ count(); return *yytext; }
YY_BREAK
case 70:
+/* rule 70 can match eol */
YY_RULE_SETUP
#line 393 "engines/director/lingo/lingo-lex.l"
-{ count(); return *yytext; }
+{ count(); return '\n'; }
YY_BREAK
case 71:
-/* rule 71 can match eol */
YY_RULE_SETUP
#line 394 "engines/director/lingo/lingo-lex.l"
-{ count(); return '\n'; }
+{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 395 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
- YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 396 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
-case 74:
+case 73:
YY_RULE_SETUP
-#line 398 "engines/director/lingo/lingo-lex.l"
+#line 397 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1673 "engines/director/lingo/lingo-lex.cpp"
+#line 1665 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1969,7 +1961,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 >= 325 )
+ if ( yy_current_state >= 320 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1997,11 +1989,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 >= 325 )
+ if ( yy_current_state >= 320 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 324);
+ yy_is_jam = (yy_current_state == 319);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2679,7 +2671,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 398 "engines/director/lingo/lingo-lex.l"
+#line 397 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index dbd453df04..4dda68ec6a 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -166,7 +166,6 @@ on { count(); return tON; } // D3
open { count(); return tOPEN; }
or { count(); return tOR; }
play { count(); return tPLAY; }
-playAccel { count(); return tPLAYACCEL; }
previous { count(); return tPREVIOUS; }
property { count(); return tPROPERTY; } // D4
put { count(); return tPUT; }
Commit: 553b4beafd62e651a333f7476bea9dd872f969ba
https://github.com/scummvm/scummvm/commit/553b4beafd62e651a333f7476bea9dd872f969ba
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Create FrameNode and MovieNode
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index bc1635acc5..26e92e7b81 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -56,6 +56,8 @@ struct VarNode;
struct ParensNode;
struct UnaryOpNode;
struct BinaryOpNode;
+struct FrameNode;
+struct MovieNode;
typedef Common::Array<Node *> NodeList;
typedef Common::Array<Common::String *> IDList;
@@ -100,7 +102,9 @@ enum NodeType {
kVarNode,
kParensNode,
kUnaryOpNode,
- kBinaryOpNode
+ kBinaryOpNode,
+ kFrameNode,
+ kMovieNode
};
/* NodeVisitor */
@@ -140,6 +144,8 @@ public:
virtual void visitParensNode(ParensNode *node) = 0;
virtual void visitUnaryOpNode(UnaryOpNode *node) = 0;
virtual void visitBinaryOpNode(BinaryOpNode *node) = 0;
+ virtual void visitFrameNode(FrameNode *node) = 0;
+ virtual void visitMovieNode(MovieNode *node) = 0;
};
/* Node */
@@ -641,6 +647,34 @@ struct BinaryOpNode : ExprNode {
}
};
+/* FrameNode */
+
+struct FrameNode : ExprNode {
+ Node *arg;
+
+ FrameNode(Node *argIn) : ExprNode(kFrameNode), arg(argIn) {}
+ virtual ~FrameNode() {
+ delete arg;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitFrameNode(this);
+ }
+};
+
+/* MovieNode */
+
+struct MovieNode : ExprNode {
+ Node *arg;
+
+ MovieNode(Node *argIn) : ExprNode(kMovieNode), arg(argIn) {}
+ virtual ~MovieNode() {
+ delete arg;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitMovieNode(this);
+ }
+};
+
} // End of namespace Director
#endif
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index d9e3ae43f3..8d02f336c4 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -796,4 +796,16 @@ void LingoCompiler::visitBinaryOpNode(BinaryOpNode *node) {
code1(node->op);
}
+/* FrameNode */
+
+void LingoCompiler::visitFrameNode(FrameNode *node) {
+ compile(node->arg);
+}
+
+/* MovieNode */
+
+void LingoCompiler::visitMovieNode(MovieNode *node) {
+ compile(node->arg);
+}
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 193359741f..2969bbf1c8 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -107,6 +107,8 @@ public:
virtual void visitParensNode(ParensNode *node);
virtual void visitUnaryOpNode(UnaryOpNode *node);
virtual void visitBinaryOpNode(BinaryOpNode *node);
+ virtual void visitFrameNode(FrameNode *node);
+ virtual void visitMovieNode(MovieNode *node);
private:
int parse(const char *code);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index ee718379ce..22d83dc812 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -265,7 +265,7 @@ enum yysymbol_kind_t
YYSYMBOL_stmtoneliner = 110, /* stmtoneliner */
YYSYMBOL_proc = 111, /* proc */
YYSYMBOL_cmdargs = 112, /* cmdargs */
- YYSYMBOL_playargs = 113, /* playargs */
+ YYSYMBOL_frameargs = 113, /* frameargs */
YYSYMBOL_asgn = 114, /* asgn */
YYSYMBOL_to = 115, /* to */
YYSYMBOL_definevars = 116, /* definevars */
@@ -685,17 +685,17 @@ static const yytype_int16 yyrline[] =
329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
342, 343, 346, 350, 360, 361, 362, 363, 366, 367,
368, 371, 372, 373, 374, 375, 376, 377, 380, 383,
- 388, 392, 398, 403, 406, 412, 417, 423, 429, 435,
- 443, 444, 445, 446, 449, 449, 451, 452, 453, 456,
- 460, 464, 470, 474, 478, 482, 484, 486, 490, 491,
- 495, 501, 508, 509, 515, 516, 517, 518, 519, 520,
- 521, 522, 525, 527, 531, 535, 536, 537, 540, 544,
- 549, 550, 551, 554, 556, 557, 560, 561, 562, 569,
- 570, 574, 575, 576, 577, 578, 579, 580, 581, 582,
- 583, 584, 585, 586, 587, 588, 589, 590, 591, 598,
- 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
- 609, 610, 611, 612, 613, 614, 615, 618, 619, 622,
- 626
+ 388, 392, 398, 403, 406, 416, 421, 427, 433, 439,
+ 447, 448, 449, 450, 453, 453, 455, 456, 457, 460,
+ 464, 468, 474, 478, 482, 486, 488, 490, 494, 495,
+ 499, 505, 512, 513, 519, 520, 521, 522, 523, 524,
+ 525, 526, 529, 531, 535, 539, 540, 541, 544, 548,
+ 553, 554, 555, 558, 560, 561, 564, 565, 566, 573,
+ 574, 578, 579, 580, 581, 582, 583, 584, 585, 586,
+ 587, 588, 589, 590, 591, 592, 593, 594, 595, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 618, 619, 622, 623, 626,
+ 630
};
#endif
@@ -729,7 +729,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"scriptpartlist", "scriptpart", "macro", "factory", "method",
"methodlist", "nonemptymethodlist", "methodlistline", "handler",
"endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
- "proc", "cmdargs", "playargs", "asgn", "to", "definevars", "ifstmt",
+ "proc", "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
"ifelsestmt", "loop", "stmtlist", "nonemptystmtlist", "stmtlistline",
"simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
"list", "proplist", "proppair", "parens", "unarymath", "simpleexpr",
@@ -2403,7 +2403,7 @@ yyreduce:
#line 2404 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tPLAY playargs '\n' */
+ case 74: /* proc: tPLAY frameargs '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
#line 2410 "engines/director/lingo/lingo-gr.cpp"
@@ -2492,104 +2492,104 @@ yyreduce:
#line 2493 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* playargs: tFRAME expr */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 85: /* frameargs: tFRAME expr */
+#line 416 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
- args->push_back((yyvsp[0].node));
+ args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
#line 2503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* playargs: tMOVIE expr */
-#line 417 "engines/director/lingo/lingo-gr.y"
+ case 86: /* frameargs: tMOVIE expr */
+#line 421 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
- args->push_back((yyvsp[0].node));
+ args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
#line 2514 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* playargs: tFRAME expr tOF tMOVIE expr */
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 87: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 427 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
- args->push_back((yyvsp[-3].node));
- args->push_back((yyvsp[0].node));
+ args->push_back(new FrameNode((yyvsp[-3].node)));
+ args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* playargs: expr tOF tMOVIE expr */
-#line 429 "engines/director/lingo/lingo-gr.y"
+ case 88: /* frameargs: expr tOF tMOVIE expr */
+#line 433 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
- args->push_back((yyvsp[0].node));
+ args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
#line 2536 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* playargs: tFRAME expr expr_nounarymath */
-#line 435 "engines/director/lingo/lingo-gr.y"
+ case 89: /* frameargs: tFRAME expr expr_nounarymath */
+#line 439 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
- args->push_back((yyvsp[-1].node));
+ args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
#line 2547 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 443 "engines/director/lingo/lingo-gr.y"
+#line 447 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2553 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 444 "engines/director/lingo/lingo-gr.y"
+#line 448 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 445 "engines/director/lingo/lingo-gr.y"
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* asgn: tSET varorthe to expr '\n' */
-#line 446 "engines/director/lingo/lingo-gr.y"
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2571 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* definevars: tGLOBAL idlist '\n' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* definevars: tPROPERTY idlist '\n' */
-#line 452 "engines/director/lingo/lingo-gr.y"
+#line 456 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* definevars: tINSTANCE idlist '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 457 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* ifstmt: tIF expr tTHEN stmt */
-#line 456 "engines/director/lingo/lingo-gr.y"
+#line 460 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
@@ -2598,14 +2598,14 @@ yyreduce:
break;
case 100: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 460 "engines/director/lingo/lingo-gr.y"
+#line 464 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 464 "engines/director/lingo/lingo-gr.y"
+#line 468 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
@@ -2616,7 +2616,7 @@ yyreduce:
break;
case 102: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 470 "engines/director/lingo/lingo-gr.y"
+#line 474 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
@@ -2625,7 +2625,7 @@ yyreduce:
break;
case 103: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 474 "engines/director/lingo/lingo-gr.y"
+#line 478 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
@@ -2634,41 +2634,41 @@ yyreduce:
break;
case 104: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 478 "engines/director/lingo/lingo-gr.y"
+#line 482 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 482 "engines/director/lingo/lingo-gr.y"
+#line 486 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2648 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 484 "engines/director/lingo/lingo-gr.y"
+#line 488 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 486 "engines/director/lingo/lingo-gr.y"
+#line 490 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2662 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* stmtlist: %empty */
-#line 490 "engines/director/lingo/lingo-gr.y"
+#line 494 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
#line 2668 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* nonemptystmtlist: stmtlistline */
-#line 495 "engines/director/lingo/lingo-gr.y"
+#line 499 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
@@ -2679,7 +2679,7 @@ yyreduce:
break;
case 111: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 501 "engines/director/lingo/lingo-gr.y"
+#line 505 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
@@ -2689,73 +2689,73 @@ yyreduce:
break;
case 112: /* stmtlistline: '\n' */
-#line 508 "engines/director/lingo/lingo-gr.y"
+#line 512 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* simpleexpr_noparens_nounarymath: tINT */
-#line 515 "engines/director/lingo/lingo-gr.y"
+#line 519 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 516 "engines/director/lingo/lingo-gr.y"
+#line 520 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 517 "engines/director/lingo/lingo-gr.y"
+#line 521 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 518 "engines/director/lingo/lingo-gr.y"
+#line 522 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 519 "engines/director/lingo/lingo-gr.y"
+#line 523 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 520 "engines/director/lingo/lingo-gr.y"
+#line 524 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* var: ID */
-#line 525 "engines/director/lingo/lingo-gr.y"
+#line 529 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* list: '[' exprlist ']' */
-#line 535 "engines/director/lingo/lingo-gr.y"
+#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* list: '[' ':' ']' */
-#line 536 "engines/director/lingo/lingo-gr.y"
+#line 540 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* list: '[' proplist ']' */
-#line 537 "engines/director/lingo/lingo-gr.y"
+#line 541 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* proplist: proppair */
-#line 540 "engines/director/lingo/lingo-gr.y"
+#line 544 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
@@ -2764,7 +2764,7 @@ yyreduce:
break;
case 129: /* proplist: proplist ',' proppair */
-#line 544 "engines/director/lingo/lingo-gr.y"
+#line 548 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
@@ -2772,253 +2772,253 @@ yyreduce:
break;
case 130: /* proppair: tSYMBOL ':' expr */
-#line 549 "engines/director/lingo/lingo-gr.y"
+#line 553 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2778 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* proppair: ID ':' expr */
-#line 550 "engines/director/lingo/lingo-gr.y"
+#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2784 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* proppair: tSTRING ':' expr */
-#line 551 "engines/director/lingo/lingo-gr.y"
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2790 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* parens: '(' expr ')' */
-#line 554 "engines/director/lingo/lingo-gr.y"
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
#line 2796 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* unarymath: '+' simpleexpr */
-#line 556 "engines/director/lingo/lingo-gr.y"
+#line 560 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
#line 2802 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* unarymath: '-' simpleexpr */
-#line 557 "engines/director/lingo/lingo-gr.y"
+#line 561 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
#line 2808 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* expr: expr '+' expr */
-#line 575 "engines/director/lingo/lingo-gr.y"
+#line 579 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2814 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* expr: expr '-' expr */
-#line 576 "engines/director/lingo/lingo-gr.y"
+#line 580 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2820 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* expr: expr '*' expr */
-#line 577 "engines/director/lingo/lingo-gr.y"
+#line 581 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2826 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* expr: expr '/' expr */
-#line 578 "engines/director/lingo/lingo-gr.y"
+#line 582 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2832 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* expr: expr tMOD expr */
-#line 579 "engines/director/lingo/lingo-gr.y"
+#line 583 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2838 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* expr: expr '>' expr */
-#line 580 "engines/director/lingo/lingo-gr.y"
+#line 584 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2844 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* expr: expr '<' expr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2850 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* expr: expr tEQ expr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2856 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* expr: expr tNEQ expr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+#line 587 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2862 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* expr: expr tGE expr */
-#line 584 "engines/director/lingo/lingo-gr.y"
+#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2868 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* expr: expr tLE expr */
-#line 585 "engines/director/lingo/lingo-gr.y"
+#line 589 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2874 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* expr: expr tAND expr */
-#line 586 "engines/director/lingo/lingo-gr.y"
+#line 590 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2880 "engines/director/lingo/lingo-gr.cpp"
break;
case 154: /* expr: expr tOR expr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2886 "engines/director/lingo/lingo-gr.cpp"
break;
case 155: /* expr: expr '&' expr */
-#line 588 "engines/director/lingo/lingo-gr.y"
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2892 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* expr: expr tCONCAT expr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2898 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* expr: expr tCONTAINS expr */
-#line 590 "engines/director/lingo/lingo-gr.y"
+#line 594 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* expr: expr tSTARTS expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2910 "engines/director/lingo/lingo-gr.cpp"
break;
case 160: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2916 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2922 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 601 "engines/director/lingo/lingo-gr.y"
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2928 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2934 "engines/director/lingo/lingo-gr.cpp"
break;
case 164: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2940 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
case 166: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
case 167: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2958 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2964 "engines/director/lingo/lingo-gr.cpp"
break;
case 169: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
case 170: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+#line 613 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2976 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+#line 614 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2982 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+#line 615 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2988 "engines/director/lingo/lingo-gr.cpp"
break;
case 173: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2994 "engines/director/lingo/lingo-gr.cpp"
break;
case 174: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+#line 617 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3000 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 614 "engines/director/lingo/lingo-gr.y"
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3006 "engines/director/lingo/lingo-gr.cpp"
break;
case 176: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 615 "engines/director/lingo/lingo-gr.y"
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3012 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* exprlist: %empty */
-#line 618 "engines/director/lingo/lingo-gr.y"
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
#line 3018 "engines/director/lingo/lingo-gr.cpp"
break;
case 179: /* nonemptyexprlist: expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+#line 626 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
@@ -3027,7 +3027,7 @@ yyreduce:
break;
case 180: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+#line 630 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
@@ -3234,7 +3234,7 @@ yyreturn:
return yyresult;
}
-#line 631 "engines/director/lingo/lingo-gr.y"
+#line 635 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 7934694077..6b33f5549f 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -167,7 +167,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> stmt stmtoneliner
%type<node> proc asgn definevars
%type<node> ifstmt ifelsestmt loop
-%type<nodelist> cmdargs playargs stmtlist nonemptystmtlist
+%type<nodelist> cmdargs frameargs stmtlist nonemptystmtlist
%type<node> stmtlistline
// EXPRESSION
@@ -371,7 +371,7 @@ stmtoneliner: proc
proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
| tPUT cmdargs '\n' { $$ = new CmdNode(new Common::String("put"), $cmdargs); }
| tPLAY cmdargs '\n' { $$ = new CmdNode(new Common::String("play"), $cmdargs); }
- | tPLAY playargs '\n' { $$ = new CmdNode(new Common::String("play"), $playargs); }
+ | tPLAY frameargs '\n' { $$ = new CmdNode(new Common::String("play"), $frameargs); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
| tEXIT '\n' { $$ = new ExitNode(); }
@@ -409,33 +409,37 @@ cmdargs: /* empty */ {
$$ = $args; }
;
-playargs: tFRAME expr[frame] {
+frameargs:
+ // On the off chance that we encounter something like `play frame done`
+ // we will wrap the frame arg in a FrameNode. This has no purpose other than
+ // to avoid detecting this case as `play done`.
+ tFRAME expr[frame] {
// This matches `play frame arg`
NodeList *args = new NodeList;
- args->push_back($frame);
+ args->push_back(new FrameNode($frame));
$$ = args; }
| tMOVIE expr[movie] {
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
- args->push_back($movie);
+ args->push_back(new MovieNode($movie));
$$ = args; }
| tFRAME expr[frame] tOF tMOVIE expr[movie] {
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
- args->push_back($frame);
- args->push_back($movie);
+ args->push_back(new FrameNode($frame));
+ args->push_back(new MovieNode($movie));
$$ = args; }
| expr[frame] tOF tMOVIE expr[movie] {
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back($frame);
- args->push_back($movie);
+ args->push_back(new MovieNode($movie));
$$ = args; }
| tFRAME expr[frame] expr_nounarymath[movie] {
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
- args->push_back($frame);
+ args->push_back(new FrameNode($frame));
args->push_back($movie);
$$ = args; }
;
Commit: 41caf423dd2d3b14b3974861282e3b2fc2a2e6b9
https://github.com/scummvm/scummvm/commit/41caf423dd2d3b14b3974861282e3b2fc2a2e6b9
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement go command
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 8d02f336c4..314c7aaaa0 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -458,6 +458,18 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
/* CmdNode */
void LingoCompiler::visitCmdNode(CmdNode *node) {
+ if (node->name->equalsIgnoreCase("go") && node->args->size() == 1 && (*node->args)[0]->type == kVarNode){
+ VarNode *var = static_cast<VarNode *>((*node->args)[0]);
+ if (var->name->equalsIgnoreCase("loop") ||
+ var->name->equalsIgnoreCase("next") ||
+ var->name->equalsIgnoreCase("previous")) {
+ code1(LC::c_symbolpush);
+ codeString(var->name->c_str());
+ codeCmd(node->name, 1);
+ return;
+ }
+ }
+
// `play done` compiles to `play()`
if (node->name->equalsIgnoreCase("play") && node->args->size() == 1 && (*node->args)[0]->type == kVarNode) {
VarNode *var = static_cast<VarNode *>((*node->args)[0]);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 22d83dc812..490b328dae 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -182,114 +182,113 @@ enum yysymbol_kind_t
YYSYMBOL_tFRAME = 27, /* tFRAME */
YYSYMBOL_tGLOBAL = 28, /* tGLOBAL */
YYSYMBOL_tGO = 29, /* tGO */
- YYSYMBOL_tGOLOOP = 30, /* tGOLOOP */
- YYSYMBOL_tIF = 31, /* tIF */
- YYSYMBOL_tIN = 32, /* tIN */
- YYSYMBOL_tINTO = 33, /* tINTO */
- YYSYMBOL_tMACRO = 34, /* tMACRO */
- YYSYMBOL_tMOVIE = 35, /* tMOVIE */
- YYSYMBOL_tNEXT = 36, /* tNEXT */
- YYSYMBOL_tOF = 37, /* tOF */
- YYSYMBOL_tPREVIOUS = 38, /* tPREVIOUS */
- YYSYMBOL_tPUT = 39, /* tPUT */
- YYSYMBOL_tREPEAT = 40, /* tREPEAT */
- YYSYMBOL_tSET = 41, /* tSET */
- YYSYMBOL_tTHEN = 42, /* tTHEN */
- YYSYMBOL_tTO = 43, /* tTO */
- YYSYMBOL_tWHEN = 44, /* tWHEN */
- YYSYMBOL_tWITH = 45, /* tWITH */
- YYSYMBOL_tWHILE = 46, /* tWHILE */
- YYSYMBOL_tFACTORY = 47, /* tFACTORY */
- YYSYMBOL_tOPEN = 48, /* tOPEN */
- YYSYMBOL_tPLAY = 49, /* tPLAY */
- YYSYMBOL_tINSTANCE = 50, /* tINSTANCE */
- YYSYMBOL_tGE = 51, /* tGE */
- YYSYMBOL_tLE = 52, /* tLE */
- YYSYMBOL_tEQ = 53, /* tEQ */
- YYSYMBOL_tNEQ = 54, /* tNEQ */
- YYSYMBOL_tAND = 55, /* tAND */
- YYSYMBOL_tOR = 56, /* tOR */
- YYSYMBOL_tNOT = 57, /* tNOT */
- YYSYMBOL_tMOD = 58, /* tMOD */
- YYSYMBOL_tAFTER = 59, /* tAFTER */
- YYSYMBOL_tBEFORE = 60, /* tBEFORE */
- YYSYMBOL_tCONCAT = 61, /* tCONCAT */
- YYSYMBOL_tCONTAINS = 62, /* tCONTAINS */
- YYSYMBOL_tSTARTS = 63, /* tSTARTS */
- YYSYMBOL_tCHAR = 64, /* tCHAR */
- YYSYMBOL_tITEM = 65, /* tITEM */
- YYSYMBOL_tLINE = 66, /* tLINE */
- YYSYMBOL_tWORD = 67, /* tWORD */
- YYSYMBOL_tSPRITE = 68, /* tSPRITE */
- YYSYMBOL_tINTERSECTS = 69, /* tINTERSECTS */
- YYSYMBOL_tWITHIN = 70, /* tWITHIN */
- YYSYMBOL_tTELL = 71, /* tTELL */
- YYSYMBOL_tPROPERTY = 72, /* tPROPERTY */
- YYSYMBOL_tON = 73, /* tON */
- YYSYMBOL_tMETHOD = 74, /* tMETHOD */
- YYSYMBOL_tENDIF = 75, /* tENDIF */
- YYSYMBOL_tENDREPEAT = 76, /* tENDREPEAT */
- YYSYMBOL_tENDTELL = 77, /* tENDTELL */
- YYSYMBOL_tASSERTERROR = 78, /* tASSERTERROR */
- YYSYMBOL_79_ = 79, /* '<' */
- YYSYMBOL_80_ = 80, /* '>' */
- YYSYMBOL_81_ = 81, /* '&' */
- YYSYMBOL_82_ = 82, /* '+' */
- YYSYMBOL_83_ = 83, /* '-' */
- YYSYMBOL_84_ = 84, /* '*' */
- YYSYMBOL_85_ = 85, /* '/' */
- YYSYMBOL_86_ = 86, /* '%' */
- YYSYMBOL_87_n_ = 87, /* '\n' */
- YYSYMBOL_88_ = 88, /* ',' */
- YYSYMBOL_89_ = 89, /* '(' */
- YYSYMBOL_90_ = 90, /* ')' */
- YYSYMBOL_91_ = 91, /* '[' */
- YYSYMBOL_92_ = 92, /* ']' */
- YYSYMBOL_93_ = 93, /* ':' */
- YYSYMBOL_YYACCEPT = 94, /* $accept */
- YYSYMBOL_script = 95, /* script */
- YYSYMBOL_scriptpartlist = 96, /* scriptpartlist */
- YYSYMBOL_scriptpart = 97, /* scriptpart */
- YYSYMBOL_macro = 98, /* macro */
- YYSYMBOL_factory = 99, /* factory */
- YYSYMBOL_method = 100, /* method */
- YYSYMBOL_methodlist = 101, /* methodlist */
- YYSYMBOL_nonemptymethodlist = 102, /* nonemptymethodlist */
- YYSYMBOL_methodlistline = 103, /* methodlistline */
- YYSYMBOL_handler = 104, /* handler */
- YYSYMBOL_endargdef = 105, /* endargdef */
- YYSYMBOL_ID = 106, /* ID */
- YYSYMBOL_idlist = 107, /* idlist */
- YYSYMBOL_nonemptyidlist = 108, /* nonemptyidlist */
- YYSYMBOL_stmt = 109, /* stmt */
- YYSYMBOL_stmtoneliner = 110, /* stmtoneliner */
- YYSYMBOL_proc = 111, /* proc */
- YYSYMBOL_cmdargs = 112, /* cmdargs */
- YYSYMBOL_frameargs = 113, /* frameargs */
- YYSYMBOL_asgn = 114, /* asgn */
- YYSYMBOL_to = 115, /* to */
- YYSYMBOL_definevars = 116, /* definevars */
- YYSYMBOL_ifstmt = 117, /* ifstmt */
- YYSYMBOL_ifelsestmt = 118, /* ifelsestmt */
- YYSYMBOL_loop = 119, /* loop */
- YYSYMBOL_stmtlist = 120, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 121, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 122, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 123, /* simpleexpr_noparens_nounarymath */
- YYSYMBOL_var = 124, /* var */
- YYSYMBOL_varorchunk = 125, /* varorchunk */
- YYSYMBOL_varorthe = 126, /* varorthe */
- YYSYMBOL_list = 127, /* list */
- YYSYMBOL_proplist = 128, /* proplist */
- YYSYMBOL_proppair = 129, /* proppair */
- YYSYMBOL_parens = 130, /* parens */
- YYSYMBOL_unarymath = 131, /* unarymath */
- YYSYMBOL_simpleexpr = 132, /* simpleexpr */
- YYSYMBOL_simpleexpr_nounarymath = 133, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 134, /* expr */
- YYSYMBOL_expr_nounarymath = 135, /* expr_nounarymath */
- YYSYMBOL_exprlist = 136, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 137 /* nonemptyexprlist */
+ YYSYMBOL_tIF = 30, /* tIF */
+ YYSYMBOL_tIN = 31, /* tIN */
+ YYSYMBOL_tINTO = 32, /* tINTO */
+ YYSYMBOL_tMACRO = 33, /* tMACRO */
+ YYSYMBOL_tMOVIE = 34, /* tMOVIE */
+ YYSYMBOL_tNEXT = 35, /* tNEXT */
+ YYSYMBOL_tOF = 36, /* tOF */
+ YYSYMBOL_tPREVIOUS = 37, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 38, /* tPUT */
+ YYSYMBOL_tREPEAT = 39, /* tREPEAT */
+ YYSYMBOL_tSET = 40, /* tSET */
+ YYSYMBOL_tTHEN = 41, /* tTHEN */
+ YYSYMBOL_tTO = 42, /* tTO */
+ YYSYMBOL_tWHEN = 43, /* tWHEN */
+ YYSYMBOL_tWITH = 44, /* tWITH */
+ YYSYMBOL_tWHILE = 45, /* tWHILE */
+ YYSYMBOL_tFACTORY = 46, /* tFACTORY */
+ YYSYMBOL_tOPEN = 47, /* tOPEN */
+ YYSYMBOL_tPLAY = 48, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 49, /* tINSTANCE */
+ YYSYMBOL_tGE = 50, /* tGE */
+ YYSYMBOL_tLE = 51, /* tLE */
+ YYSYMBOL_tEQ = 52, /* tEQ */
+ YYSYMBOL_tNEQ = 53, /* tNEQ */
+ YYSYMBOL_tAND = 54, /* tAND */
+ YYSYMBOL_tOR = 55, /* tOR */
+ YYSYMBOL_tNOT = 56, /* tNOT */
+ YYSYMBOL_tMOD = 57, /* tMOD */
+ YYSYMBOL_tAFTER = 58, /* tAFTER */
+ YYSYMBOL_tBEFORE = 59, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 60, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 61, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 62, /* tSTARTS */
+ YYSYMBOL_tCHAR = 63, /* tCHAR */
+ YYSYMBOL_tITEM = 64, /* tITEM */
+ YYSYMBOL_tLINE = 65, /* tLINE */
+ YYSYMBOL_tWORD = 66, /* tWORD */
+ YYSYMBOL_tSPRITE = 67, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 68, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 69, /* tWITHIN */
+ YYSYMBOL_tTELL = 70, /* tTELL */
+ YYSYMBOL_tPROPERTY = 71, /* tPROPERTY */
+ YYSYMBOL_tON = 72, /* tON */
+ YYSYMBOL_tMETHOD = 73, /* tMETHOD */
+ YYSYMBOL_tENDIF = 74, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 75, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 76, /* tENDTELL */
+ YYSYMBOL_tASSERTERROR = 77, /* tASSERTERROR */
+ YYSYMBOL_78_ = 78, /* '<' */
+ YYSYMBOL_79_ = 79, /* '>' */
+ YYSYMBOL_80_ = 80, /* '&' */
+ YYSYMBOL_81_ = 81, /* '+' */
+ YYSYMBOL_82_ = 82, /* '-' */
+ YYSYMBOL_83_ = 83, /* '*' */
+ YYSYMBOL_84_ = 84, /* '/' */
+ YYSYMBOL_85_ = 85, /* '%' */
+ YYSYMBOL_86_n_ = 86, /* '\n' */
+ YYSYMBOL_87_ = 87, /* ',' */
+ YYSYMBOL_88_ = 88, /* '(' */
+ YYSYMBOL_89_ = 89, /* ')' */
+ YYSYMBOL_90_ = 90, /* '[' */
+ YYSYMBOL_91_ = 91, /* ']' */
+ YYSYMBOL_92_ = 92, /* ':' */
+ YYSYMBOL_YYACCEPT = 93, /* $accept */
+ YYSYMBOL_script = 94, /* script */
+ YYSYMBOL_scriptpartlist = 95, /* scriptpartlist */
+ YYSYMBOL_scriptpart = 96, /* scriptpart */
+ YYSYMBOL_macro = 97, /* macro */
+ YYSYMBOL_factory = 98, /* factory */
+ YYSYMBOL_method = 99, /* method */
+ YYSYMBOL_methodlist = 100, /* methodlist */
+ YYSYMBOL_nonemptymethodlist = 101, /* nonemptymethodlist */
+ YYSYMBOL_methodlistline = 102, /* methodlistline */
+ YYSYMBOL_handler = 103, /* handler */
+ YYSYMBOL_endargdef = 104, /* endargdef */
+ YYSYMBOL_ID = 105, /* ID */
+ YYSYMBOL_idlist = 106, /* idlist */
+ YYSYMBOL_nonemptyidlist = 107, /* nonemptyidlist */
+ YYSYMBOL_stmt = 108, /* stmt */
+ YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
+ YYSYMBOL_proc = 110, /* proc */
+ YYSYMBOL_cmdargs = 111, /* cmdargs */
+ YYSYMBOL_frameargs = 112, /* frameargs */
+ YYSYMBOL_asgn = 113, /* asgn */
+ YYSYMBOL_to = 114, /* to */
+ YYSYMBOL_definevars = 115, /* definevars */
+ YYSYMBOL_ifstmt = 116, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 117, /* ifelsestmt */
+ YYSYMBOL_loop = 118, /* loop */
+ YYSYMBOL_stmtlist = 119, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 120, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 121, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 122, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 123, /* var */
+ YYSYMBOL_varorchunk = 124, /* varorchunk */
+ YYSYMBOL_varorthe = 125, /* varorthe */
+ YYSYMBOL_list = 126, /* list */
+ YYSYMBOL_proplist = 127, /* proplist */
+ YYSYMBOL_proppair = 128, /* proppair */
+ YYSYMBOL_parens = 129, /* parens */
+ YYSYMBOL_unarymath = 130, /* unarymath */
+ YYSYMBOL_simpleexpr = 131, /* simpleexpr */
+ YYSYMBOL_simpleexpr_nounarymath = 132, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 133, /* expr */
+ YYSYMBOL_expr_nounarymath = 134, /* expr_nounarymath */
+ YYSYMBOL_exprlist = 135, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 136 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -609,21 +608,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 107
+#define YYFINAL 110
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2463
+#define YYLAST 2439
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 94
+#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 44
/* YYNRULES -- Number of rules. */
-#define YYNRULES 180
+#define YYNRULES 182
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 333
+#define YYNSTATES 338
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 333
+#define YYMAXUTOK 332
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -638,15 +637,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 87, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 86, 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, 86, 81, 2,
- 89, 90, 84, 82, 88, 83, 2, 85, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 93, 2,
- 79, 2, 80, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 85, 80, 2,
+ 88, 89, 83, 81, 87, 82, 2, 84, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 92, 2,
+ 78, 2, 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, 91, 2, 92, 2, 2, 2, 2, 2, 2,
+ 2, 90, 2, 91, 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,
@@ -670,7 +669,7 @@ static const yytype_int8 yytranslate[] =
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78
+ 75, 76, 77
};
#if YYDEBUG
@@ -684,18 +683,18 @@ static const yytype_int16 yyrline[] =
315, 316, 317, 319, 320, 322, 325, 326, 327, 328,
329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
342, 343, 346, 350, 360, 361, 362, 363, 366, 367,
- 368, 371, 372, 373, 374, 375, 376, 377, 380, 383,
- 388, 392, 398, 403, 406, 416, 421, 427, 433, 439,
- 447, 448, 449, 450, 453, 453, 455, 456, 457, 460,
- 464, 468, 474, 478, 482, 486, 488, 490, 494, 495,
- 499, 505, 512, 513, 519, 520, 521, 522, 523, 524,
- 525, 526, 529, 531, 535, 539, 540, 541, 544, 548,
- 553, 554, 555, 558, 560, 561, 564, 565, 566, 573,
- 574, 578, 579, 580, 581, 582, 583, 584, 585, 586,
- 587, 588, 589, 590, 591, 592, 593, 594, 595, 602,
- 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
- 613, 614, 615, 616, 617, 618, 619, 622, 623, 626,
- 630
+ 368, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 382, 385, 390, 394, 400, 405, 408, 418, 423, 429,
+ 435, 441, 449, 450, 451, 452, 455, 455, 457, 458,
+ 459, 462, 466, 470, 476, 480, 484, 488, 490, 492,
+ 496, 497, 501, 507, 514, 515, 521, 522, 523, 524,
+ 525, 526, 527, 528, 531, 533, 537, 541, 542, 543,
+ 546, 550, 555, 556, 557, 560, 562, 563, 566, 567,
+ 568, 575, 576, 580, 581, 582, 583, 584, 585, 586,
+ 587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
+ 597, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 618, 619, 620, 621, 624,
+ 625, 628, 632
};
#endif
@@ -717,12 +716,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"tTHEMENUITEMSENTITY", "tFLOAT", "tTHEFUNC", "tTHEFUNCINOF", "tVARID",
"tSTRING", "tSYMBOL", "tENDCLAUSE", "tPLAYACCEL", "tTHEOBJECTPROP",
"tCAST", "tFIELD", "tSCRIPT", "tWINDOW", "tDOWN", "tELSE", "tELSIF",
- "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tGOLOOP", "tIF", "tIN", "tINTO",
- "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT",
- "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN",
- "tPLAY", "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT",
- "tMOD", "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR",
- "tITEM", "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
+ "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tIF", "tIN", "tINTO", "tMACRO",
+ "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET",
+ "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN", "tPLAY",
+ "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD",
+ "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM",
+ "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
"tPROPERTY", "tON", "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL",
"tASSERTERROR", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'",
"'\\n'", "','", "'('", "')'", "'['", "']'", "':'", "$accept", "script",
@@ -752,13 +751,13 @@ static const yytype_int16 yytoknum[] =
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, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 60,
- 62, 38, 43, 45, 42, 47, 37, 10, 44, 40,
- 41, 91, 93, 58
+ 325, 326, 327, 328, 329, 330, 331, 332, 60, 62,
+ 38, 43, 45, 42, 47, 37, 10, 44, 40, 41,
+ 91, 93, 58
};
#endif
-#define YYPACT_NINF (-225)
+#define YYPACT_NINF (-224)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -772,40 +771,40 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1322, -225, -225, -225, -225, -225, -225, -33, -225, 2135,
- 929, -225, -225, 2135, -225, -30, -225, -225, 1009, 20,
- 2135, -225, -225, -225, -225, 2135, -225, 1089, 2135, -225,
- -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
- -225, -225, -225, -225, 2135, 2135, -225, -225, 34, 1322,
- -225, -225, -225, -225, 1009, -225, -225, -225, -225, -225,
- -225, -225, -225, -51, -225, -225, -225, -225, -225, -41,
- -38, -225, -225, -225, -225, 929, 929, 929, 929, 437,
- -29, -225, -225, -225, -225, -225, -225, 2179, 2135, -10,
- 847, -9, 519, 2135, 929, -225, -225, -35, -5, 929,
- 929, -2, -1, 601, 3, 7, 2135, -225, -225, 9,
- 683, -225, -225, 2135, -225, -225, -225, 2214, -31, -17,
- -12, -78, -66, -225, 2365, 5, 10, 929, 1828, 929,
- 929, 929, 929, 929, 929, 929, 929, 929, 929, 929,
- 929, 929, 929, 929, 929, 929, 12, -225, -225, 310,
- -225, 2135, 1169, 1169, 1249, 2135, 2135, 155, 929, -225,
- -225, -225, 2227, 47, 2265, -225, -225, 929, -23, 765,
- 2365, -225, -225, 52, -225, -225, 16, -225, -225, -225,
- 929, 929, -225, 929, 2075, -225, -225, 929, 15, 1890,
- 83, -26, -26, -26, -26, 189, 189, -225, -44, -26,
- -26, -26, -26, -44, -37, -37, -225, -225, 1890, 929,
- -225, 21, 23, 24, 10, 929, 929, 929, 929, 929,
- 929, 929, 929, 929, 929, 929, 929, 929, 929, 929,
- 929, 929, 929, 929, 1890, 2278, 2135, -225, -225, 25,
- -225, -225, 79, 2378, 929, 1890, 2365, 2365, 2365, -31,
- -17, 26, -225, 2365, -225, -225, -225, 1384, -225, -225,
- 1952, 1890, -61, -225, -225, -225, -26, -26, -26, -26,
- 189, 189, -225, -44, -26, -26, -26, -26, -44, -37,
- -37, -225, -225, 10, 2164, 1447, -225, 2135, -23, 929,
- 2365, 1516, 2014, 29, -225, 1890, -225, -225, 74, 929,
- 31, 33, -225, 2365, 2135, 1890, -225, -225, 1578, 929,
- 2315, -225, 1890, -16, -225, 1641, 35, 2328, 1890, 1890,
- -225, 2135, 36, -225, 1890, 1704, -225, -225, 1766, 37,
- 38, -225, -225
+ 1275, -224, -224, -224, -224, -224, -224, -33, -224, 2075,
+ 808, 887, -224, -224, 2075, -224, -16, -224, -224, 966,
+ 31, 2075, -224, -224, -224, -224, 2075, -224, 808, 2075,
+ -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+ -224, -224, -224, -224, -224, 2075, 2075, -224, -224, 44,
+ 1275, -224, -224, -224, -224, 966, -224, -224, -224, -224,
+ -224, -224, -224, -224, -55, -224, -224, -224, -224, -224,
+ -15, -24, -224, -224, -224, -224, 887, 887, 887, 887,
+ 887, 727, 322, -5, -9, -6, -224, -224, -224, -224,
+ -224, -224, 403, 887, 2119, 2075, 15, 19, 484, 2075,
+ 887, -224, -224, 10, 21, 24, 26, 27, 28, 2075,
+ -224, -224, 29, 565, -224, -224, 2075, 646, 2320, -224,
+ -224, -224, -224, 2154, -2, 25, 5, -64, -31, -224,
+ 2320, 30, -1, 887, -224, -224, 84, 887, 887, 887,
+ 887, 1045, 1045, 1203, 887, 887, 1124, 887, 887, 887,
+ 887, 887, 887, 887, 887, -224, -224, -224, 2207, 2167,
+ 1773, 887, 887, 887, 887, 33, -224, -224, 2075, 2075,
+ 2075, 68, 2220, -224, -224, 887, -61, -224, -224, -224,
+ -224, 36, -224, -224, 89, 2355, 887, -224, 887, 887,
+ -224, 887, 2016, -224, -224, 887, 35, 887, -42, -42,
+ -42, -42, 178, 178, -224, -49, -42, -42, -42, -42,
+ -49, -35, -35, -224, -224, -1, 887, 887, 887, 887,
+ 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
+ 887, 887, 887, 887, 1834, 101, 1834, -224, 40, 41,
+ 42, 887, 1834, 2257, 2075, -224, -224, 60, -224, -224,
+ 1834, 887, -23, 2320, 2320, 2320, -2, 25, 55, -224,
+ 2320, -224, 2320, -42, -42, -42, -42, 178, 178, -224,
+ -49, -42, -42, -42, -42, -49, -35, -35, -224, -224,
+ -1, -224, -224, 1336, -224, -224, 1895, 1834, -224, -224,
+ -224, 2104, 1398, -224, 2075, -61, 1466, 2320, -224, 1956,
+ 62, -224, 1834, -224, 107, 887, 64, 65, -224, 2075,
+ 1834, -224, -224, 1527, 887, 2270, -224, 1834, 2, -224,
+ 1589, 66, 2307, 1834, 1834, -224, 2075, 75, -224, 1834,
+ 1651, -224, -224, 1712, 76, 77, -224, -224
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -814,59 +813,59 @@ static const yytype_int16 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 24, 28, 31, 47, 56, 30, 0, 32, 60,
- 0, 33, 35, 0, 39, 40, 42, 45, 78, 46,
- 48, 51, 54, 57, 55, 0, 43, 78, 60, 26,
- 44, 41, 38, 25, 27, 49, 29, 36, 37, 59,
- 53, 34, 58, 50, 60, 0, 52, 5, 0, 2,
- 3, 6, 7, 8, 78, 9, 64, 68, 69, 70,
- 65, 66, 67, 0, 77, 40, 46, 48, 62, 0,
- 61, 114, 115, 117, 116, 41, 0, 0, 0, 177,
- 122, 136, 120, 121, 137, 138, 141, 0, 60, 0,
- 0, 0, 79, 0, 0, 122, 124, 0, 0, 32,
- 39, 0, 0, 79, 0, 0, 60, 1, 4, 0,
- 79, 76, 96, 0, 118, 134, 135, 0, 117, 116,
- 0, 122, 0, 128, 179, 0, 178, 177, 0, 0,
+ 80, 0, 33, 35, 0, 39, 40, 42, 45, 80,
+ 46, 48, 51, 54, 57, 55, 0, 43, 80, 60,
+ 26, 44, 41, 38, 25, 27, 49, 29, 36, 37,
+ 59, 53, 34, 58, 50, 60, 0, 52, 5, 0,
+ 2, 3, 6, 7, 8, 80, 9, 64, 68, 69,
+ 70, 65, 66, 67, 0, 79, 40, 46, 48, 62,
+ 0, 61, 116, 117, 119, 118, 32, 39, 41, 0,
+ 0, 0, 179, 124, 0, 0, 138, 122, 123, 139,
+ 140, 143, 81, 0, 0, 60, 0, 0, 81, 0,
+ 0, 124, 126, 0, 0, 0, 0, 0, 0, 60,
+ 1, 4, 0, 81, 78, 98, 0, 87, 88, 120,
+ 136, 137, 85, 0, 119, 118, 0, 124, 0, 130,
+ 181, 0, 180, 179, 73, 74, 42, 0, 0, 0,
+ 0, 26, 44, 38, 0, 0, 49, 0, 0, 0,
+ 0, 0, 0, 0, 0, 141, 142, 161, 83, 0,
+ 0, 0, 0, 0, 0, 0, 77, 72, 35, 25,
+ 27, 0, 0, 96, 97, 0, 13, 75, 76, 100,
+ 99, 0, 71, 63, 42, 91, 0, 135, 0, 0,
+ 128, 0, 0, 129, 127, 0, 0, 0, 153, 154,
+ 151, 152, 155, 156, 148, 158, 159, 160, 150, 149,
+ 157, 144, 145, 146, 147, 82, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 75, 83, 0,
- 72, 35, 26, 44, 38, 25, 27, 49, 0, 139,
- 140, 159, 81, 0, 0, 94, 95, 0, 13, 85,
- 86, 73, 74, 42, 98, 97, 0, 71, 63, 133,
- 0, 0, 126, 0, 0, 127, 125, 0, 0, 108,
- 99, 151, 152, 149, 150, 153, 154, 146, 156, 157,
- 158, 148, 147, 155, 142, 143, 144, 145, 108, 0,
- 123, 0, 0, 0, 80, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 108, 0, 0, 17, 18, 11,
- 14, 15, 42, 89, 0, 108, 132, 130, 131, 0,
- 0, 0, 129, 180, 119, 112, 113, 0, 109, 110,
- 0, 10, 0, 90, 91, 92, 169, 170, 167, 168,
- 171, 172, 164, 174, 175, 176, 166, 165, 173, 160,
- 161, 162, 163, 82, 0, 0, 93, 60, 0, 0,
- 88, 20, 0, 0, 111, 108, 101, 84, 0, 0,
- 0, 0, 16, 87, 21, 108, 103, 100, 0, 0,
- 0, 105, 108, 0, 22, 0, 0, 0, 108, 12,
- 19, 0, 0, 102, 108, 0, 23, 104, 0, 0,
- 0, 106, 107
+ 0, 0, 0, 0, 110, 101, 110, 125, 0, 0,
+ 0, 0, 110, 0, 0, 17, 18, 11, 14, 15,
+ 110, 0, 0, 134, 132, 133, 0, 0, 0, 131,
+ 182, 121, 90, 171, 172, 169, 170, 173, 174, 166,
+ 176, 177, 178, 168, 167, 175, 162, 163, 164, 165,
+ 84, 114, 115, 0, 111, 112, 0, 10, 92, 93,
+ 94, 0, 0, 95, 60, 0, 20, 89, 86, 0,
+ 0, 113, 110, 103, 0, 0, 0, 0, 16, 21,
+ 110, 105, 102, 0, 0, 0, 107, 110, 0, 22,
+ 0, 0, 0, 110, 12, 19, 0, 0, 104, 110,
+ 0, 23, 106, 0, 0, 0, 108, 109
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -225, -225, -225, 77, -225, -225, -225, -225, -225, -161,
- -225, -225, 0, -25, -225, 4, -225, -225, -11, -225,
- -225, -225, -225, -225, -225, -225, -203, -225, -224, -86,
- -18, -82, -225, -225, -225, -55, -80, -225, -7, -225,
- 200, -39, 8, -157
+ -224, -224, -224, 115, -224, -224, -224, -224, -224, -129,
+ -224, -224, 0, -28, -224, 4, -224, -224, -12, 143,
+ -224, -224, -224, -224, -224, -224, -223, -224, -222, -62,
+ -11, -66, -224, -224, -224, -19, -20, -224, -21, -224,
+ -8, 57, 39, -149
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 48, 49, 50, 51, 52, 238, 239, 240, 241,
- 53, 313, 80, 69, 70, 256, 56, 57, 91, 102,
- 58, 167, 59, 60, 61, 62, 257, 258, 259, 81,
- 82, 211, 97, 83, 122, 123, 84, 85, 86, 161,
- 124, 162, 125, 126
+ 0, 49, 50, 51, 52, 53, 246, 247, 248, 249,
+ 54, 318, 83, 70, 71, 282, 57, 58, 84, 85,
+ 59, 175, 60, 61, 62, 63, 283, 284, 285, 86,
+ 87, 238, 103, 88, 128, 129, 89, 90, 91, 157,
+ 130, 158, 131, 132
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -874,504 +873,498 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 54, 214, 96, 104, 55, 261, 159, 63, 165, 68,
- 89, 127, 160, 88, 135, 183, 101, 159, 166, 105,
- 95, 135, 184, 160, 159, 98, 185, 187, 68, 297,
- 160, 285, 135, 294, 107, 136, 111, 294, 142, 143,
- 144, 145, 291, 109, 68, 106, 112, 144, 145, 54,
- 113, 236, 262, 55, 64, 141, 142, 143, 144, 145,
- 127, 294, 180, 146, 237, 93, 94, 294, 114, 115,
- 116, 320, 321, 212, 213, 283, 181, 147, 150, 121,
- 182, 176, 168, 159, 294, 171, 172, 244, 68, 160,
- 174, 294, 308, 163, 175, 294, 177, 186, 187, 208,
- 233, 294, 315, 245, 294, 254, 68, 260, 263, 319,
- 264, 265, 288, 178, 289, 325, 307, 309, 311, 183,
- 312, 328, 323, 327, 331, 332, 108, 302, 54, 252,
- 243, 0, 190, 210, 0, 188, 0, 210, 210, 0,
+ 55, 107, 92, 94, 56, 215, 64, 97, 163, 69,
+ 102, 98, 244, 287, 95, 163, 105, 108, 144, 292,
+ 92, 101, 163, 96, 133, 245, 104, 296, 191, 69,
+ 155, 114, 150, 151, 152, 153, 155, 252, 149, 150,
+ 151, 152, 153, 112, 110, 69, 109, 113, 152, 153,
+ 55, 155, 173, 65, 56, 155, 192, 119, 120, 121,
+ 193, 301, 174, 116, 195, 301, 298, 165, 117, 118,
+ 301, 115, 156, 123, 301, 99, 100, 134, 156, 313,
+ 135, 181, 127, 133, 280, 159, 195, 320, 325, 326,
+ 188, 301, 172, 156, 324, 69, 190, 156, 301, 171,
+ 330, 166, 301, 239, 240, 167, 333, 176, 301, 69,
+ 177, 301, 178, 179, 180, 182, 183, 189, 197, 236,
+ 241, 194, 250, 251, 261, 286, 288, 289, 290, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, 214, 295, 191, 312, 314,
+ 316, 317, 328, 202, 203, 204, 207, 237, 237, 237,
+ 55, 332, 336, 337, 235, 111, 308, 243, 101, 101,
+ 101, 106, 196, 259, 185, 0, 0, 0, 0, 0,
+ 253, 254, 0, 255, 0, 0, 0, 260, 0, 262,
+ 0, 0, 258, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 0, 0, 0, 137, 138,
+ 139, 140, 0, 291, 55, 163, 55, 0, 144, 145,
+ 164, 0, 55, 297, 294, 0, 0, 0, 0, 0,
+ 55, 0, 0, 0, 0, 0, 147, 148, 149, 150,
+ 151, 152, 153, 0, 0, 0, 307, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 95, 0, 0, 0, 95, 95, 0, 0, 0,
- 71, 0, 0, 0, 0, 72, 0, 0, 1, 73,
- 74, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 251, 0, 0, 11, 12, 54,
- 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 0, 0, 0, 0, 54, 0,
- 87, 0, 75, 32, 33, 34, 0, 0, 92, 36,
- 37, 38, 39, 40, 41, 42, 43, 103, 0, 0,
- 0, 0, 0, 46, 54, 0, 287, 76, 77, 0,
- 129, 130, 131, 132, 78, 54, 79, 135, 0, 0,
- 136, 137, 138, 0, 110, 0, 0, 54, 0, 0,
- 54, 54, 301, 0, 296, 0, 0, 0, 139, 140,
- 141, 142, 143, 144, 145, 0, 0, 0, 117, 0,
- 0, 0, 0, 0, 0, 54, 0, 68, 0, 0,
- 149, 54, 54, 0, 164, 54, 306, 0, 0, 169,
- 170, 0, 0, 0, 314, 54, 0, 0, 54, 0,
- 0, 0, 54, 0, 0, 54, 0, 0, 54, 54,
- 0, 326, 0, 0, 54, 54, 0, 0, 54, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 0, 0, 0, 0,
- 0, 0, 195, 196, 197, 0, 0, 200, 0, 0,
- 0, 129, 130, 131, 132, 133, 134, 235, 135, 0,
- 0, 136, 137, 138, 0, 0, 0, 0, 0, 0,
- 246, 247, 0, 248, 0, 0, 0, 253, 0, 139,
- 140, 141, 142, 143, 144, 145, 0, 0, 209, 0,
- 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- 281, 282, 0, 284, 0, 0, 0, 0, 0, 0,
- 0, 0, 71, 0, 290, 0, 0, 72, 0, 0,
- 1, 118, 119, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 0, 11,
- 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
- 21, 22, 23, 24, 0, 26, 0, 0, 0, 303,
- 0, 0, 29, 30, 75, 32, 33, 34, 0, 310,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 317,
- 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
- 77, 0, 0, 0, 71, 0, 78, 0, 79, 72,
- 120, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 11, 151, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 129, 130, 131, 132, 152, 153, 75, 154, 155, 156,
- 136, 137, 157, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 139, 140,
- 141, 142, 143, 144, 145, 0, 71, 158, 78, 0,
- 79, 72, 0, 0, 1, 73, 74, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 0, 11, 12, 0, 14, 65, 173, 17,
- 0, 66, 67, 0, 21, 22, 23, 24, 0, 26,
- 0, 0, 129, 130, 131, 132, 152, 153, 75, 154,
- 33, 34, 136, 137, 157, 36, 37, 38, 39, 40,
- 41, 42, 43, 0, 0, 0, 0, 0, 0, 46,
- 139, 140, 141, 142, 143, 144, 145, 0, 71, 158,
- 78, 0, 79, 72, 0, 0, 1, 73, 74, 0,
+ 0, 0, 0, 55, 0, 0, 55, 55, 0, 0,
+ 303, 0, 55, 0, 69, 0, 55, 315, 0, 55,
+ 0, 0, 55, 311, 0, 0, 322, 0, 0, 319,
+ 55, 0, 0, 55, 0, 0, 0, 55, 0, 0,
+ 55, 0, 0, 55, 55, 0, 331, 72, 0, 55,
+ 55, 0, 73, 55, 0, 1, 124, 125, 0, 0,
+ 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
+ 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 78, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 0, 0, 0, 0, 47,
+ 0, 0, 0, 79, 80, 0, 0, 0, 72, 0,
+ 93, 0, 82, 73, 126, 0, 1, 74, 75, 0,
0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 0, 11, 12, 0, 14, 65,
- 16, 17, 0, 66, 67, 0, 21, 22, 23, 24,
- 0, 26, 0, 0, 129, 130, 131, 132, 152, 153,
- 75, 154, 33, 34, 136, 137, 157, 36, 37, 38,
- 39, 40, 41, 42, 43, 0, 0, 0, 0, 0,
- 0, 46, 139, 140, 141, 142, 143, 144, 145, 0,
- 71, 158, 78, 0, 79, 72, 0, 0, 1, 73,
- 74, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 0, 11, 12, 0,
- 14, 65, 242, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 0, 0, 129, 130, 131, 132,
- 152, 153, 75, 154, 33, 34, 136, 137, 157, 36,
- 37, 38, 39, 40, 41, 42, 43, 0, 0, 0,
- 0, 0, 0, 46, 139, 140, 141, 142, 143, 144,
- 145, 0, 71, 0, 78, 0, 79, 72, 0, 0,
- 1, 73, 74, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 0, 11,
- 12, 0, 14, 65, 16, 17, 0, 66, 67, 0,
- 21, 22, 23, 24, 0, 26, 0, 0, 0, 0,
- 0, 0, 29, 30, 75, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 0,
- 0, 0, 0, 0, 0, 46, 0, 0, 0, 76,
- 77, 0, 0, 0, 71, 0, 78, 148, 79, 72,
- 0, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 76, 77, 0, 71, 0, 0, 0, 78, 72,
- 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 76, 77, 0, 71, 0, 0, 0, 90, 72,
- 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 99, 0, 0, 0,
- 0, 11, 12, 0, 100, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 0, 0, 0, 0, 29, 30, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 76, 77, 0, 71, 0, 0, 0, 90, 72,
- 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 75, 32, 33, 34,
- 0, 0, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 76, 77, 0, 71, 0, 0, 0, 78, 72,
- 79, 0, 1, 73, 74, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 11, 12, 0, 14, 65, 16, 17, 0, 66,
- 67, 0, 21, 22, 23, 24, 0, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 75, 0, 33, 34,
- 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 78, 0,
- 79, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 0, 0, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 25,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 1, 0, 0,
- 46, 0, 0, 2, 3, 4, 5, 6, 292, 47,
- 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 293,
- 1, 0, 46, 0, 0, 0, 2, 3, 4, 5,
- 6, 255, 0, 7, 8, 9, 0, 0, 10, 11,
- 12, 0, 14, 15, 16, 17, 18, 19, 20, 0,
- 21, 22, 23, 24, 0, 26, 27, 28, 0, 0,
- 0, 0, 29, 30, 31, 32, 33, 34, 0, 0,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 0, 300, 0, 46, 0, 0, 0, 1,
- 0, 0, 304, 0, 255, 2, 3, 4, 5, 6,
- 0, 0, 7, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 1, 0, 0, 46, 0, 0, 2, 3, 4,
- 5, 6, 0, 255, 7, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 316, 1, 0, 46, 0, 0, 0,
- 2, 3, 4, 5, 6, 255, 0, 7, 8, 9,
- 0, 0, 10, 11, 12, 0, 14, 15, 16, 17,
- 18, 19, 20, 0, 21, 22, 23, 24, 0, 26,
- 27, 28, 0, 0, 0, 0, 29, 30, 31, 32,
- 33, 34, 0, 0, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 322, 1, 0, 46,
- 0, 0, 0, 2, 3, 4, 5, 6, 255, 0,
- 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 1,
- 329, 0, 46, 0, 0, 2, 3, 4, 5, 6,
- 0, 255, 7, 8, 9, 0, 0, 10, 11, 12,
- 0, 14, 15, 16, 17, 18, 19, 20, 0, 21,
- 22, 23, 24, 0, 26, 27, 28, 0, 0, 0,
- 0, 29, 30, 31, 32, 33, 34, 0, 0, 35,
+ 8, 0, 0, 0, 12, 13, 0, 15, 66, 136,
+ 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 137, 138, 139, 140, 141, 142, 78,
+ 143, 34, 35, 144, 145, 146, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
+ 47, 147, 148, 149, 150, 151, 152, 153, 0, 72,
+ 154, 93, 0, 82, 73, 0, 0, 1, 74, 75,
+ 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 168, 0, 15, 66,
+ 17, 18, 0, 67, 68, 0, 22, 23, 24, 25,
+ 0, 27, 0, 0, 137, 138, 139, 140, 141, 142,
+ 78, 143, 169, 170, 144, 145, 146, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 0, 0, 0,
+ 0, 47, 147, 148, 149, 150, 151, 152, 153, 0,
+ 72, 154, 93, 0, 82, 73, 0, 0, 1, 74,
+ 75, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
+ 25, 0, 27, 0, 0, 137, 138, 139, 140, 141,
+ 142, 78, 143, 34, 35, 144, 145, 146, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
+ 0, 0, 47, 147, 148, 149, 150, 151, 152, 153,
+ 0, 72, 154, 93, 0, 82, 73, 0, 0, 1,
+ 74, 75, 0, 0, 0, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 66, 184, 18, 0, 67, 68, 0, 22, 23,
+ 24, 25, 0, 27, 0, 0, 137, 138, 139, 140,
+ 141, 142, 78, 143, 34, 35, 144, 145, 146, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 0,
+ 0, 0, 0, 47, 147, 148, 149, 150, 151, 152,
+ 153, 0, 72, 0, 93, 0, 82, 73, 0, 0,
+ 1, 74, 75, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 66, 17, 18, 0, 67, 68, 0, 22,
+ 23, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 78, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 0, 0, 0, 0, 47, 0, 0, 0, 79, 80,
+ 0, 0, 0, 72, 0, 93, 122, 82, 73, 0,
+ 0, 1, 74, 75, 0, 0, 0, 2, 3, 4,
+ 5, 6, 0, 0, 0, 76, 0, 0, 0, 12,
+ 13, 0, 77, 66, 17, 18, 0, 67, 68, 0,
+ 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 30, 31, 78, 33, 34, 35, 0, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 1, 330, 0, 46, 0, 0, 2, 3, 4,
- 5, 6, 0, 255, 7, 8, 9, 0, 0, 10,
- 11, 12, 0, 14, 15, 16, 17, 18, 19, 20,
- 0, 21, 22, 23, 24, 0, 26, 27, 28, 0,
- 0, 0, 0, 29, 30, 31, 32, 33, 34, 0,
- 0, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 1, 0, 0, 46, 0, 0, 2,
- 3, 4, 5, 6, 0, 189, 7, 8, 9, 0,
- 0, 10, 11, 12, 0, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 23, 24, 0, 26, 27,
- 28, 0, 0, 0, 0, 29, 30, 31, 32, 33,
- 34, 0, 0, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 1, 0, 0, 46, 0,
- 0, 2, 3, 4, 5, 6, 0, 255, 7, 8,
- 9, 0, 0, 10, 11, 12, 0, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 23, 24, 0,
- 26, 27, 28, 0, 0, 0, 0, 29, 30, 31,
- 32, 33, 34, 0, 0, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 1, 0, 0,
- 46, 0, 0, 2, 3, 4, 5, 6, 0, 295,
- 7, 8, 9, 0, 0, 10, 11, 12, 0, 14,
- 15, 16, 17, 18, 19, 20, 0, 21, 22, 23,
- 24, 0, 26, 27, 28, 0, 0, 0, 0, 29,
- 30, 31, 32, 33, 34, 0, 0, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 1, 249,
- 250, 0, 46, 0, 2, 3, 4, 5, 6, 0,
- 0, 305, 8, 0, 0, 0, 0, 11, 12, 0,
- 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 0, 0, 0, 0, 0, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 0, 1, 0,
- 0, 0, 0, 46, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 0, 11, 12, 0,
- 14, 65, 16, 17, 0, 66, 67, 0, 21, 22,
- 23, 24, 0, 26, 0, 0, 0, 298, 0, 0,
- 29, 30, 31, 32, 33, 34, 0, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 299, 0, 0,
- 0, 0, 0, 46, 0, 129, 130, 131, 132, 133,
- 134, 128, 135, 0, 0, 136, 137, 138, 0, 0,
- 129, 130, 131, 132, 133, 134, 0, 135, 0, 0,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 0, 0, 0, 0, 0, 0, 0, 0, 139, 140,
- 141, 142, 143, 144, 145, 129, 130, 131, 132, 133,
- 134, 0, 135, 0, 0, 136, 137, 138, 215, 216,
- 217, 218, 219, 220, 0, 221, 0, 0, 222, 223,
- 224, 0, 0, 139, 140, 141, 142, 143, 144, 145,
- 0, 0, 0, 0, 179, 0, 225, 226, 227, 228,
- 229, 230, 231, 0, 0, 232, 129, 130, 131, 132,
- 133, 134, 0, 135, 0, 0, 136, 137, 138, 129,
- 130, 131, 132, 133, 134, 0, 135, 0, 0, 136,
- 137, 138, 0, 0, 139, 140, 141, 142, 143, 144,
- 145, 0, 234, 0, 0, 0, 0, 139, 140, 141,
- 142, 143, 144, 145, 0, 286, 129, 130, 131, 132,
- 133, 134, 0, 135, 0, 0, 136, 137, 138, 129,
- 130, 131, 132, 133, 134, 0, 135, 0, 0, 136,
- 137, 138, 0, 0, 139, 140, 141, 142, 143, 144,
- 145, 0, 318, 0, 0, 0, 0, 139, 140, 141,
- 142, 143, 144, 145, 0, 324, 129, 130, 131, 132,
- 133, 134, 0, 135, 0, 0, 136, 137, 138, 215,
- 216, 217, 218, 219, 220, 0, 221, 0, 0, 222,
- 223, 224, 0, 0, 139, 140, 141, 142, 143, 144,
- 145, 0, 0, 0, 0, 0, 0, 225, 226, 227,
- 228, 229, 230, 231
+ 0, 0, 0, 0, 0, 47, 0, 0, 0, 79,
+ 80, 0, 72, 0, 0, 0, 81, 73, 82, 0,
+ 1, 74, 75, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 66, 17, 18, 0, 67, 68, 0, 22,
+ 23, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 78, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
+ 0, 0, 0, 0, 47, 0, 0, 0, 79, 80,
+ 0, 72, 0, 0, 0, 93, 73, 82, 0, 1,
+ 74, 75, 0, 0, 0, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 66, 17, 18, 0, 67, 68, 0, 22, 23,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 30, 31, 78, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 0, 0,
+ 0, 0, 0, 47, 0, 0, 0, 79, 80, 0,
+ 72, 0, 0, 0, 81, 73, 82, 0, 1, 74,
+ 75, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
+ 25, 0, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 78, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
+ 0, 0, 47, 0, 0, 0, 79, 80, 0, 72,
+ 0, 0, 0, 93, 73, 82, 0, 1, 74, 75,
+ 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 66,
+ 17, 18, 0, 67, 68, 0, 22, 23, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 78, 33, 34, 35, 0, 0, 0, 37, 38, 39,
+ 40, 41, 42, 43, 44, 0, 0, 0, 0, 0,
+ 0, 47, 0, 0, 0, 79, 80, 0, 72, 0,
+ 0, 0, 93, 73, 82, 0, 1, 74, 75, 0,
+ 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 66, 17,
+ 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 0, 0, 78,
+ 0, 34, 35, 0, 0, 0, 37, 38, 39, 40,
+ 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
+ 47, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 93, 0, 82, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 0, 1,
+ 0, 0, 47, 0, 0, 2, 3, 4, 5, 6,
+ 299, 48, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 300, 1, 0, 47, 0, 0, 0, 2, 3, 4,
+ 5, 6, 281, 0, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 0, 306, 0, 47, 0, 0, 0, 1,
+ 0, 0, 309, 0, 281, 2, 3, 4, 5, 6,
+ 0, 0, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 1, 0, 0, 47, 0, 0, 2, 3, 4, 5,
+ 6, 0, 281, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
+ 0, 321, 1, 0, 47, 0, 0, 0, 2, 3,
+ 4, 5, 6, 281, 0, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 0, 0, 327, 1, 0, 47, 0, 0, 0,
+ 2, 3, 4, 5, 6, 281, 0, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 0, 0, 1, 334, 0, 47, 0,
+ 0, 2, 3, 4, 5, 6, 0, 281, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 0, 0, 1, 335, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 0, 281, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
+ 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 0, 0, 1, 0, 0,
+ 47, 0, 0, 2, 3, 4, 5, 6, 0, 234,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
+ 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
+ 281, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
+ 0, 0, 47, 0, 0, 2, 3, 4, 5, 6,
+ 0, 302, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 1,
+ 256, 257, 0, 47, 0, 2, 3, 4, 5, 6,
+ 0, 0, 310, 8, 0, 0, 0, 12, 13, 0,
+ 15, 66, 17, 18, 0, 67, 68, 0, 22, 23,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 0, 1, 0,
+ 0, 0, 0, 47, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
+ 25, 0, 27, 0, 0, 0, 0, 304, 0, 30,
+ 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 305, 0, 0, 0,
+ 0, 0, 47, 0, 137, 138, 139, 140, 161, 162,
+ 160, 163, 0, 0, 144, 145, 164, 0, 0, 137,
+ 138, 139, 140, 161, 162, 0, 163, 0, 0, 144,
+ 145, 164, 147, 148, 149, 150, 151, 152, 153, 0,
+ 0, 0, 0, 0, 0, 0, 0, 147, 148, 149,
+ 150, 151, 152, 153, 137, 138, 139, 140, 161, 162,
+ 0, 163, 0, 0, 144, 145, 164, 137, 138, 139,
+ 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
+ 0, 0, 147, 148, 149, 150, 151, 152, 153, 0,
+ 0, 186, 0, 187, 0, 147, 148, 149, 150, 151,
+ 152, 153, 0, 0, 0, 0, 187, 216, 217, 218,
+ 219, 220, 221, 0, 222, 0, 0, 223, 224, 225,
+ 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
+ 144, 145, 164, 0, 0, 226, 227, 228, 229, 230,
+ 231, 232, 0, 0, 233, 0, 0, 0, 147, 148,
+ 149, 150, 151, 152, 153, 0, 242, 137, 138, 139,
+ 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
+ 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
+ 144, 145, 164, 0, 0, 147, 148, 149, 150, 151,
+ 152, 153, 0, 293, 0, 0, 0, 0, 147, 148,
+ 149, 150, 151, 152, 153, 0, 323, 137, 138, 139,
+ 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
+ 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
+ 144, 145, 164, 0, 0, 147, 148, 149, 150, 151,
+ 152, 153, 0, 329, 0, 0, 0, 0, 147, 148,
+ 149, 150, 151, 152, 153, 216, 217, 218, 219, 220,
+ 221, 0, 222, 0, 0, 223, 224, 225, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 226, 227, 228, 229, 230, 231, 232
};
static const yytype_int16 yycheck[] =
{
- 0, 158, 20, 28, 0, 208, 92, 40, 43, 9,
- 40, 89, 92, 13, 58, 93, 27, 103, 53, 44,
- 20, 58, 88, 103, 110, 25, 92, 88, 28, 90,
- 110, 234, 58, 257, 0, 61, 87, 261, 82, 83,
- 84, 85, 245, 54, 44, 45, 87, 84, 85, 49,
- 88, 74, 209, 49, 87, 81, 82, 83, 84, 85,
- 89, 285, 93, 88, 87, 45, 46, 291, 75, 76,
- 77, 87, 88, 155, 156, 232, 93, 87, 87, 79,
- 92, 106, 87, 169, 308, 87, 87, 35, 88, 169,
- 87, 315, 295, 93, 87, 319, 87, 92, 88, 87,
- 53, 325, 305, 87, 328, 90, 106, 24, 87, 312,
- 87, 87, 87, 113, 35, 318, 87, 43, 87, 93,
- 87, 324, 87, 87, 87, 87, 49, 288, 128, 184,
- 169, -1, 128, 151, -1, 127, -1, 155, 156, -1,
+ 0, 29, 10, 11, 0, 154, 39, 19, 57, 9,
+ 21, 19, 73, 236, 14, 57, 28, 45, 60, 242,
+ 28, 21, 57, 39, 88, 86, 26, 250, 92, 29,
+ 92, 86, 81, 82, 83, 84, 98, 186, 80, 81,
+ 82, 83, 84, 55, 0, 45, 46, 55, 83, 84,
+ 50, 113, 42, 86, 50, 117, 87, 78, 79, 80,
+ 91, 283, 52, 87, 87, 287, 89, 95, 76, 77,
+ 292, 86, 92, 81, 296, 44, 45, 86, 98, 302,
+ 86, 109, 82, 88, 233, 93, 87, 310, 86, 87,
+ 92, 313, 100, 113, 317, 95, 91, 117, 320, 99,
+ 323, 86, 324, 169, 170, 86, 329, 86, 330, 109,
+ 86, 333, 86, 86, 86, 86, 116, 92, 34, 86,
+ 52, 91, 86, 34, 89, 24, 86, 86, 86, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 86, 92, 86, 42,
+ 86, 86, 86, 161, 162, 163, 164, 168, 169, 170,
+ 160, 86, 86, 86, 160, 50, 295, 175, 168, 169,
+ 170, 28, 133, 192, 117, -1, -1, -1, -1, -1,
+ 188, 189, -1, 191, -1, -1, -1, 195, -1, 197,
+ -1, -1, 192, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, -1, -1, -1, 50, 51,
+ 52, 53, -1, 241, 234, 57, 236, -1, 60, 61,
+ 62, -1, 242, 251, 244, -1, -1, -1, -1, -1,
+ 250, -1, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, 294, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 151, -1, -1, -1, 155, 156, -1, -1, -1,
- 5, -1, -1, -1, -1, 10, -1, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, 184, -1, -1, 32, 33, 189,
- 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, -1, -1, -1, -1, 208, -1,
- 10, -1, 57, 58, 59, 60, -1, -1, 18, 64,
- 65, 66, 67, 68, 69, 70, 71, 27, -1, -1,
- -1, -1, -1, 78, 234, -1, 236, 82, 83, -1,
- 51, 52, 53, 54, 89, 245, 91, 58, -1, -1,
- 61, 62, 63, -1, 54, -1, -1, 257, -1, -1,
- 260, 261, 287, -1, 260, -1, -1, -1, 79, 80,
- 81, 82, 83, 84, 85, -1, -1, -1, 78, -1,
- -1, -1, -1, -1, -1, 285, -1, 287, -1, -1,
- 90, 291, 292, -1, 94, 295, 292, -1, -1, 99,
- 100, -1, -1, -1, 304, 305, -1, -1, 308, -1,
- -1, -1, 312, -1, -1, 315, -1, -1, 318, 319,
- -1, 321, -1, -1, 324, 325, -1, -1, 328, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, -1, -1, -1, -1,
- -1, -1, 152, 153, 154, -1, -1, 157, -1, -1,
- -1, 51, 52, 53, 54, 55, 56, 167, 58, -1,
- -1, 61, 62, 63, -1, -1, -1, -1, -1, -1,
- 180, 181, -1, 183, -1, -1, -1, 187, -1, 79,
- 80, 81, 82, 83, 84, 85, -1, -1, 88, -1,
- 90, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, -1, 233, -1, -1, -1, -1, -1, -1,
- -1, -1, 5, -1, 244, -1, -1, 10, -1, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
- 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, -1, -1, -1, 289,
- -1, -1, 55, 56, 57, 58, 59, 60, -1, 299,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 309,
- -1, -1, -1, -1, -1, 78, -1, -1, -1, 82,
- 83, -1, -1, -1, 5, -1, 89, -1, 91, 10,
- 93, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, 79, 80,
- 81, 82, 83, 84, 85, -1, 5, 88, 89, -1,
- 91, 10, -1, -1, 13, 14, 15, -1, -1, -1,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, -1, 32, 33, -1, 35, 36, 37, 38,
- -1, 40, 41, -1, 43, 44, 45, 46, -1, 48,
- -1, -1, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, 85, -1, 5, 88,
- 89, -1, 91, 10, -1, -1, 13, 14, 15, -1,
+ -1, -1, -1, 283, -1, -1, 286, 287, -1, -1,
+ 286, -1, 292, -1, 294, -1, 296, 305, -1, 299,
+ -1, -1, 302, 299, -1, -1, 314, -1, -1, 309,
+ 310, -1, -1, 313, -1, -1, -1, 317, -1, -1,
+ 320, -1, -1, 323, 324, -1, 326, 5, -1, 329,
+ 330, -1, 10, 333, -1, 13, 14, 15, -1, -1,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ -1, -1, -1, 81, 82, -1, -1, -1, 5, -1,
+ 88, -1, 90, 10, 92, -1, 13, 14, 15, -1,
-1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, -1, 32, 33, -1, 35, 36,
- 37, 38, -1, 40, 41, -1, 43, 44, 45, 46,
- -1, 48, -1, -1, 51, 52, 53, 54, 55, 56,
+ 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, 85, -1,
- 5, 88, 89, -1, 91, 10, -1, -1, 13, 14,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
+ 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
+ -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, -1, -1, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ 5, 87, 88, -1, 90, 10, -1, -1, 13, 14,
15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, -1, 32, 33, -1,
- 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, -1, -1, 51, 52, 53, 54,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, -1, -1, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- 85, -1, 5, -1, 89, -1, 91, 10, -1, -1,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, 5, 87, 88, -1, 90, 10, -1, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, 5, -1, 88, -1, 90, 10, -1, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, -1, -1, 5, -1, 88, 89, 90, 10, -1,
+ -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
+ 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, -1, 32,
- 33, -1, 35, 36, 37, 38, -1, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
- -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
+ 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
+ -1, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
+ -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
+ -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
+ 56, 57, 58, 59, -1, -1, -1, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
+ -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
+ -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, -1, -1, 56,
+ -1, 58, 59, -1, -1, -1, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, -1, -1, -1, -1, 13, -1,
+ -1, 88, -1, 90, 19, 20, 21, 22, 23, -1,
+ -1, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, 46, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, -1, 13,
+ -1, -1, 77, -1, -1, 19, 20, 21, 22, 23,
+ 24, 86, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 74, 13, -1, 77, -1, -1, -1, 19, 20, 21,
+ 22, 23, 86, -1, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, -1, 75, -1, 77, -1, -1, -1, 13,
+ -1, -1, 16, -1, 86, 19, 20, 21, 22, 23,
+ -1, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 13, -1, -1, 77, -1, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, 78, -1, -1, -1, 82,
- 83, -1, -1, -1, 5, -1, 89, 90, 91, 10,
- -1, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
- 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
- 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
- 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, -1, -1, -1, 57, 58, 59, 60,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, 82, 83, -1, 5, -1, -1, -1, 89, 10,
- 91, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- -1, 32, 33, -1, 35, 36, 37, 38, -1, 40,
- 41, -1, 43, 44, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, -1, -1, -1, 57, -1, 59, 60,
- -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, 78, -1, -1,
- -1, -1, -1, -1, -1, 13, -1, -1, 89, -1,
- 91, 19, 20, 21, 22, 23, -1, -1, 26, 27,
- 28, -1, -1, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, 43, 44, 45, 46, 47,
- 48, 49, 50, -1, -1, -1, -1, 55, 56, 57,
- 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, -1, 13, -1, -1,
- 78, -1, -1, 19, 20, 21, 22, 23, 24, 87,
- 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
- 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
- 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
- 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, -1, -1, 75,
- 13, -1, 78, -1, -1, -1, 19, 20, 21, 22,
- 23, 87, -1, 26, 27, 28, -1, -1, 31, 32,
- 33, -1, 35, 36, 37, 38, 39, 40, 41, -1,
- 43, 44, 45, 46, -1, 48, 49, 50, -1, -1,
- -1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- -1, -1, -1, 76, -1, 78, -1, -1, -1, 13,
- -1, -1, 16, -1, 87, 19, 20, 21, 22, 23,
- -1, -1, 26, 27, 28, -1, -1, 31, 32, 33,
- -1, 35, 36, 37, 38, 39, 40, 41, -1, 43,
- 44, 45, 46, -1, 48, 49, 50, -1, -1, -1,
- -1, 55, 56, 57, 58, 59, 60, -1, -1, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
- -1, 13, -1, -1, 78, -1, -1, 19, 20, 21,
- 22, 23, -1, 87, 26, 27, 28, -1, -1, 31,
- 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
- -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
- -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, -1, -1, 75, 13, -1, 78, -1, -1, -1,
- 19, 20, 21, 22, 23, 87, -1, 26, 27, 28,
- -1, -1, 31, 32, 33, -1, 35, 36, 37, 38,
- 39, 40, 41, -1, 43, 44, 45, 46, -1, 48,
- 49, 50, -1, -1, -1, -1, 55, 56, 57, 58,
- 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, -1, -1, 75, 13, -1, 78,
- -1, -1, -1, 19, 20, 21, 22, 23, 87, -1,
- 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
- 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
- 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
- 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, -1, -1, 13,
- 76, -1, 78, -1, -1, 19, 20, 21, 22, 23,
- -1, 87, 26, 27, 28, -1, -1, 31, 32, 33,
- -1, 35, 36, 37, 38, 39, 40, 41, -1, 43,
- 44, 45, 46, -1, 48, 49, 50, -1, -1, -1,
- -1, 55, 56, 57, 58, 59, 60, -1, -1, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, -1,
- -1, 13, 76, -1, 78, -1, -1, 19, 20, 21,
- 22, 23, -1, 87, 26, 27, 28, -1, -1, 31,
- 32, 33, -1, 35, 36, 37, 38, 39, 40, 41,
- -1, 43, 44, 45, 46, -1, 48, 49, 50, -1,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, -1,
- -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, -1, -1, 13, -1, -1, 78, -1, -1, 19,
- 20, 21, 22, 23, -1, 87, 26, 27, 28, -1,
- -1, 31, 32, 33, -1, 35, 36, 37, 38, 39,
- 40, 41, -1, 43, 44, 45, 46, -1, 48, 49,
- 50, -1, -1, -1, -1, 55, 56, 57, 58, 59,
- 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, -1, -1, 13, -1, -1, 78, -1,
- -1, 19, 20, 21, 22, 23, -1, 87, 26, 27,
- 28, -1, -1, 31, 32, 33, -1, 35, 36, 37,
- 38, 39, 40, 41, -1, 43, 44, 45, 46, -1,
- 48, 49, 50, -1, -1, -1, -1, 55, 56, 57,
- 58, 59, 60, -1, -1, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, -1, -1, 13, -1, -1,
- 78, -1, -1, 19, 20, 21, 22, 23, -1, 87,
- 26, 27, 28, -1, -1, 31, 32, 33, -1, 35,
- 36, 37, 38, 39, 40, 41, -1, 43, 44, 45,
- 46, -1, 48, 49, 50, -1, -1, -1, -1, 55,
- 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, -1, 13, 14,
- 15, -1, 78, -1, 19, 20, 21, 22, 23, -1,
- -1, 87, 27, -1, -1, -1, -1, 32, 33, -1,
- 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, -1, -1, -1, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, 13, -1,
- -1, -1, -1, 78, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, -1, 32, 33, -1,
- 35, 36, 37, 38, -1, 40, 41, -1, 43, 44,
- 45, 46, -1, 48, -1, -1, -1, 23, -1, -1,
- 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 43, -1, -1,
- -1, -1, -1, 78, -1, 51, 52, 53, 54, 55,
- 56, 42, 58, -1, -1, 61, 62, 63, -1, -1,
- 51, 52, 53, 54, 55, 56, -1, 58, -1, -1,
- 61, 62, 63, 79, 80, 81, 82, 83, 84, 85,
- -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
- 81, 82, 83, 84, 85, 51, 52, 53, 54, 55,
- 56, -1, 58, -1, -1, 61, 62, 63, 51, 52,
- 53, 54, 55, 56, -1, 58, -1, -1, 61, 62,
- 63, -1, -1, 79, 80, 81, 82, 83, 84, 85,
- -1, -1, -1, -1, 90, -1, 79, 80, 81, 82,
- 83, 84, 85, -1, -1, 88, 51, 52, 53, 54,
- 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
- 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
- 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
- 85, -1, 87, -1, -1, -1, -1, 79, 80, 81,
- 82, 83, 84, 85, -1, 87, 51, 52, 53, 54,
- 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
- 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
- 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
- 85, -1, 87, -1, -1, -1, -1, 79, 80, 81,
- 82, 83, 84, 85, -1, 87, 51, 52, 53, 54,
- 55, 56, -1, 58, -1, -1, 61, 62, 63, 51,
- 52, 53, 54, 55, 56, -1, 58, -1, -1, 61,
- 62, 63, -1, -1, 79, 80, 81, 82, 83, 84,
- 85, -1, -1, -1, -1, -1, -1, 79, 80, 81,
- 82, 83, 84, 85
+ -1, 74, 13, -1, 77, -1, -1, -1, 19, 20,
+ 21, 22, 23, 86, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 74, 13, -1, 77, -1, -1, -1,
+ 19, 20, 21, 22, 23, 86, -1, 26, 27, 28,
+ 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, 75, -1, 77, -1,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, 75, -1, 77,
+ -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
+ 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
+ -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ -1, -1, 77, -1, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, 13,
+ 14, 15, -1, 77, -1, 19, 20, 21, 22, 23,
+ -1, -1, 86, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, 13, -1,
+ -1, -1, -1, 77, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, -1, -1, -1, -1, 23, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 42, -1, -1, -1,
+ -1, -1, 77, -1, 50, 51, 52, 53, 54, 55,
+ 41, 57, -1, -1, 60, 61, 62, -1, -1, 50,
+ 51, 52, 53, 54, 55, -1, 57, -1, -1, 60,
+ 61, 62, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
+ 81, 82, 83, 84, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, 87, -1, 89, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, -1, 89, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, 87, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1379,63 +1372,63 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 13, 19, 20, 21, 22, 23, 26, 27, 28,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 43, 44, 45, 46, 47, 48, 49, 50, 55,
- 56, 57, 58, 59, 60, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 78, 87, 95, 96,
- 97, 98, 99, 104, 106, 109, 110, 111, 114, 116,
- 117, 118, 119, 40, 87, 36, 40, 41, 106, 107,
- 108, 5, 10, 14, 15, 57, 82, 83, 89, 91,
- 106, 123, 124, 127, 130, 131, 132, 134, 106, 40,
- 89, 112, 134, 45, 46, 106, 124, 126, 106, 27,
- 35, 112, 113, 134, 107, 107, 106, 0, 97, 112,
- 134, 87, 87, 88, 132, 132, 132, 134, 14, 15,
- 93, 106, 128, 129, 134, 136, 137, 89, 42, 51,
- 52, 53, 54, 55, 56, 58, 61, 62, 63, 79,
- 80, 81, 82, 83, 84, 85, 107, 87, 90, 134,
- 87, 33, 55, 56, 58, 59, 60, 63, 88, 123,
- 130, 133, 135, 106, 134, 43, 53, 115, 87, 134,
- 134, 87, 87, 37, 87, 87, 107, 87, 106, 90,
- 93, 93, 92, 93, 88, 92, 92, 88, 136, 87,
- 109, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 87, 88,
- 124, 125, 125, 125, 137, 51, 52, 53, 54, 55,
- 56, 58, 61, 62, 63, 79, 80, 81, 82, 83,
- 84, 85, 88, 53, 87, 134, 74, 87, 100, 101,
- 102, 103, 37, 135, 35, 87, 134, 134, 134, 14,
- 15, 106, 129, 134, 90, 87, 109, 120, 121, 122,
- 24, 120, 137, 87, 87, 87, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 137, 134, 120, 87, 106, 87, 35,
- 134, 120, 24, 75, 122, 87, 109, 90, 23, 43,
- 76, 107, 103, 134, 16, 87, 109, 87, 120, 43,
- 134, 87, 87, 105, 106, 120, 75, 134, 87, 120,
- 87, 88, 75, 87, 87, 120, 106, 87, 120, 76,
- 76, 87, 87
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 42, 43, 44, 45, 46, 47, 48, 49,
+ 54, 55, 56, 57, 58, 59, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 77, 86, 94,
+ 95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
+ 115, 116, 117, 118, 39, 86, 35, 39, 40, 105,
+ 106, 107, 5, 10, 14, 15, 27, 34, 56, 81,
+ 82, 88, 90, 105, 111, 112, 122, 123, 126, 129,
+ 130, 131, 133, 88, 133, 105, 39, 111, 133, 44,
+ 45, 105, 123, 125, 105, 111, 112, 106, 106, 105,
+ 0, 96, 111, 133, 86, 86, 87, 133, 133, 131,
+ 131, 131, 89, 133, 14, 15, 92, 105, 127, 128,
+ 133, 135, 136, 88, 86, 86, 36, 50, 51, 52,
+ 53, 54, 55, 57, 60, 61, 62, 78, 79, 80,
+ 81, 82, 83, 84, 87, 122, 129, 132, 134, 133,
+ 41, 54, 55, 57, 62, 106, 86, 86, 32, 58,
+ 59, 105, 133, 42, 52, 114, 86, 86, 86, 86,
+ 86, 106, 86, 105, 36, 134, 87, 89, 92, 92,
+ 91, 92, 87, 91, 91, 87, 135, 34, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 136, 50, 51, 52, 53,
+ 54, 55, 57, 60, 61, 62, 78, 79, 80, 81,
+ 82, 83, 84, 87, 86, 108, 86, 123, 124, 124,
+ 124, 52, 86, 133, 73, 86, 99, 100, 101, 102,
+ 86, 34, 136, 133, 133, 133, 14, 15, 105, 128,
+ 133, 89, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 136, 86, 108, 119, 120, 121, 24, 119, 86, 86,
+ 86, 133, 119, 86, 105, 86, 119, 133, 89, 24,
+ 74, 121, 86, 108, 23, 42, 75, 106, 102, 16,
+ 86, 108, 86, 119, 42, 133, 86, 86, 104, 105,
+ 119, 74, 133, 86, 119, 86, 87, 74, 86, 86,
+ 119, 105, 86, 119, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 94, 95, 96, 96, 97, 97, 97, 97, 97,
- 98, 99, 100, 101, 101, 102, 102, 103, 103, 104,
- 104, 105, 105, 105, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 107, 107, 108, 108, 109, 109, 109, 109, 110, 110,
- 110, 111, 111, 111, 111, 111, 111, 111, 112, 112,
- 112, 112, 112, 112, 112, 113, 113, 113, 113, 113,
- 114, 114, 114, 114, 115, 115, 116, 116, 116, 117,
- 117, 118, 118, 118, 118, 119, 119, 119, 120, 120,
- 121, 121, 122, 122, 123, 123, 123, 123, 123, 123,
- 123, 123, 124, 125, 126, 127, 127, 127, 128, 128,
- 129, 129, 129, 130, 131, 131, 132, 132, 132, 133,
+ 0, 93, 94, 95, 95, 96, 96, 96, 96, 96,
+ 97, 98, 99, 100, 100, 101, 101, 102, 102, 103,
+ 103, 104, 104, 104, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
+ 106, 106, 107, 107, 108, 108, 108, 108, 109, 109,
+ 109, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 111, 111, 111, 111, 111, 111, 111, 112, 112, 112,
+ 112, 112, 113, 113, 113, 113, 114, 114, 115, 115,
+ 115, 116, 116, 117, 117, 117, 117, 118, 118, 118,
+ 119, 119, 120, 120, 121, 121, 122, 122, 122, 122,
+ 122, 122, 122, 122, 123, 124, 125, 126, 126, 126,
+ 127, 127, 128, 128, 128, 129, 130, 130, 131, 131,
+ 131, 132, 132, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 134, 134, 134, 134, 134, 134, 134, 134, 134,
134, 134, 134, 134, 134, 134, 134, 134, 134, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 136, 136, 137,
- 137
+ 135, 136, 136
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1448,18 +1441,18 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 3, 3, 3, 3, 3, 3, 2, 0, 1,
- 3, 2, 4, 2, 5, 2, 2, 5, 4, 3,
- 5, 5, 5, 5, 1, 1, 3, 3, 3, 4,
- 7, 6, 9, 7, 10, 7, 11, 12, 0, 1,
- 1, 2, 1, 1, 1, 1, 1, 1, 2, 4,
- 1, 1, 1, 1, 1, 3, 3, 3, 1, 3,
- 3, 3, 3, 3, 2, 2, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 2,
+ 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
+ 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
+ 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
+ 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
+ 2, 4, 1, 1, 1, 1, 1, 3, 3, 3,
+ 1, 3, 3, 3, 3, 3, 2, 2, 1, 1,
+ 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 0, 1, 1,
- 3
+ 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
+ 1, 1, 3
};
@@ -1733,49 +1726,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1737 "engines/director/lingo/lingo-gr.cpp"
+#line 1730 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1743 "engines/director/lingo/lingo-gr.cpp"
+#line 1736 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1749 "engines/director/lingo/lingo-gr.cpp"
+#line 1742 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1755 "engines/director/lingo/lingo-gr.cpp"
+#line 1748 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1761 "engines/director/lingo/lingo-gr.cpp"
+#line 1754 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1767 "engines/director/lingo/lingo-gr.cpp"
+#line 1760 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1773 "engines/director/lingo/lingo-gr.cpp"
+#line 1766 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1779 "engines/director/lingo/lingo-gr.cpp"
+#line 1772 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2043,7 +2036,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2047 "engines/director/lingo/lingo-gr.cpp"
+#line 2040 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2054,7 +2047,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2058 "engines/director/lingo/lingo-gr.cpp"
+#line 2051 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2064,37 +2057,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2068 "engines/director/lingo/lingo-gr.cpp"
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2074 "engines/director/lingo/lingo-gr.cpp"
+#line 2067 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2080 "engines/director/lingo/lingo-gr.cpp"
+#line 2073 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2086 "engines/director/lingo/lingo-gr.cpp"
+#line 2079 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2092 "engines/director/lingo/lingo-gr.cpp"
+#line 2085 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2098 "engines/director/lingo/lingo-gr.cpp"
+#line 2091 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2105,7 +2098,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2109 "engines/director/lingo/lingo-gr.cpp"
+#line 2102 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2115,13 +2108,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2119 "engines/director/lingo/lingo-gr.cpp"
+#line 2112 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2125 "engines/director/lingo/lingo-gr.cpp"
+#line 2118 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2130,242 +2123,242 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2134 "engines/director/lingo/lingo-gr.cpp"
+#line 2127 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2141 "engines/director/lingo/lingo-gr.cpp"
+#line 2134 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2147 "engines/director/lingo/lingo-gr.cpp"
+#line 2140 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2153 "engines/director/lingo/lingo-gr.cpp"
+#line 2146 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2159 "engines/director/lingo/lingo-gr.cpp"
+#line 2152 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2165 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2171 "engines/director/lingo/lingo-gr.cpp"
+#line 2164 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2177 "engines/director/lingo/lingo-gr.cpp"
+#line 2170 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2183 "engines/director/lingo/lingo-gr.cpp"
+#line 2176 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2189 "engines/director/lingo/lingo-gr.cpp"
+#line 2182 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2195 "engines/director/lingo/lingo-gr.cpp"
+#line 2188 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2201 "engines/director/lingo/lingo-gr.cpp"
+#line 2194 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2207 "engines/director/lingo/lingo-gr.cpp"
+#line 2200 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2213 "engines/director/lingo/lingo-gr.cpp"
+#line 2206 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2219 "engines/director/lingo/lingo-gr.cpp"
+#line 2212 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2225 "engines/director/lingo/lingo-gr.cpp"
+#line 2218 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2231 "engines/director/lingo/lingo-gr.cpp"
+#line 2224 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
+#line 2230 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2243 "engines/director/lingo/lingo-gr.cpp"
+#line 2236 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2249 "engines/director/lingo/lingo-gr.cpp"
+#line 2242 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2255 "engines/director/lingo/lingo-gr.cpp"
+#line 2248 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2261 "engines/director/lingo/lingo-gr.cpp"
+#line 2254 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2267 "engines/director/lingo/lingo-gr.cpp"
+#line 2260 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2273 "engines/director/lingo/lingo-gr.cpp"
+#line 2266 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2279 "engines/director/lingo/lingo-gr.cpp"
+#line 2272 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2285 "engines/director/lingo/lingo-gr.cpp"
+#line 2278 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2291 "engines/director/lingo/lingo-gr.cpp"
+#line 2284 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2297 "engines/director/lingo/lingo-gr.cpp"
+#line 2290 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2303 "engines/director/lingo/lingo-gr.cpp"
+#line 2296 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2302 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2315 "engines/director/lingo/lingo-gr.cpp"
+#line 2308 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2321 "engines/director/lingo/lingo-gr.cpp"
+#line 2314 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2327 "engines/director/lingo/lingo-gr.cpp"
+#line 2320 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tWHEN */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2333 "engines/director/lingo/lingo-gr.cpp"
+#line 2326 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2339 "engines/director/lingo/lingo-gr.cpp"
+#line 2332 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2345 "engines/director/lingo/lingo-gr.cpp"
+#line 2338 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2351 "engines/director/lingo/lingo-gr.cpp"
+#line 2344 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2357 "engines/director/lingo/lingo-gr.cpp"
+#line 2350 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2363 "engines/director/lingo/lingo-gr.cpp"
+#line 2356 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* idlist: %empty */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2362 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* nonemptyidlist: ID */
@@ -2374,7 +2367,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2371 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2382,660 +2375,672 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2386 "engines/director/lingo/lingo-gr.cpp"
+#line 2379 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* proc: ID cmdargs '\n' */
#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2392 "engines/director/lingo/lingo-gr.cpp"
+#line 2385 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* proc: tPUT cmdargs '\n' */
#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2398 "engines/director/lingo/lingo-gr.cpp"
+#line 2391 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: tPLAY cmdargs '\n' */
+ case 73: /* proc: tGO cmdargs '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2404 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
+#line 2397 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tPLAY frameargs '\n' */
+ case 74: /* proc: tGO frameargs '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2410 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tNEXT tREPEAT '\n' */
+ case 75: /* proc: tPLAY cmdargs '\n' */
#line 375 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new NextRepeatNode(); }
-#line 2416 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
+#line 2409 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tEXIT tREPEAT '\n' */
+ case 76: /* proc: tPLAY frameargs '\n' */
#line 376 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new ExitRepeatNode(); }
-#line 2422 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
+#line 2415 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tEXIT '\n' */
+ case 77: /* proc: tNEXT tREPEAT '\n' */
#line 377 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new NextRepeatNode(); }
+#line 2421 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 78: /* proc: tEXIT tREPEAT '\n' */
+#line 378 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new ExitRepeatNode(); }
+#line 2427 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 79: /* proc: tEXIT '\n' */
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2428 "engines/director/lingo/lingo-gr.cpp"
+#line 2433 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* cmdargs: %empty */
-#line 380 "engines/director/lingo/lingo-gr.y"
+ case 80: /* cmdargs: %empty */
+#line 382 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2436 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* cmdargs: expr */
-#line 383 "engines/director/lingo/lingo-gr.y"
+ case 81: /* cmdargs: expr */
+#line 385 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2446 "engines/director/lingo/lingo-gr.cpp"
+#line 2451 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* cmdargs: expr ',' nonemptyexprlist */
-#line 388 "engines/director/lingo/lingo-gr.y"
+ case 82: /* cmdargs: expr ',' nonemptyexprlist */
+#line 390 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2455 "engines/director/lingo/lingo-gr.cpp"
+#line 2460 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* cmdargs: expr expr_nounarymath */
-#line 392 "engines/director/lingo/lingo-gr.y"
+ case 83: /* cmdargs: expr expr_nounarymath */
+#line 394 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2466 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 398 "engines/director/lingo/lingo-gr.y"
+ case 84: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 400 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2476 "engines/director/lingo/lingo-gr.cpp"
+#line 2481 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: '(' ')' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+ case 85: /* cmdargs: '(' ')' */
+#line 405 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2484 "engines/director/lingo/lingo-gr.cpp"
+#line 2489 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 86: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 408 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2493 "engines/director/lingo/lingo-gr.cpp"
+#line 2498 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* frameargs: tFRAME expr */
-#line 416 "engines/director/lingo/lingo-gr.y"
+ case 87: /* frameargs: tFRAME expr */
+#line 418 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* frameargs: tMOVIE expr */
-#line 421 "engines/director/lingo/lingo-gr.y"
+ case 88: /* frameargs: tMOVIE expr */
+#line 423 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2514 "engines/director/lingo/lingo-gr.cpp"
+#line 2519 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 89: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 429 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2530 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* frameargs: expr tOF tMOVIE expr */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 90: /* frameargs: expr tOF tMOVIE expr */
+#line 435 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2536 "engines/director/lingo/lingo-gr.cpp"
+#line 2541 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* frameargs: tFRAME expr expr_nounarymath */
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 91: /* frameargs: tFRAME expr expr_nounarymath */
+#line 441 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2547 "engines/director/lingo/lingo-gr.cpp"
+#line 2552 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 447 "engines/director/lingo/lingo-gr.y"
+ case 92: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 449 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2553 "engines/director/lingo/lingo-gr.cpp"
+#line 2558 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 448 "engines/director/lingo/lingo-gr.y"
+ case 93: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2564 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 94: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* asgn: tSET varorthe to expr '\n' */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 95: /* asgn: tSET varorthe to expr '\n' */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2571 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* definevars: tGLOBAL idlist '\n' */
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 98: /* definevars: tGLOBAL idlist '\n' */
+#line 457 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* definevars: tPROPERTY idlist '\n' */
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 99: /* definevars: tPROPERTY idlist '\n' */
+#line 458 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 2588 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* definevars: tINSTANCE idlist '\n' */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 100: /* definevars: tINSTANCE idlist '\n' */
+#line 459 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
+#line 2594 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* ifstmt: tIF expr tTHEN stmt */
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 101: /* ifstmt: tIF expr tTHEN stmt */
+#line 462 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2598 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 464 "engines/director/lingo/lingo-gr.y"
+ case 102: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 466 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 103: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 470 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2616 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 104: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 476 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2625 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 478 "engines/director/lingo/lingo-gr.y"
+ case 105: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 480 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2634 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 482 "engines/director/lingo/lingo-gr.y"
+ case 106: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 484 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2641 "engines/director/lingo/lingo-gr.cpp"
+#line 2646 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 486 "engines/director/lingo/lingo-gr.y"
+ case 107: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 488 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2653 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 108: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 490 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2655 "engines/director/lingo/lingo-gr.cpp"
+#line 2660 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 109: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 492 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2662 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* stmtlist: %empty */
-#line 494 "engines/director/lingo/lingo-gr.y"
+ case 110: /* stmtlist: %empty */
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2668 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* nonemptystmtlist: stmtlistline */
-#line 499 "engines/director/lingo/lingo-gr.y"
+ case 112: /* nonemptystmtlist: stmtlistline */
+#line 501 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2684 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 505 "engines/director/lingo/lingo-gr.y"
+ case 113: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 507 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2689 "engines/director/lingo/lingo-gr.cpp"
+#line 2694 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* stmtlistline: '\n' */
-#line 512 "engines/director/lingo/lingo-gr.y"
+ case 114: /* stmtlistline: '\n' */
+#line 514 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2700 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* simpleexpr_noparens_nounarymath: tINT */
-#line 519 "engines/director/lingo/lingo-gr.y"
+ case 116: /* simpleexpr_noparens_nounarymath: tINT */
+#line 521 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 520 "engines/director/lingo/lingo-gr.y"
+ case 117: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 522 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2707 "engines/director/lingo/lingo-gr.cpp"
+#line 2712 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 118: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 523 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2718 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 119: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 524 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2719 "engines/director/lingo/lingo-gr.cpp"
+#line 2724 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 120: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 525 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2725 "engines/director/lingo/lingo-gr.cpp"
+#line 2730 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 121: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 526 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2736 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* var: ID */
-#line 529 "engines/director/lingo/lingo-gr.y"
+ case 124: /* var: ID */
+#line 531 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2737 "engines/director/lingo/lingo-gr.cpp"
+#line 2742 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* list: '[' exprlist ']' */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 127: /* list: '[' exprlist ']' */
+#line 541 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2743 "engines/director/lingo/lingo-gr.cpp"
+#line 2748 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* list: '[' ':' ']' */
-#line 540 "engines/director/lingo/lingo-gr.y"
+ case 128: /* list: '[' ':' ']' */
+#line 542 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2754 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* list: '[' proplist ']' */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 129: /* list: '[' proplist ']' */
+#line 543 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
+#line 2760 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* proplist: proppair */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 130: /* proplist: proppair */
+#line 546 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2764 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* proplist: proplist ',' proppair */
-#line 548 "engines/director/lingo/lingo-gr.y"
+ case 131: /* proplist: proplist ',' proppair */
+#line 550 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2772 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* proppair: tSYMBOL ':' expr */
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 132: /* proppair: tSYMBOL ':' expr */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2778 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proppair: ID ':' expr */
-#line 554 "engines/director/lingo/lingo-gr.y"
+ case 133: /* proppair: ID ':' expr */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2784 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* proppair: tSTRING ':' expr */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 134: /* proppair: tSTRING ':' expr */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2790 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* parens: '(' expr ')' */
-#line 558 "engines/director/lingo/lingo-gr.y"
+ case 135: /* parens: '(' expr ')' */
+#line 560 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2796 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* unarymath: '+' simpleexpr */
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 136: /* unarymath: '+' simpleexpr */
+#line 562 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2802 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* unarymath: '-' simpleexpr */
-#line 561 "engines/director/lingo/lingo-gr.y"
+ case 137: /* unarymath: '-' simpleexpr */
+#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2808 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* expr: expr '+' expr */
-#line 579 "engines/director/lingo/lingo-gr.y"
+ case 144: /* expr: expr '+' expr */
+#line 581 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2814 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* expr: expr '-' expr */
-#line 580 "engines/director/lingo/lingo-gr.y"
+ case 145: /* expr: expr '-' expr */
+#line 582 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2820 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* expr: expr '*' expr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 146: /* expr: expr '*' expr */
+#line 583 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2826 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* expr: expr '/' expr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 147: /* expr: expr '/' expr */
+#line 584 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2832 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* expr: expr tMOD expr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+ case 148: /* expr: expr tMOD expr */
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2838 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* expr: expr '>' expr */
-#line 584 "engines/director/lingo/lingo-gr.y"
+ case 149: /* expr: expr '>' expr */
+#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2844 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr '<' expr */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr '<' expr */
+#line 587 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2850 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr tEQ expr */
-#line 586 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr tEQ expr */
+#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2856 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr tNEQ expr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr tNEQ expr */
+#line 589 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2862 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr tGE expr */
-#line 588 "engines/director/lingo/lingo-gr.y"
+ case 153: /* expr: expr tGE expr */
+#line 590 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2868 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tLE expr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr: expr tLE expr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2874 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr tAND expr */
-#line 590 "engines/director/lingo/lingo-gr.y"
+ case 155: /* expr: expr tAND expr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2880 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr tOR expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 156: /* expr: expr tOR expr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2886 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr '&' expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 157: /* expr: expr '&' expr */
+#line 594 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2892 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr tCONCAT expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 158: /* expr: expr tCONCAT expr */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2898 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tCONTAINS expr */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr tCONTAINS expr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2904 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tSTARTS expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 160: /* expr: expr tSTARTS expr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+ case 162: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2916 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2922 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2928 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 165: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2934 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2940 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 167: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2946 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 168: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2952 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2958 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 613 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2964 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 614 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2970 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 615 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2976 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2982 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 615 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 617 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2988 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2994 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 617 "engines/director/lingo/lingo-gr.y"
+ case 176: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3000 "engines/director/lingo/lingo-gr.cpp"
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3006 "engines/director/lingo/lingo-gr.cpp"
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3012 "engines/director/lingo/lingo-gr.cpp"
+#line 3017 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* exprlist: %empty */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 179: /* exprlist: %empty */
+#line 624 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3018 "engines/director/lingo/lingo-gr.cpp"
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* nonemptyexprlist: expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 181: /* nonemptyexprlist: expr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3027 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 182: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3035 "engines/director/lingo/lingo-gr.cpp"
+#line 3040 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3044 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3234,7 +3239,7 @@ yyreturn:
return yyresult;
}
-#line 635 "engines/director/lingo/lingo-gr.y"
+#line 637 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 03c4243a80..9b14b3717f 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -81,55 +81,54 @@ extern int yydebug;
tFRAME = 282, /* tFRAME */
tGLOBAL = 283, /* tGLOBAL */
tGO = 284, /* tGO */
- tGOLOOP = 285, /* tGOLOOP */
- tIF = 286, /* tIF */
- tIN = 287, /* tIN */
- tINTO = 288, /* tINTO */
- tMACRO = 289, /* tMACRO */
- tMOVIE = 290, /* tMOVIE */
- tNEXT = 291, /* tNEXT */
- tOF = 292, /* tOF */
- tPREVIOUS = 293, /* tPREVIOUS */
- tPUT = 294, /* tPUT */
- tREPEAT = 295, /* tREPEAT */
- tSET = 296, /* tSET */
- tTHEN = 297, /* tTHEN */
- tTO = 298, /* tTO */
- tWHEN = 299, /* tWHEN */
- tWITH = 300, /* tWITH */
- tWHILE = 301, /* tWHILE */
- tFACTORY = 302, /* tFACTORY */
- tOPEN = 303, /* tOPEN */
- tPLAY = 304, /* tPLAY */
- tINSTANCE = 305, /* tINSTANCE */
- tGE = 306, /* tGE */
- tLE = 307, /* tLE */
- tEQ = 308, /* tEQ */
- tNEQ = 309, /* tNEQ */
- tAND = 310, /* tAND */
- tOR = 311, /* tOR */
- tNOT = 312, /* tNOT */
- tMOD = 313, /* tMOD */
- tAFTER = 314, /* tAFTER */
- tBEFORE = 315, /* tBEFORE */
- tCONCAT = 316, /* tCONCAT */
- tCONTAINS = 317, /* tCONTAINS */
- tSTARTS = 318, /* tSTARTS */
- tCHAR = 319, /* tCHAR */
- tITEM = 320, /* tITEM */
- tLINE = 321, /* tLINE */
- tWORD = 322, /* tWORD */
- tSPRITE = 323, /* tSPRITE */
- tINTERSECTS = 324, /* tINTERSECTS */
- tWITHIN = 325, /* tWITHIN */
- tTELL = 326, /* tTELL */
- tPROPERTY = 327, /* tPROPERTY */
- tON = 328, /* tON */
- tMETHOD = 329, /* tMETHOD */
- tENDIF = 330, /* tENDIF */
- tENDREPEAT = 331, /* tENDREPEAT */
- tENDTELL = 332, /* tENDTELL */
- tASSERTERROR = 333 /* tASSERTERROR */
+ tIF = 285, /* tIF */
+ tIN = 286, /* tIN */
+ tINTO = 287, /* tINTO */
+ tMACRO = 288, /* tMACRO */
+ tMOVIE = 289, /* tMOVIE */
+ tNEXT = 290, /* tNEXT */
+ tOF = 291, /* tOF */
+ tPREVIOUS = 292, /* tPREVIOUS */
+ tPUT = 293, /* tPUT */
+ tREPEAT = 294, /* tREPEAT */
+ tSET = 295, /* tSET */
+ tTHEN = 296, /* tTHEN */
+ tTO = 297, /* tTO */
+ tWHEN = 298, /* tWHEN */
+ tWITH = 299, /* tWITH */
+ tWHILE = 300, /* tWHILE */
+ tFACTORY = 301, /* tFACTORY */
+ tOPEN = 302, /* tOPEN */
+ tPLAY = 303, /* tPLAY */
+ tINSTANCE = 304, /* tINSTANCE */
+ tGE = 305, /* tGE */
+ tLE = 306, /* tLE */
+ tEQ = 307, /* tEQ */
+ tNEQ = 308, /* tNEQ */
+ tAND = 309, /* tAND */
+ tOR = 310, /* tOR */
+ tNOT = 311, /* tNOT */
+ tMOD = 312, /* tMOD */
+ tAFTER = 313, /* tAFTER */
+ tBEFORE = 314, /* tBEFORE */
+ tCONCAT = 315, /* tCONCAT */
+ tCONTAINS = 316, /* tCONTAINS */
+ tSTARTS = 317, /* tSTARTS */
+ tCHAR = 318, /* tCHAR */
+ tITEM = 319, /* tITEM */
+ tLINE = 320, /* tLINE */
+ tWORD = 321, /* tWORD */
+ tSPRITE = 322, /* tSPRITE */
+ tINTERSECTS = 323, /* tINTERSECTS */
+ tWITHIN = 324, /* tWITHIN */
+ tTELL = 325, /* tTELL */
+ tPROPERTY = 326, /* tPROPERTY */
+ tON = 327, /* tON */
+ tMETHOD = 328, /* tMETHOD */
+ tENDIF = 329, /* tENDIF */
+ tENDREPEAT = 330, /* tENDREPEAT */
+ tENDTELL = 331, /* tENDTELL */
+ tASSERTERROR = 332 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -154,7 +153,7 @@ union YYSTYPE
Director::Node *node;
Director::NodeList *nodelist;
-#line 158 "engines/director/lingo/lingo-gr.h"
+#line 157 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 6b33f5549f..6690399b7a 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -135,7 +135,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%token<s> tENDCLAUSE tPLAYACCEL
%token<objectprop> tTHEOBJECTPROP
%token tCAST tFIELD tSCRIPT tWINDOW
-%token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tGOLOOP tIF tIN tINTO tMACRO
+%token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tIF tIN tINTO tMACRO
%token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
%token tWITH tWHILE tFACTORY tOPEN tPLAY tINSTANCE
%token tGE tLE tEQ tNEQ tAND tOR tNOT tMOD
@@ -370,6 +370,8 @@ stmtoneliner: proc
proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
| tPUT cmdargs '\n' { $$ = new CmdNode(new Common::String("put"), $cmdargs); }
+ | tGO cmdargs '\n' { $$ = new CmdNode(new Common::String("go"), $cmdargs); }
+ | tGO frameargs '\n' { $$ = new CmdNode(new Common::String("go"), $frameargs); }
| tPLAY cmdargs '\n' { $$ = new CmdNode(new Common::String("play"), $cmdargs); }
| tPLAY frameargs '\n' { $$ = new CmdNode(new Common::String("play"), $frameargs); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 5b2d3b4b5a..01af757442 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -355,8 +355,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 73
-#define YY_END_OF_BUFFER 74
+#define YY_NUM_RULES 71
+#define YY_END_OF_BUFFER 72
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -364,43 +364,42 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[320] =
+static const flex_int16_t yy_accept[310] =
{ 0,
- 0, 0, 74, 72, 1, 70, 70, 72, 72, 69,
- 69, 68, 69, 65, 69, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 1, 66, 1, 70, 0, 71, 2,
- 64, 67, 68, 63, 61, 62, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
- 66, 10, 24, 66, 66, 66, 66, 66, 66, 66,
- 33, 34, 66, 36, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 66, 52, 66, 66, 66, 1, 0,
- 66, 2, 67, 66, 4, 66, 66, 66, 66, 66,
-
- 66, 12, 66, 66, 66, 66, 19, 66, 66, 66,
- 66, 66, 66, 29, 66, 66, 32, 66, 66, 66,
- 66, 40, 66, 66, 66, 43, 66, 66, 66, 66,
- 66, 66, 66, 66, 66, 0, 66, 66, 66, 6,
- 7, 66, 9, 11, 0, 14, 66, 66, 66, 0,
- 0, 0, 66, 66, 23, 25, 26, 66, 66, 66,
- 31, 35, 37, 66, 66, 66, 66, 66, 66, 66,
- 45, 0, 51, 57, 66, 66, 55, 60, 0, 66,
- 3, 66, 66, 12, 15, 16, 66, 0, 0, 19,
- 66, 66, 27, 66, 30, 66, 66, 66, 66, 66,
-
- 66, 66, 50, 50, 50, 58, 66, 66, 0, 66,
- 5, 66, 12, 17, 0, 0, 0, 66, 66, 28,
- 66, 66, 41, 42, 66, 54, 44, 0, 50, 50,
- 59, 56, 0, 66, 66, 0, 20, 66, 66, 66,
- 66, 66, 0, 0, 0, 50, 50, 0, 13, 8,
- 18, 21, 66, 38, 39, 66, 0, 0, 0, 50,
- 50, 13, 66, 66, 0, 0, 0, 0, 50, 22,
- 66, 49, 48, 49, 0, 0, 0, 0, 50, 66,
- 48, 0, 0, 0, 0, 0, 66, 0, 0, 0,
- 0, 0, 0, 66, 0, 0, 49, 48, 48, 49,
-
- 0, 66, 47, 48, 48, 0, 66, 48, 66, 0,
- 48, 66, 0, 0, 53, 0, 0, 46, 0
+ 0, 0, 72, 70, 1, 68, 68, 70, 70, 67,
+ 67, 66, 67, 63, 67, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 1, 64, 1, 68, 0, 69, 2,
+ 62, 65, 66, 61, 59, 60, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 10, 22, 64, 64, 64, 64, 64, 64, 64,
+ 31, 32, 64, 34, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 50, 64, 64, 64, 1, 0,
+ 64, 2, 65, 64, 4, 64, 64, 64, 64, 64,
+
+ 64, 12, 64, 64, 64, 64, 18, 64, 64, 64,
+ 64, 64, 64, 27, 64, 64, 30, 64, 64, 64,
+ 64, 38, 64, 64, 64, 41, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 0, 64, 64, 64, 6,
+ 7, 64, 9, 11, 0, 14, 64, 64, 64, 0,
+ 64, 64, 21, 23, 24, 64, 64, 64, 29, 33,
+ 35, 64, 64, 64, 64, 64, 64, 64, 43, 0,
+ 49, 55, 64, 64, 53, 58, 0, 64, 3, 64,
+ 64, 12, 15, 16, 64, 18, 64, 64, 25, 64,
+ 28, 64, 64, 64, 64, 64, 64, 64, 48, 48,
+
+ 48, 56, 64, 64, 0, 64, 5, 64, 12, 17,
+ 64, 64, 26, 64, 64, 39, 40, 64, 52, 42,
+ 0, 48, 48, 57, 54, 0, 64, 64, 64, 64,
+ 64, 64, 64, 0, 0, 0, 48, 48, 0, 13,
+ 8, 19, 64, 36, 37, 64, 0, 0, 0, 48,
+ 48, 13, 64, 64, 0, 0, 0, 0, 48, 20,
+ 64, 47, 46, 47, 0, 0, 0, 0, 48, 64,
+ 46, 0, 0, 0, 0, 0, 64, 0, 0, 0,
+ 0, 0, 0, 64, 0, 0, 47, 46, 46, 47,
+ 0, 64, 45, 46, 46, 0, 64, 46, 64, 0,
+
+ 46, 64, 0, 0, 51, 0, 0, 44, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -445,89 +444,87 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[332] =
+static const flex_int16_t yy_base[322] =
{ 0,
- 0, 58, 642, 710, 59, 710, 710, 636, 0, 710,
- 632, 55, 54, 710, 627, 49, 51, 57, 46, 50,
+ 0, 58, 618, 698, 59, 698, 698, 612, 0, 698,
+ 607, 55, 54, 698, 600, 49, 51, 57, 46, 50,
57, 63, 0, 63, 58, 97, 87, 97, 98, 100,
- 136, 138, 136, 117, 155, 129, 710, 633, 710, 0,
- 710, 626, 134, 710, 710, 710, 0, 97, 121, 136,
+ 136, 138, 136, 117, 155, 129, 698, 603, 698, 0,
+ 698, 594, 134, 698, 698, 698, 0, 97, 121, 136,
136, 147, 142, 137, 142, 156, 152, 157, 178, 169,
- 629, 0, 172, 182, 178, 189, 177, 189, 174, 179,
+ 601, 0, 172, 182, 178, 189, 177, 189, 174, 179,
0, 0, 193, 0, 198, 196, 186, 190, 205, 189,
192, 201, 204, 224, 0, 230, 224, 218, 260, 239,
- 240, 0, 620, 240, 0, 234, 234, 238, 237, 243,
-
- 241, 627, 240, 250, 250, 266, 283, 255, 269, 264,
- 275, 266, 278, 0, 278, 273, 0, 280, 272, 277,
- 285, 0, 283, 293, 295, 0, 294, 292, 298, 326,
- 306, 310, 318, 317, 324, 326, 315, 318, 319, 0,
- 0, 335, 0, 0, 618, 0, 333, 335, 340, 327,
- 331, 333, 347, 334, 0, 0, 0, 337, 340, 350,
- 0, 0, 0, 350, 358, 366, 354, 359, 357, 358,
- 0, 389, 0, 0, 375, 368, 375, 0, 368, 374,
- 0, 384, 381, 0, 0, 0, 382, 394, 383, 614,
- 388, 386, 0, 402, 0, 396, 396, 397, 399, 398,
-
- 402, 404, 571, 433, 438, 0, 407, 416, 418, 420,
- 0, 424, 0, 0, 427, 427, 457, 440, 440, 0,
- 428, 430, 0, 0, 437, 0, 0, 464, 467, 461,
- 0, 0, 438, 443, 457, 456, 710, 459, 472, 462,
- 458, 475, 485, 484, 482, 494, 504, 471, 0, 0,
- 710, 0, 477, 0, 0, 481, 485, 407, 496, 396,
- 520, 710, 494, 496, 511, 392, 514, 533, 534, 0,
- 515, 710, 0, 710, 349, 538, 535, 539, 252, 513,
- 0, 544, 549, 247, 543, 565, 527, 544, 536, 557,
- 575, 570, 565, 571, 211, 168, 139, 569, 579, 132,
-
- 98, 571, 89, 86, 81, 567, 572, 607, 578, 605,
- 624, 581, 588, 592, 0, 79, 70, 68, 710, 661,
- 663, 666, 669, 674, 679, 681, 686, 691, 693, 698,
- 703
+ 240, 0, 576, 240, 0, 234, 234, 238, 237, 243,
+
+ 241, 544, 240, 250, 250, 266, 283, 255, 269, 264,
+ 275, 266, 278, 0, 278, 271, 0, 278, 270, 274,
+ 280, 0, 292, 293, 288, 0, 294, 291, 297, 320,
+ 300, 304, 315, 312, 318, 322, 310, 313, 316, 0,
+ 0, 333, 0, 0, 532, 0, 331, 332, 338, 327,
+ 341, 329, 0, 0, 0, 333, 334, 345, 0, 0,
+ 0, 344, 349, 356, 345, 350, 347, 349, 0, 380,
+ 0, 0, 367, 361, 364, 0, 358, 365, 0, 375,
+ 373, 0, 0, 0, 373, 698, 373, 370, 0, 385,
+ 0, 378, 378, 377, 382, 381, 398, 388, 531, 419,
+
+ 422, 0, 391, 406, 408, 409, 0, 413, 0, 0,
+ 426, 425, 0, 413, 415, 0, 0, 422, 0, 0,
+ 432, 442, 449, 0, 0, 423, 417, 426, 442, 448,
+ 441, 442, 451, 466, 462, 461, 483, 485, 454, 0,
+ 0, 0, 461, 0, 0, 463, 465, 489, 473, 448,
+ 500, 698, 469, 473, 488, 351, 490, 508, 507, 0,
+ 499, 698, 0, 698, 299, 509, 510, 518, 252, 498,
+ 0, 529, 526, 247, 536, 546, 512, 518, 526, 550,
+ 563, 552, 552, 556, 211, 168, 139, 529, 562, 132,
+ 98, 531, 89, 86, 81, 570, 547, 587, 561, 599,
+
+ 600, 562, 567, 563, 0, 79, 70, 68, 698, 649,
+ 651, 654, 657, 662, 667, 669, 674, 679, 681, 686,
+ 691
} ;
-static const flex_int16_t yy_def[332] =
+static const flex_int16_t yy_def[322] =
{ 0,
- 319, 1, 319, 319, 319, 319, 319, 320, 321, 319,
- 319, 319, 319, 319, 319, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 319, 322, 319, 319, 320, 319, 323,
- 319, 319, 319, 319, 319, 319, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 319, 319,
- 322, 323, 319, 322, 322, 322, 322, 322, 322, 322,
-
- 322, 322, 322, 322, 322, 322, 319, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 319, 322, 322, 322, 322,
- 322, 322, 322, 322, 324, 322, 322, 322, 322, 319,
- 319, 319, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
- 322, 325, 322, 322, 322, 322, 322, 322, 319, 322,
- 322, 322, 322, 326, 322, 322, 322, 319, 319, 319,
- 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
-
- 322, 322, 325, 325, 325, 322, 322, 322, 319, 322,
- 322, 322, 326, 322, 319, 319, 319, 322, 322, 322,
- 322, 322, 322, 322, 322, 322, 322, 319, 325, 325,
- 322, 322, 319, 322, 322, 319, 319, 322, 322, 322,
- 322, 322, 319, 319, 319, 325, 325, 319, 322, 322,
- 319, 322, 322, 322, 322, 322, 319, 319, 319, 325,
- 325, 319, 322, 322, 319, 327, 319, 328, 325, 322,
- 322, 319, 329, 319, 328, 328, 328, 328, 325, 322,
- 329, 319, 328, 328, 328, 319, 322, 319, 319, 328,
- 327, 328, 319, 322, 319, 319, 328, 329, 329, 328,
-
- 319, 322, 319, 329, 329, 330, 322, 331, 322, 319,
- 331, 322, 319, 319, 322, 319, 319, 319, 0, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319
+ 309, 1, 309, 309, 309, 309, 309, 310, 311, 309,
+ 309, 309, 309, 309, 309, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 309, 312, 309, 309, 310, 309, 313,
+ 309, 309, 309, 309, 309, 309, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 309, 309,
+ 312, 313, 309, 312, 312, 312, 312, 312, 312, 312,
+
+ 312, 312, 312, 312, 312, 312, 309, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 309, 312, 312, 312, 312,
+ 312, 312, 312, 312, 314, 312, 312, 312, 312, 309,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 315,
+ 312, 312, 312, 312, 312, 312, 309, 312, 312, 312,
+ 312, 316, 312, 312, 312, 309, 312, 312, 312, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 315, 315,
+
+ 315, 312, 312, 312, 309, 312, 312, 312, 316, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 309, 315, 315, 312, 312, 309, 312, 312, 312, 312,
+ 312, 312, 312, 309, 309, 309, 315, 315, 309, 312,
+ 312, 312, 312, 312, 312, 312, 309, 309, 309, 315,
+ 315, 309, 312, 312, 309, 317, 309, 318, 315, 312,
+ 312, 309, 319, 309, 318, 318, 318, 318, 315, 312,
+ 319, 309, 318, 318, 318, 309, 312, 309, 309, 318,
+ 317, 318, 309, 312, 309, 309, 318, 319, 319, 318,
+ 309, 312, 309, 319, 319, 320, 312, 321, 312, 309,
+
+ 321, 312, 309, 309, 312, 309, 309, 309, 0, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309
} ;
-static const flex_int16_t yy_nxt[770] =
+static const flex_int16_t yy_nxt[758] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -535,87 +532,86 @@ static const flex_int16_t yy_nxt[770] =
32, 23, 23, 33, 23, 23, 23, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
- 36, 37, 37, 42, 43, 44, 45, 48, 50, 318,
- 51, 318, 54, 55, 49, 56, 35, 52, 58, 65,
- 318, 62, 303, 53, 57, 59, 60, 303, 63, 61,
- 303, 48, 50, 64, 51, 54, 55, 49, 56, 306,
+ 36, 37, 37, 42, 43, 44, 45, 48, 50, 308,
+ 51, 308, 54, 55, 49, 56, 35, 52, 58, 65,
+ 308, 62, 293, 53, 57, 59, 60, 293, 63, 61,
+ 293, 48, 50, 64, 51, 54, 55, 49, 56, 296,
35, 52, 58, 65, 69, 62, 53, 57, 59, 60,
66, 63, 61, 70, 67, 71, 64, 78, 89, 37,
37, 75, 72, 68, 73, 74, 76, 94, 69, 77,
- 36, 37, 37, 282, 66, 90, 70, 95, 67, 71,
- 282, 78, 42, 43, 75, 72, 68, 73, 74, 76,
+ 36, 37, 37, 272, 66, 90, 70, 95, 67, 71,
+ 272, 78, 42, 43, 75, 72, 68, 73, 74, 76,
94, 79, 77, 80, 96, 83, 86, 87, 84, 90,
- 98, 95, 88, 81, 85, 97, 82, 99, 91, 303,
+ 98, 95, 88, 81, 85, 97, 82, 99, 91, 293,
100, 101, 102, 103, 104, 79, 58, 80, 96, 83,
86, 87, 84, 59, 98, 88, 81, 85, 97, 82,
99, 105, 91, 100, 101, 106, 102, 103, 104, 110,
58, 108, 109, 111, 112, 114, 59, 113, 116, 117,
- 118, 119, 303, 120, 128, 105, 122, 123, 106, 126,
+ 118, 119, 293, 120, 128, 105, 122, 123, 106, 126,
127, 115, 121, 110, 108, 109, 111, 129, 112, 114,
113, 116, 117, 124, 118, 119, 125, 120, 128, 122,
- 123, 130, 126, 127, 115, 121, 135, 131, 291, 133,
- 129, 132, 136, 286, 134, 137, 124, 138, 144, 125,
+ 123, 130, 126, 127, 115, 121, 135, 131, 281, 133,
+ 129, 132, 136, 276, 134, 137, 124, 138, 144, 125,
139, 89, 37, 37, 140, 130, 141, 142, 143, 135,
146, 131, 133, 147, 148, 132, 136, 134, 90, 137,
- 149, 138, 144, 139, 107, 153, 154, 140, 156, 141,
- 142, 143, 157, 146, 158, 155, 147, 148, 159, 160,
-
- 166, 150, 90, 161, 149, 162, 151, 163, 153, 164,
- 154, 156, 165, 152, 167, 169, 157, 158, 155, 168,
- 170, 171, 159, 160, 166, 150, 161, 172, 162, 151,
- 163, 174, 164, 175, 176, 165, 152, 177, 167, 169,
- 178, 179, 168, 170, 171, 180, 181, 182, 183, 185,
- 282, 173, 186, 187, 174, 188, 175, 189, 176, 190,
- 191, 177, 192, 193, 178, 179, 194, 195, 180, 181,
- 182, 196, 183, 185, 173, 197, 186, 187, 188, 198,
- 189, 199, 190, 200, 191, 192, 193, 201, 202, 194,
- 172, 195, 206, 266, 207, 196, 208, 268, 209, 197,
-
- 210, 211, 212, 198, 199, 214, 200, 215, 266, 216,
- 201, 202, 204, 218, 205, 219, 206, 207, 220, 226,
- 208, 209, 221, 210, 222, 211, 212, 223, 214, 224,
- 225, 215, 216, 227, 228, 204, 218, 205, 219, 228,
- 231, 232, 220, 226, 233, 221, 229, 222, 234, 235,
- 223, 236, 224, 225, 237, 238, 227, 239, 217, 240,
- 241, 242, 228, 231, 232, 228, 248, 233, 228, 230,
- 229, 234, 235, 251, 236, 150, 252, 237, 249, 238,
- 243, 239, 240, 241, 242, 247, 250, 253, 256, 248,
- 244, 254, 230, 255, 245, 228, 246, 251, 257, 150,
-
- 252, 249, 258, 259, 243, 228, 262, 263, 247, 250,
- 264, 253, 256, 244, 254, 265, 255, 245, 261, 246,
- 267, 228, 257, 270, 260, 271, 258, 259, 272, 262,
- 263, 274, 280, 264, 268, 228, 282, 269, 265, 282,
- 282, 287, 261, 267, 282, 282, 270, 260, 271, 276,
- 282, 283, 272, 284, 296, 274, 280, 294, 282, 277,
- 285, 269, 279, 278, 287, 288, 286, 292, 306, 295,
- 289, 282, 228, 276, 297, 283, 291, 284, 296, 290,
- 294, 243, 277, 301, 285, 279, 278, 300, 302, 288,
- 292, 293, 295, 289, 304, 245, 298, 305, 297, 307,
-
- 309, 299, 290, 273, 312, 243, 310, 301, 310, 315,
- 317, 300, 302, 316, 293, 217, 281, 304, 245, 145,
- 298, 305, 307, 309, 299, 310, 313, 312, 145, 93,
- 107, 314, 315, 281, 317, 93, 316, 39, 46, 41,
- 39, 319, 319, 281, 319, 319, 319, 319, 319, 319,
- 313, 319, 319, 319, 314, 319, 319, 319, 319, 319,
- 281, 38, 38, 319, 38, 38, 38, 40, 40, 47,
- 47, 47, 92, 92, 92, 184, 319, 319, 184, 184,
- 203, 319, 319, 203, 213, 213, 213, 273, 319, 319,
- 273, 273, 275, 319, 319, 275, 281, 281, 281, 308,
-
- 319, 319, 308, 308, 311, 319, 311, 311, 311, 3,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319
+ 149, 138, 144, 139, 107, 151, 152, 140, 154, 141,
+ 142, 143, 155, 146, 156, 153, 147, 148, 157, 158,
+
+ 272, 159, 90, 160, 149, 161, 162, 163, 151, 164,
+ 152, 154, 166, 150, 165, 167, 155, 156, 153, 168,
+ 169, 170, 157, 158, 159, 172, 160, 173, 161, 162,
+ 163, 174, 175, 164, 176, 166, 150, 177, 165, 167,
+ 178, 179, 168, 169, 180, 171, 181, 183, 172, 184,
+ 173, 185, 256, 186, 187, 174, 175, 188, 176, 189,
+ 190, 177, 191, 178, 179, 192, 193, 180, 171, 194,
+ 181, 183, 195, 184, 196, 185, 186, 197, 187, 198,
+ 188, 170, 189, 190, 202, 204, 191, 203, 205, 192,
+ 193, 206, 207, 194, 208, 195, 210, 196, 211, 212,
+
+ 197, 213, 198, 200, 214, 201, 215, 216, 202, 204,
+ 203, 205, 217, 218, 206, 219, 207, 220, 208, 210,
+ 221, 211, 212, 221, 224, 213, 200, 214, 201, 215,
+ 216, 225, 222, 221, 226, 217, 218, 227, 228, 219,
+ 220, 229, 230, 221, 231, 232, 233, 224, 234, 258,
+ 221, 239, 240, 223, 225, 241, 222, 226, 235, 242,
+ 227, 228, 236, 243, 246, 229, 230, 231, 232, 233,
+ 244, 237, 234, 238, 239, 240, 223, 245, 241, 247,
+ 248, 235, 249, 242, 221, 236, 221, 243, 246, 252,
+ 256, 253, 254, 244, 237, 255, 238, 257, 260, 251,
+
+ 245, 221, 261, 247, 248, 262, 249, 264, 221, 258,
+ 272, 272, 252, 250, 253, 254, 270, 259, 255, 272,
+ 257, 260, 273, 251, 266, 261, 277, 272, 274, 262,
+ 272, 264, 221, 145, 267, 269, 250, 272, 268, 275,
+ 270, 259, 284, 285, 286, 145, 273, 276, 266, 277,
+ 278, 272, 274, 272, 294, 279, 280, 267, 269, 297,
+ 282, 268, 234, 275, 281, 284, 285, 287, 286, 290,
+ 291, 296, 283, 292, 278, 299, 236, 294, 279, 280,
+ 295, 307, 297, 282, 288, 93, 234, 302, 300, 289,
+ 305, 287, 306, 290, 291, 283, 271, 292, 299, 236,
+
+ 300, 300, 107, 93, 295, 307, 263, 39, 288, 271,
+ 302, 46, 289, 305, 41, 306, 39, 309, 309, 309,
+ 303, 309, 309, 271, 309, 304, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 271, 309, 309, 309,
+ 309, 309, 309, 309, 303, 309, 309, 309, 304, 38,
+ 38, 309, 38, 38, 38, 40, 40, 47, 47, 47,
+ 92, 92, 92, 182, 309, 309, 182, 182, 199, 309,
+ 309, 199, 209, 209, 209, 263, 309, 309, 263, 263,
+ 265, 309, 309, 265, 271, 271, 271, 298, 309, 309,
+ 298, 298, 301, 309, 301, 301, 301, 3, 309, 309,
+
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309
} ;
-static const flex_int16_t yy_chk[770] =
+static const flex_int16_t yy_chk[758] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -623,84 +619,83 @@ static const flex_int16_t yy_chk[770] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 5, 5, 5, 12, 12, 13, 13, 16, 17, 318,
- 18, 317, 19, 20, 16, 20, 2, 18, 21, 25,
- 316, 24, 305, 18, 20, 21, 22, 304, 24, 22,
- 303, 16, 17, 24, 18, 19, 20, 16, 20, 301,
+ 5, 5, 5, 12, 12, 13, 13, 16, 17, 308,
+ 18, 307, 19, 20, 16, 20, 2, 18, 21, 25,
+ 306, 24, 295, 18, 20, 21, 22, 294, 24, 22,
+ 293, 16, 17, 24, 18, 19, 20, 16, 20, 291,
2, 18, 21, 25, 27, 24, 18, 20, 21, 22,
26, 24, 22, 27, 26, 28, 24, 30, 34, 34,
34, 29, 28, 26, 28, 28, 29, 48, 27, 29,
- 36, 36, 36, 300, 26, 34, 27, 49, 26, 28,
- 297, 30, 43, 43, 29, 28, 26, 28, 28, 29,
+ 36, 36, 36, 290, 26, 34, 27, 49, 26, 28,
+ 287, 30, 43, 43, 29, 28, 26, 28, 28, 29,
48, 31, 29, 31, 50, 32, 33, 33, 32, 34,
- 52, 49, 33, 31, 32, 51, 31, 53, 35, 296,
+ 52, 49, 33, 31, 32, 51, 31, 53, 35, 286,
54, 55, 56, 57, 58, 31, 35, 31, 50, 32,
33, 33, 32, 35, 52, 33, 31, 32, 51, 31,
53, 59, 35, 54, 55, 60, 56, 57, 58, 64,
35, 63, 63, 65, 66, 68, 35, 67, 69, 70,
- 73, 75, 295, 76, 82, 59, 77, 78, 60, 80,
+ 73, 75, 285, 76, 82, 59, 77, 78, 60, 80,
81, 68, 76, 64, 63, 63, 65, 83, 66, 68,
67, 69, 70, 79, 73, 75, 79, 76, 82, 77,
- 78, 84, 80, 81, 68, 76, 88, 86, 284, 87,
- 83, 86, 90, 279, 87, 91, 79, 94, 101, 79,
+ 78, 84, 80, 81, 68, 76, 88, 86, 274, 87,
+ 83, 86, 90, 269, 87, 91, 79, 94, 101, 79,
96, 89, 89, 89, 97, 84, 98, 99, 100, 88,
103, 86, 87, 104, 105, 86, 90, 87, 89, 91,
106, 94, 101, 96, 107, 108, 109, 97, 110, 98,
99, 100, 111, 103, 112, 109, 104, 105, 113, 115,
- 123, 107, 89, 116, 106, 118, 107, 119, 108, 120,
- 109, 110, 121, 107, 124, 127, 111, 112, 109, 125,
- 128, 129, 113, 115, 123, 107, 116, 130, 118, 107,
- 119, 131, 120, 132, 133, 121, 107, 134, 124, 127,
- 135, 136, 125, 128, 129, 137, 138, 139, 142, 147,
- 275, 130, 148, 149, 131, 150, 132, 151, 133, 152,
- 153, 134, 154, 158, 135, 136, 159, 160, 137, 138,
- 139, 164, 142, 147, 130, 165, 148, 149, 150, 166,
- 151, 167, 152, 168, 153, 154, 158, 169, 170, 159,
- 172, 160, 175, 266, 176, 164, 177, 260, 179, 165,
-
- 180, 182, 183, 166, 167, 187, 168, 188, 258, 189,
- 169, 170, 172, 191, 172, 192, 175, 176, 194, 201,
- 177, 179, 196, 180, 197, 182, 183, 198, 187, 199,
- 200, 188, 189, 202, 204, 172, 191, 172, 192, 205,
- 207, 208, 194, 201, 209, 196, 204, 197, 210, 212,
- 198, 215, 199, 200, 216, 218, 202, 219, 217, 221,
- 222, 225, 230, 207, 208, 228, 233, 209, 229, 205,
- 204, 210, 212, 236, 215, 217, 238, 216, 234, 218,
- 228, 219, 221, 222, 225, 230, 235, 239, 242, 233,
- 228, 240, 205, 241, 228, 246, 229, 236, 243, 217,
-
- 238, 234, 244, 245, 228, 247, 248, 253, 230, 235,
- 256, 239, 242, 228, 240, 257, 241, 228, 247, 229,
- 259, 261, 243, 263, 246, 264, 244, 245, 265, 248,
- 253, 267, 271, 256, 268, 269, 277, 261, 257, 276,
- 278, 280, 247, 259, 285, 282, 263, 246, 264, 268,
- 283, 276, 265, 277, 289, 267, 271, 287, 290, 268,
- 278, 261, 269, 268, 280, 282, 286, 285, 306, 288,
- 282, 292, 203, 268, 290, 276, 291, 277, 289, 283,
- 287, 286, 268, 293, 278, 269, 268, 292, 294, 282,
- 285, 286, 288, 282, 298, 286, 291, 299, 290, 302,
-
- 307, 291, 283, 306, 309, 286, 310, 293, 308, 312,
- 314, 292, 294, 313, 286, 190, 308, 298, 286, 145,
- 291, 299, 302, 307, 291, 311, 310, 309, 102, 93,
- 61, 310, 312, 311, 314, 42, 313, 38, 15, 11,
- 8, 3, 0, 308, 0, 0, 0, 0, 0, 0,
- 310, 0, 0, 0, 310, 0, 0, 0, 0, 0,
- 311, 320, 320, 0, 320, 320, 320, 321, 321, 322,
- 322, 322, 323, 323, 323, 324, 0, 0, 324, 324,
- 325, 0, 0, 325, 326, 326, 326, 327, 0, 0,
- 327, 327, 328, 0, 0, 328, 329, 329, 329, 330,
-
- 0, 0, 330, 330, 331, 0, 331, 331, 331, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319
+ 265, 116, 89, 118, 106, 119, 120, 121, 108, 123,
+ 109, 110, 125, 107, 124, 127, 111, 112, 109, 128,
+ 129, 130, 113, 115, 116, 131, 118, 132, 119, 120,
+ 121, 133, 134, 123, 135, 125, 107, 136, 124, 127,
+ 137, 138, 128, 129, 139, 130, 142, 147, 131, 148,
+ 132, 149, 256, 150, 151, 133, 134, 152, 135, 156,
+ 157, 136, 158, 137, 138, 162, 163, 139, 130, 164,
+ 142, 147, 165, 148, 166, 149, 150, 167, 151, 168,
+ 152, 170, 156, 157, 173, 175, 158, 174, 177, 162,
+ 163, 178, 180, 164, 181, 165, 185, 166, 187, 188,
+
+ 167, 190, 168, 170, 192, 170, 193, 194, 173, 175,
+ 174, 177, 195, 196, 178, 197, 180, 198, 181, 185,
+ 200, 187, 188, 201, 203, 190, 170, 192, 170, 193,
+ 194, 204, 200, 221, 205, 195, 196, 206, 208, 197,
+ 198, 211, 212, 222, 214, 215, 218, 203, 221, 250,
+ 223, 226, 227, 201, 204, 228, 200, 205, 221, 229,
+ 206, 208, 221, 230, 233, 211, 212, 214, 215, 218,
+ 231, 222, 221, 223, 226, 227, 201, 232, 228, 234,
+ 235, 221, 236, 229, 237, 221, 238, 230, 233, 239,
+ 248, 243, 246, 231, 222, 247, 223, 249, 253, 238,
+
+ 232, 251, 254, 234, 235, 255, 236, 257, 259, 258,
+ 266, 267, 239, 237, 243, 246, 261, 251, 247, 268,
+ 249, 253, 266, 238, 258, 254, 270, 273, 267, 255,
+ 272, 257, 199, 145, 258, 259, 237, 275, 258, 268,
+ 261, 251, 277, 278, 279, 102, 266, 276, 258, 270,
+ 272, 280, 267, 282, 288, 272, 273, 258, 259, 292,
+ 275, 258, 276, 268, 281, 277, 278, 280, 279, 282,
+ 283, 296, 276, 284, 272, 297, 276, 288, 272, 273,
+ 289, 304, 292, 275, 281, 93, 276, 299, 298, 281,
+ 302, 280, 303, 282, 283, 276, 298, 284, 297, 276,
+
+ 300, 301, 61, 42, 289, 304, 296, 38, 281, 301,
+ 299, 15, 281, 302, 11, 303, 8, 3, 0, 0,
+ 300, 0, 0, 298, 0, 300, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 301, 0, 0, 0,
+ 0, 0, 0, 0, 300, 0, 0, 0, 300, 310,
+ 310, 0, 310, 310, 310, 311, 311, 312, 312, 312,
+ 313, 313, 313, 314, 0, 0, 314, 314, 315, 0,
+ 0, 315, 316, 316, 316, 317, 0, 0, 317, 317,
+ 318, 0, 0, 318, 319, 319, 319, 320, 0, 0,
+ 320, 320, 321, 0, 321, 321, 321, 309, 309, 309,
+
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309
} ;
static yy_state_type yy_last_accepting_state;
@@ -811,8 +806,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 814 "engines/director/lingo/lingo-lex.cpp"
-#line 815 "engines/director/lingo/lingo-lex.cpp"
+#line 809 "engines/director/lingo/lingo-lex.cpp"
+#line 810 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1035,7 +1030,7 @@ YY_DECL
#line 111 "engines/director/lingo/lingo-lex.l"
-#line 1038 "engines/director/lingo/lingo-lex.cpp"
+#line 1033 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1063,13 +1058,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 >= 320 )
+ if ( yy_current_state >= 310 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 319 );
+ while ( yy_current_state != 309 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1199,141 +1194,131 @@ YY_RULE_SETUP
case 19:
YY_RULE_SETUP
#line 150 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGO; }
+{ count(); return tINSTANCE; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 151 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGOLOOP; }
+{ count(); return tINTERSECTS;}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 152 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINSTANCE; }
+{ count(); return tINTO; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 153 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTERSECTS;}
+{ count(); return tIN; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 154 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTO; }
+{ count(); return tITEM; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 155 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIN; }
+{ count(); return tLINE; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 156 "engines/director/lingo/lingo-lex.l"
-{ count(); return tITEM; }
+{ count(); return tMACRO;; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 157 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLINE; }
+{ count(); return tMETHOD; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 158 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMACRO;; }
+{ count(); return tMOD;}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 159 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMETHOD; }
+{ count(); return tMOVIE; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 160 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOD;}
+{ count(); return tNEXT; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 161 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOVIE; }
+{ count(); return tNOT; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 162 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEXT; }
+{ count(); return tOF; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 163 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNOT; }
+{ count(); return tON; } // D3
YY_BREAK
case 33:
YY_RULE_SETUP
#line 164 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOF; }
+{ count(); return tOPEN; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 165 "engines/director/lingo/lingo-lex.l"
-{ count(); return tON; } // D3
+{ count(); return tOR; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 166 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOPEN; }
+{ count(); return tPLAY; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 167 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOR; }
+{ count(); return tPREVIOUS; }
YY_BREAK
case 37:
YY_RULE_SETUP
#line 168 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAY; }
+{ count(); return tPROPERTY; } // D4
YY_BREAK
case 38:
YY_RULE_SETUP
#line 169 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPREVIOUS; }
+{ count(); return tPUT; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 170 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPROPERTY; } // D4
+{ count(); return tREPEAT; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 171 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPUT; }
+{ count(); return tSCRIPT; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 172 "engines/director/lingo/lingo-lex.l"
-{ count(); return tREPEAT; }
+{ count(); return tSET; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 173 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSCRIPT; }
+{ count(); return tSTARTS; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 174 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSET; }
+{ count(); return tTELL; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 175 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSTARTS; }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 176 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTELL; }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 177 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1370,9 +1355,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 47:
+case 45:
YY_RULE_SETUP
-#line 212 "engines/director/lingo/lingo-lex.l"
+#line 210 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1396,9 +1381,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 48:
+case 46:
YY_RULE_SETUP
-#line 234 "engines/director/lingo/lingo-lex.l"
+#line 232 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1473,9 +1458,9 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
}
YY_BREAK
-case 49:
+case 47:
YY_RULE_SETUP
-#line 307 "engines/director/lingo/lingo-lex.l"
+#line 305 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1511,9 +1496,9 @@ YY_RULE_SETUP
return tTHEENTITY;
}
YY_BREAK
-case 50:
+case 48:
YY_RULE_SETUP
-#line 341 "engines/director/lingo/lingo-lex.l"
+#line 339 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1541,84 +1526,84 @@ YY_RULE_SETUP
warning("LEXER: Unhandled the entity '%s'", ptr);
}
YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 365 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTHEN; }
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 366 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTO; }
+ YY_BREAK
case 51:
YY_RULE_SETUP
#line 367 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTHEN; }
+{ count(); return tASSERTERROR; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 368 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTO; }
+{ count(); return tSPRITE; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 369 "engines/director/lingo/lingo-lex.l"
-{ count(); return tASSERTERROR; }
+{ count(); return tWITH; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 370 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSPRITE; }
+{ count(); return tWITHIN; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 371 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITH; }
+{ count(); return tWHEN; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 372 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITHIN; }
+{ count(); return tWHILE; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 373 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHEN; }
+{ count(); return tWINDOW; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 374 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHILE; }
+{ count(); return tWORD; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 375 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWINDOW; }
+#line 376 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNEQ; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 376 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWORD; }
+#line 377 "engines/director/lingo/lingo-lex.l"
+{ count(); return tGE; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 378 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEQ; }
+{ count(); return tLE; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 379 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGE; }
+{ count(); return tCONCAT; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 380 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLE; }
+{ count(); return tEQ; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 381 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONCAT; }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
#line 382 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEQ; }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 384 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1626,43 +1611,43 @@ YY_RULE_SETUP
return tVARID;
}
YY_BREAK
-case 67:
+case 65:
YY_RULE_SETUP
-#line 390 "engines/director/lingo/lingo-lex.l"
+#line 388 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.f = atof(yytext); return tFLOAT; }
YY_BREAK
-case 68:
+case 66:
YY_RULE_SETUP
-#line 391 "engines/director/lingo/lingo-lex.l"
+#line 389 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
-case 69:
+case 67:
YY_RULE_SETUP
-#line 392 "engines/director/lingo/lingo-lex.l"
+#line 390 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
-case 70:
-/* rule 70 can match eol */
+case 68:
+/* rule 68 can match eol */
YY_RULE_SETUP
-#line 393 "engines/director/lingo/lingo-lex.l"
+#line 391 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
-case 71:
+case 69:
YY_RULE_SETUP
-#line 394 "engines/director/lingo/lingo-lex.l"
+#line 392 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
-case 72:
+case 70:
YY_RULE_SETUP
-#line 395 "engines/director/lingo/lingo-lex.l"
+#line 393 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
-case 73:
+case 71:
YY_RULE_SETUP
-#line 397 "engines/director/lingo/lingo-lex.l"
+#line 395 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1665 "engines/director/lingo/lingo-lex.cpp"
+#line 1650 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1961,7 +1946,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 >= 320 )
+ if ( yy_current_state >= 310 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1989,11 +1974,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 >= 320 )
+ if ( yy_current_state >= 310 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 319);
+ yy_is_jam = (yy_current_state == 309);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2671,7 +2656,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 397 "engines/director/lingo/lingo-lex.l"
+#line 395 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 4dda68ec6a..1776101089 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -146,9 +146,7 @@ exit { count(); return tEXIT; }
field { count(); return tFIELD; }
frame { count(); return tFRAME; }
global { count(); return tGLOBAL; }
-go{spc}+(to{spc}+)?frame { count(); return tGO; }
go{spc}+(to)? { count(); return tGO; }
-go{spc}+loop { count(); return tGOLOOP; }
instance { count(); return tINSTANCE; }
intersects { count(); return tINTERSECTS;}
into { count(); return tINTO; }
Commit: 9a2eaee9227aa892ce96cf7feae79c8e4099606a
https://github.com/scummvm/scummvm/commit/9a2eaee9227aa892ce96cf7feae79c8e4099606a
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove c_goto* and c_play
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 594fb9cd89..37c1adc4c5 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -87,10 +87,6 @@ static struct FuncDescr {
{ LC::c_globalpush, "c_globalpush", "s" },
{ LC::c_globalrefpush, "c_globalrefpush", "s" },
{ LC::c_ge, "c_ge", "" },
- { LC::c_goto, "c_goto", "" },
- { LC::c_gotoloop, "c_gotoloop", "" },
- { LC::c_gotonext, "c_gotonext", "" },
- { LC::c_gotoprevious, "c_gotoprevious", "" },
{ LC::c_gt, "c_gt", "" },
{ LC::c_hilite, "c_hilite", "" },
{ LC::c_intersects, "c_intersects", "" },
@@ -115,7 +111,6 @@ static struct FuncDescr {
{ LC::c_objectproppush, "c_objectproppush","ss" }, // object, prop
{ LC::c_of, "c_of", "" },
{ LC::c_or, "c_or", "" },
- { LC::c_play, "c_play", "" },
{ LC::c_procret, "c_procret", "" },
{ LC::c_proparraypush, "c_proparraypush", "i" },
{ LC::c_proppush, "c_proppush", "s" },
@@ -1404,43 +1399,6 @@ void LC::c_telldone() {
//************************
// Built-in functions
//************************
-void LC::c_goto() {
- Datum mode = g_lingo->pop();
- Datum frame, movie;
-
- if (mode.u.i == 2 || mode.u.i == 3)
- movie = g_lingo->pop();
-
- if (mode.u.i == 1 || mode.u.i == 3)
- frame = g_lingo->pop();
-
- g_lingo->func_goto(frame, movie);
-}
-
-void LC::c_gotoloop() {
- g_lingo->func_gotoloop();
-}
-
-void LC::c_gotonext() {
- g_lingo->func_gotonext();
-}
-
-void LC::c_gotoprevious() {
- g_lingo->func_gotoprevious();
-}
-
-void LC::c_play() {
- Datum mode = g_lingo->pop();
- Datum frame, movie;
-
- if (mode.u.i == 2 || mode.u.i == 3)
- movie = g_lingo->pop();
-
- if (mode.u.i == 1 || mode.u.i == 3)
- frame = g_lingo->pop();
-
- g_lingo->func_play(frame, movie);
-}
void LC::c_callcmd() {
Common::String name(g_lingo->readString());
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 9bd1d94c75..bcedfda681 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -130,12 +130,6 @@ void c_procret();
void c_mci();
void c_mciwait();
-void c_goto();
-void c_gotoloop();
-void c_gotonext();
-void c_gotoprevious();
-
-void c_play();
void c_open();
void c_hilite();
Commit: 35c103de10a9b23930169933f1dd5ab767e60a34
https://github.com/scummvm/scummvm/commit/35c103de10a9b23930169933f1dd5ab767e60a34
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Replace sound preprocessor
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-preprocessor.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 314c7aaaa0..c9c6ec8ecf 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -493,6 +493,23 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
return;
}
+ if (node->name->equalsIgnoreCase("sound") && node->args->size() >= 1 && (*node->args)[0]->type == kVarNode) {
+ VarNode *var = static_cast<VarNode *>((*node->args)[0]);
+ if (var->name->equalsIgnoreCase("close") ||
+ var->name->equalsIgnoreCase("fadeIn") ||
+ var->name->equalsIgnoreCase("fadeOut") ||
+ var->name->equalsIgnoreCase("playFile") ||
+ var->name->equalsIgnoreCase("stop")) {
+ code1(LC::c_symbolpush);
+ codeString(var->name->c_str());
+ for (uint i = 1; i < node->args->size(); i++) {
+ compile((*node->args)[i]);
+ }
+ codeCmd(node->name, node->args->size());
+ return;
+ }
+ }
+
compileList(node->args);
codeCmd(node->name, node->args->size());
}
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index b9832e1278..bec5b18121 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -27,7 +27,6 @@
namespace Director {
Common::String preprocessWhen(Common::String in, bool *changed);
-Common::String preprocessSound(Common::String in);
bool isspec(char c) {
return strchr("-+*/%%^:,()><&[]=", c) != NULL;
@@ -209,10 +208,6 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
bool changed = false;
res1 = preprocessWhen(res1, &changed);
- if (!changed) {
- res1 = preprocessSound(res1);
- }
-
res += res1;
linenumber++; // We do it here because of 'continue' statements
@@ -299,60 +294,4 @@ Common::String preprocessWhen(Common::String in, bool *changed) {
return res;
}
-// sound fadeIn 5, 10 -> sound #fadeIn, 5, 10
-Common::String preprocessSound(Common::String in) {
- Common::String res, next;
- const char *ptr = in.c_str();
- const char *beg = ptr;
- const char *nextPtr;
-
- while ((ptr = scumm_strcasestr(beg, "sound")) != NULL) {
- if (ptr != findtokstart(in.c_str(), ptr)) { // If we're in the middle of a word
- res += *beg++;
- continue;
- }
-
- ptr += 5; // end of 'sound'
- res += Common::String(beg, ptr);
-
- if (!*ptr) // If it is end of the line
- break;
-
- if (Common::isAlnum(*ptr)) { // If it is in the middle of the word
- beg = ptr;
- continue;
- }
-
- next = nexttok(ptr, &nextPtr);
-
- debugC(2, kDebugParse | kDebugPreprocess, "SOUND: nexttok: %s", next.c_str());
-
- bool modified = false;
-
- if (next.equalsIgnoreCase("close") ||
- next.equalsIgnoreCase("fadeIn") ||
- next.equalsIgnoreCase("fadeOut") ||
- next.equalsIgnoreCase("playFile") ||
- next.equalsIgnoreCase("stop")) {
- res += '#'; // Turn it into SYMBOL
- modified = true;
- } else {
- res += ' ';
- }
-
- res += next;
- if (modified)
- res += ',';
- ptr = nextPtr;
- beg = ptr;
- }
-
- res += Common::String(beg);
-
- if (in.size() != res.size())
- debugC(2, kDebugParse | kDebugPreprocess, "SOUND: in: %s\nout: %s", in.c_str(), res.c_str());
-
- return res;
-}
-
} // End of namespace Director
Commit: 884db621b4c393eb40b5908a48f805c290788e6a
https://github.com/scummvm/scummvm/commit/884db621b4c393eb40b5908a48f805c290788e6a
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement scummvmAssertError
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 26e92e7b81..c7fafc4919 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -44,6 +44,7 @@ struct RepeatWithToNode;
struct NextRepeatNode;
struct ExitRepeatNode;
struct ExitNode;
+struct AssertErrorNode;
struct IntNode;
struct FloatNode;
struct SymbolNode;
@@ -91,6 +92,7 @@ enum NodeType {
kNextRepeatNode,
kExitRepeatNode,
kExitNode,
+ kAssertErrorNode,
kIntNode,
kFloatNode,
kSymbolNode,
@@ -132,6 +134,7 @@ public:
virtual void visitNextRepeatNode(NextRepeatNode *node) = 0;
virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
virtual void visitExitNode(ExitNode *node) = 0;
+ virtual void visitAssertErrorNode(AssertErrorNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
virtual void visitSymbolNode(SymbolNode *node) = 0;
@@ -473,6 +476,20 @@ struct ExitNode : StmtNode {
}
};
+/* AssertErrorNode */
+
+struct AssertErrorNode : StmtNode {
+ Node *stmt;
+
+ AssertErrorNode(Node *stmtIn) : StmtNode(kAssertErrorNode), stmt(stmtIn) {}
+ virtual ~AssertErrorNode() {
+ delete stmt;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitAssertErrorNode(this);
+ }
+};
+
/* IntNode */
struct IntNode : ExprNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index c9c6ec8ecf..3d6d6dea2d 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -723,6 +723,14 @@ void LingoCompiler::visitExitNode(ExitNode *node) {
code1(LC::c_procret);
}
+/* AssertErrorNode */
+
+void LingoCompiler::visitAssertErrorNode(AssertErrorNode *node) {
+ code1(LC::c_asserterror);
+ compile(node->stmt);
+ code1(LC::c_asserterrordone);
+}
+
/* IntNode */
void LingoCompiler::visitIntNode(IntNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 2969bbf1c8..c1d5d83ab0 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -95,6 +95,7 @@ public:
virtual void visitNextRepeatNode(NextRepeatNode *node);
virtual void visitExitRepeatNode(ExitRepeatNode *node);
virtual void visitExitNode(ExitNode *node);
+ virtual void visitAssertErrorNode(AssertErrorNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
virtual void visitSymbolNode(SymbolNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 490b328dae..77ebf9d67c 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -608,18 +608,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 110
+#define YYFINAL 112
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2439
+#define YYLAST 2506
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 44
/* YYNRULES -- Number of rules. */
-#define YYNRULES 182
+#define YYNRULES 183
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 338
+#define YYNSTATES 340
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -684,17 +684,17 @@ static const yytype_int16 yyrline[] =
329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
342, 343, 346, 350, 360, 361, 362, 363, 366, 367,
368, 371, 372, 373, 374, 375, 376, 377, 378, 379,
- 382, 385, 390, 394, 400, 405, 408, 418, 423, 429,
- 435, 441, 449, 450, 451, 452, 455, 455, 457, 458,
- 459, 462, 466, 470, 476, 480, 484, 488, 490, 492,
- 496, 497, 501, 507, 514, 515, 521, 522, 523, 524,
- 525, 526, 527, 528, 531, 533, 537, 541, 542, 543,
- 546, 550, 555, 556, 557, 560, 562, 563, 566, 567,
- 568, 575, 576, 580, 581, 582, 583, 584, 585, 586,
+ 380, 383, 386, 391, 395, 401, 406, 409, 419, 424,
+ 430, 436, 442, 450, 451, 452, 453, 456, 456, 458,
+ 459, 460, 463, 467, 471, 477, 481, 485, 489, 491,
+ 493, 497, 498, 502, 508, 515, 516, 522, 523, 524,
+ 525, 526, 527, 528, 529, 532, 534, 538, 542, 543,
+ 544, 547, 551, 556, 557, 558, 561, 563, 564, 567,
+ 568, 569, 576, 577, 581, 582, 583, 584, 585, 586,
587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
- 597, 604, 605, 606, 607, 608, 609, 610, 611, 612,
- 613, 614, 615, 616, 617, 618, 619, 620, 621, 624,
- 625, 628, 632
+ 597, 598, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 618, 619, 620, 621, 622,
+ 625, 626, 629, 633
};
#endif
@@ -757,7 +757,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-224)
+#define YYPACT_NINF (-262)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -771,40 +771,40 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1275, -224, -224, -224, -224, -224, -224, -33, -224, 2075,
- 808, 887, -224, -224, 2075, -224, -16, -224, -224, 966,
- 31, 2075, -224, -224, -224, -224, 2075, -224, 808, 2075,
- -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
- -224, -224, -224, -224, -224, 2075, 2075, -224, -224, 44,
- 1275, -224, -224, -224, -224, 966, -224, -224, -224, -224,
- -224, -224, -224, -224, -55, -224, -224, -224, -224, -224,
- -15, -24, -224, -224, -224, -224, 887, 887, 887, 887,
- 887, 727, 322, -5, -9, -6, -224, -224, -224, -224,
- -224, -224, 403, 887, 2119, 2075, 15, 19, 484, 2075,
- 887, -224, -224, 10, 21, 24, 26, 27, 28, 2075,
- -224, -224, 29, 565, -224, -224, 2075, 646, 2320, -224,
- -224, -224, -224, 2154, -2, 25, 5, -64, -31, -224,
- 2320, 30, -1, 887, -224, -224, 84, 887, 887, 887,
- 887, 1045, 1045, 1203, 887, 887, 1124, 887, 887, 887,
- 887, 887, 887, 887, 887, -224, -224, -224, 2207, 2167,
- 1773, 887, 887, 887, 887, 33, -224, -224, 2075, 2075,
- 2075, 68, 2220, -224, -224, 887, -61, -224, -224, -224,
- -224, 36, -224, -224, 89, 2355, 887, -224, 887, 887,
- -224, 887, 2016, -224, -224, 887, 35, 887, -42, -42,
- -42, -42, 178, 178, -224, -49, -42, -42, -42, -42,
- -49, -35, -35, -224, -224, -1, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 1834, 101, 1834, -224, 40, 41,
- 42, 887, 1834, 2257, 2075, -224, -224, 60, -224, -224,
- 1834, 887, -23, 2320, 2320, 2320, -2, 25, 55, -224,
- 2320, -224, 2320, -42, -42, -42, -42, 178, 178, -224,
- -49, -42, -42, -42, -42, -49, -35, -35, -224, -224,
- -1, -224, -224, 1336, -224, -224, 1895, 1834, -224, -224,
- -224, 2104, 1398, -224, 2075, -61, 1466, 2320, -224, 1956,
- 62, -224, 1834, -224, 107, 887, 64, 65, -224, 2075,
- 1834, -224, -224, 1527, 887, 2270, -224, 1834, 2, -224,
- 1589, 66, 2307, 1834, 1834, -224, 2075, 75, -224, 1834,
- 1651, -224, -224, 1712, 76, 77, -224, -224
+ 1281, -262, -262, -262, -262, -262, -262, -31, -262, 2141,
+ 814, 893, -262, -262, 2141, -262, -28, -262, -262, 972,
+ 32, 2141, -262, -262, -262, -262, 2141, -262, 814, 2141,
+ -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+ -262, -262, -262, -262, -262, 2141, 2141, 2023, -262, 20,
+ 1281, -262, -262, -262, -262, 972, -262, -262, -262, -262,
+ -262, -262, -262, -262, -59, -262, -262, -262, -262, -262,
+ -262, -50, -36, -262, -262, -262, -262, 893, 893, 893,
+ 893, 893, 733, 328, -32, -14, -6, -262, -262, -262,
+ -262, -262, -262, 409, 893, 76, 2141, 6, 12, 490,
+ 2141, 893, -262, -262, -29, 13, 15, 16, 17, 23,
+ 2141, -262, -262, -262, 25, 571, -262, -262, 2141, 652,
+ 2374, -262, -262, -262, -262, 2183, -34, -30, -5, -58,
+ -24, -262, 2374, 21, 26, 893, -262, -262, 80, 893,
+ 893, 893, 893, 1051, 1051, 1209, 893, 893, 1130, 893,
+ 893, 893, 893, 893, 893, 893, 893, -262, -262, -262,
+ 2236, 2223, 1779, 893, 893, 893, 893, 33, -262, -262,
+ 2141, 2141, 2141, 69, 2274, -262, -262, 893, -61, -262,
+ -262, -262, -262, 36, -262, -262, 89, 2387, 893, -262,
+ 893, 893, -262, 893, 2082, -262, -262, 893, 35, 893,
+ 24, 24, 24, 24, 2422, 2422, -262, -42, 24, 24,
+ 24, 24, -42, -52, -52, -262, -262, 26, 893, 893,
+ 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
+ 893, 893, 893, 893, 893, 893, 1840, 101, 1840, -262,
+ 48, 49, 54, 893, 1840, 2287, 2141, -262, -262, 55,
+ -262, -262, 1840, 893, -70, 2374, 2374, 2374, -34, -30,
+ 50, -262, 2374, -262, 2374, 24, 24, 24, 24, 2422,
+ 2422, -262, -42, 24, 24, 24, 24, -42, -52, -52,
+ -262, -262, 26, -262, -262, 1342, -262, -262, 1901, 1840,
+ -262, -262, -262, 2170, 1404, -262, 2141, -61, 1472, 2374,
+ -262, 1962, 57, -262, 1840, -262, 102, 893, 59, 60,
+ -262, 2141, 1840, -262, -262, 1533, 893, 2324, -262, 1840,
+ -18, -262, 1595, 61, 2337, 1840, 1840, -262, 2141, 62,
+ -262, 1840, 1657, -262, -262, 1718, 63, 67, -262, -262
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -813,59 +813,59 @@ static const yytype_int16 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 24, 28, 31, 47, 56, 30, 0, 32, 60,
- 80, 0, 33, 35, 0, 39, 40, 42, 45, 80,
- 46, 48, 51, 54, 57, 55, 0, 43, 80, 60,
+ 81, 0, 33, 35, 0, 39, 40, 42, 45, 81,
+ 46, 48, 51, 54, 57, 55, 0, 43, 81, 60,
26, 44, 41, 38, 25, 27, 49, 29, 36, 37,
59, 53, 34, 58, 50, 60, 0, 52, 5, 0,
- 2, 3, 6, 7, 8, 80, 9, 64, 68, 69,
- 70, 65, 66, 67, 0, 79, 40, 46, 48, 62,
- 0, 61, 116, 117, 119, 118, 32, 39, 41, 0,
- 0, 0, 179, 124, 0, 0, 138, 122, 123, 139,
- 140, 143, 81, 0, 0, 60, 0, 0, 81, 0,
- 0, 124, 126, 0, 0, 0, 0, 0, 0, 60,
- 1, 4, 0, 81, 78, 98, 0, 87, 88, 120,
- 136, 137, 85, 0, 119, 118, 0, 124, 0, 130,
- 181, 0, 180, 179, 73, 74, 42, 0, 0, 0,
- 0, 26, 44, 38, 0, 0, 49, 0, 0, 0,
- 0, 0, 0, 0, 0, 141, 142, 161, 83, 0,
- 0, 0, 0, 0, 0, 0, 77, 72, 35, 25,
- 27, 0, 0, 96, 97, 0, 13, 75, 76, 100,
- 99, 0, 71, 63, 42, 91, 0, 135, 0, 0,
- 128, 0, 0, 129, 127, 0, 0, 0, 153, 154,
- 151, 152, 155, 156, 148, 158, 159, 160, 150, 149,
- 157, 144, 145, 146, 147, 82, 0, 0, 0, 0,
+ 2, 3, 6, 7, 8, 81, 9, 64, 68, 69,
+ 70, 65, 66, 67, 0, 79, 40, 46, 48, 52,
+ 62, 0, 61, 117, 118, 120, 119, 32, 39, 41,
+ 0, 0, 0, 180, 125, 0, 0, 139, 123, 124,
+ 140, 141, 144, 82, 0, 0, 60, 0, 0, 82,
+ 0, 0, 125, 127, 0, 0, 0, 0, 0, 0,
+ 60, 80, 1, 4, 0, 82, 78, 99, 0, 88,
+ 89, 121, 137, 138, 86, 0, 120, 119, 0, 125,
+ 0, 131, 182, 0, 181, 180, 73, 74, 42, 0,
+ 0, 0, 0, 26, 44, 38, 0, 0, 49, 0,
+ 0, 0, 0, 0, 0, 0, 0, 142, 143, 162,
+ 84, 0, 0, 0, 0, 0, 0, 0, 77, 72,
+ 35, 25, 27, 0, 0, 97, 98, 0, 13, 75,
+ 76, 101, 100, 0, 71, 63, 42, 92, 0, 136,
+ 0, 0, 129, 0, 0, 130, 128, 0, 0, 0,
+ 154, 155, 152, 153, 156, 157, 149, 159, 160, 161,
+ 151, 150, 158, 145, 146, 147, 148, 83, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 110, 101, 110, 125, 0, 0,
- 0, 0, 110, 0, 0, 17, 18, 11, 14, 15,
- 110, 0, 0, 134, 132, 133, 0, 0, 0, 131,
- 182, 121, 90, 171, 172, 169, 170, 173, 174, 166,
- 176, 177, 178, 168, 167, 175, 162, 163, 164, 165,
- 84, 114, 115, 0, 111, 112, 0, 10, 92, 93,
- 94, 0, 0, 95, 60, 0, 20, 89, 86, 0,
- 0, 113, 110, 103, 0, 0, 0, 0, 16, 21,
- 110, 105, 102, 0, 0, 0, 107, 110, 0, 22,
- 0, 0, 0, 110, 12, 19, 0, 0, 104, 110,
- 0, 23, 106, 0, 0, 0, 108, 109
+ 0, 0, 0, 0, 0, 0, 111, 102, 111, 126,
+ 0, 0, 0, 0, 111, 0, 0, 17, 18, 11,
+ 14, 15, 111, 0, 0, 135, 133, 134, 0, 0,
+ 0, 132, 183, 122, 91, 172, 173, 170, 171, 174,
+ 175, 167, 177, 178, 179, 169, 168, 176, 163, 164,
+ 165, 166, 85, 115, 116, 0, 112, 113, 0, 10,
+ 93, 94, 95, 0, 0, 96, 60, 0, 20, 90,
+ 87, 0, 0, 114, 111, 104, 0, 0, 0, 0,
+ 16, 21, 111, 106, 103, 0, 0, 0, 108, 111,
+ 0, 22, 0, 0, 0, 111, 12, 19, 0, 0,
+ 105, 111, 0, 23, 107, 0, 0, 0, 109, 110
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -224, -224, -224, 115, -224, -224, -224, -224, -224, -129,
- -224, -224, 0, -28, -224, 4, -224, -224, -12, 143,
- -224, -224, -224, -224, -224, -224, -223, -224, -222, -62,
- -11, -66, -224, -224, -224, -19, -20, -224, -21, -224,
- -8, 57, 39, -149
+ -262, -262, -262, 111, -262, -262, -262, -262, -262, -134,
+ -262, -262, 0, -23, -262, 2, 118, -262, -12, 138,
+ -262, -262, -262, -262, -262, -262, -234, -262, -261, -55,
+ -20, -77, -262, -262, -262, -27, -40, -262, 9, -262,
+ 38, 56, 34, -153
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 246, 247, 248, 249,
- 54, 318, 83, 70, 71, 282, 57, 58, 84, 85,
- 59, 175, 60, 61, 62, 63, 283, 284, 285, 86,
- 87, 238, 103, 88, 128, 129, 89, 90, 91, 157,
- 130, 158, 131, 132
+ 0, 49, 50, 51, 52, 53, 248, 249, 250, 251,
+ 54, 320, 84, 71, 72, 284, 57, 58, 85, 86,
+ 59, 177, 60, 61, 62, 63, 285, 286, 287, 87,
+ 88, 240, 104, 89, 130, 131, 90, 91, 92, 159,
+ 132, 160, 133, 134
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -873,498 +873,512 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 107, 92, 94, 56, 215, 64, 97, 163, 69,
- 102, 98, 244, 287, 95, 163, 105, 108, 144, 292,
- 92, 101, 163, 96, 133, 245, 104, 296, 191, 69,
- 155, 114, 150, 151, 152, 153, 155, 252, 149, 150,
- 151, 152, 153, 112, 110, 69, 109, 113, 152, 153,
- 55, 155, 173, 65, 56, 155, 192, 119, 120, 121,
- 193, 301, 174, 116, 195, 301, 298, 165, 117, 118,
- 301, 115, 156, 123, 301, 99, 100, 134, 156, 313,
- 135, 181, 127, 133, 280, 159, 195, 320, 325, 326,
- 188, 301, 172, 156, 324, 69, 190, 156, 301, 171,
- 330, 166, 301, 239, 240, 167, 333, 176, 301, 69,
- 177, 301, 178, 179, 180, 182, 183, 189, 197, 236,
- 241, 194, 250, 251, 261, 286, 288, 289, 290, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 295, 191, 312, 314,
- 316, 317, 328, 202, 203, 204, 207, 237, 237, 237,
- 55, 332, 336, 337, 235, 111, 308, 243, 101, 101,
- 101, 106, 196, 259, 185, 0, 0, 0, 0, 0,
- 253, 254, 0, 255, 0, 0, 0, 260, 0, 262,
- 0, 0, 258, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 0, 0, 0, 137, 138,
- 139, 140, 0, 291, 55, 163, 55, 0, 144, 145,
- 164, 0, 55, 297, 294, 0, 0, 0, 0, 0,
- 55, 0, 0, 0, 0, 0, 147, 148, 149, 150,
- 151, 152, 153, 0, 0, 0, 307, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 55, 0, 0, 55, 55, 0, 0,
- 303, 0, 55, 0, 69, 0, 55, 315, 0, 55,
- 0, 0, 55, 311, 0, 0, 322, 0, 0, 319,
- 55, 0, 0, 55, 0, 0, 0, 55, 0, 0,
- 55, 0, 0, 55, 55, 0, 331, 72, 0, 55,
- 55, 0, 73, 55, 0, 1, 124, 125, 0, 0,
+ 55, 103, 56, 217, 289, 165, 108, 98, 64, 70,
+ 294, 97, 246, 175, 96, 165, 106, 197, 298, 300,
+ 112, 102, 109, 176, 303, 247, 105, 116, 303, 70,
+ 135, 154, 155, 303, 193, 254, 117, 303, 157, 152,
+ 153, 154, 155, 114, 157, 70, 110, 55, 93, 95,
+ 55, 118, 56, 158, 303, 65, 135, 99, 190, 158,
+ 157, 303, 191, 194, 157, 303, 93, 195, 327, 328,
+ 315, 303, 136, 167, 303, 158, 100, 101, 322, 158,
+ 137, 165, 282, 129, 146, 326, 192, 183, 121, 122,
+ 123, 332, 168, 115, 241, 242, 70, 335, 169, 178,
+ 173, 179, 180, 181, 151, 152, 153, 154, 155, 182,
+ 70, 184, 196, 197, 199, 119, 120, 162, 185, 238,
+ 125, 243, 252, 253, 263, 288, 139, 140, 141, 142,
+ 163, 164, 161, 165, 290, 291, 146, 147, 166, 174,
+ 292, 297, 193, 314, 316, 318, 319, 330, 334, 338,
+ 239, 239, 239, 339, 149, 150, 151, 152, 153, 154,
+ 155, 113, 55, 310, 237, 111, 107, 261, 0, 198,
+ 102, 102, 102, 0, 0, 187, 0, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, 260, 0, 0, 0, 0, 0,
+ 0, 204, 205, 206, 209, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 245, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 255, 256,
+ 0, 257, 0, 0, 0, 262, 55, 264, 55, 0,
+ 0, 0, 0, 0, 55, 0, 296, 0, 0, 0,
+ 0, 0, 55, 0, 0, 0, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
+ 279, 280, 281, 309, 0, 0, 0, 0, 0, 0,
+ 0, 293, 0, 0, 0, 55, 0, 0, 55, 55,
+ 305, 299, 0, 0, 55, 0, 70, 0, 55, 0,
+ 0, 55, 0, 313, 55, 0, 0, 0, 0, 0,
+ 0, 321, 55, 0, 0, 55, 0, 0, 0, 55,
+ 0, 0, 55, 0, 0, 55, 55, 0, 333, 0,
+ 0, 55, 55, 73, 0, 55, 0, 0, 74, 0,
+ 0, 1, 126, 127, 0, 317, 0, 2, 3, 4,
+ 5, 6, 0, 0, 324, 8, 0, 0, 0, 12,
+ 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
+ 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 30, 31, 79, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
+ 0, 0, 0, 0, 0, 69, 0, 0, 0, 80,
+ 81, 0, 0, 0, 73, 0, 94, 0, 83, 74,
+ 128, 0, 1, 75, 76, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 66, 138, 18, 0, 67, 68,
+ 0, 22, 23, 24, 25, 0, 27, 0, 0, 139,
+ 140, 141, 142, 143, 144, 79, 145, 34, 35, 146,
+ 147, 148, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 0, 0, 0, 0, 69, 149, 150, 151,
+ 152, 153, 154, 155, 0, 73, 156, 94, 0, 83,
+ 74, 0, 0, 1, 75, 76, 0, 0, 0, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 170, 0, 15, 66, 17, 18, 0, 67,
+ 68, 0, 22, 23, 24, 25, 0, 27, 0, 0,
+ 139, 140, 141, 142, 143, 144, 79, 145, 171, 172,
+ 146, 147, 148, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 0, 0, 0, 0, 69, 149, 150,
+ 151, 152, 153, 154, 155, 0, 73, 156, 94, 0,
+ 83, 74, 0, 0, 1, 75, 76, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 139, 140, 141, 142, 143, 144, 79, 145, 34,
+ 35, 146, 147, 148, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 69, 149,
+ 150, 151, 152, 153, 154, 155, 0, 73, 156, 94,
+ 0, 83, 74, 0, 0, 1, 75, 76, 0, 0,
0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
+ 0, 0, 0, 12, 13, 0, 15, 66, 186, 18,
0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 78, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 0, 0, 0, 0, 47,
- 0, 0, 0, 79, 80, 0, 0, 0, 72, 0,
- 93, 0, 82, 73, 126, 0, 1, 74, 75, 0,
+ 0, 0, 139, 140, 141, 142, 143, 144, 79, 145,
+ 34, 35, 146, 147, 148, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 0, 0, 0, 0, 69,
+ 149, 150, 151, 152, 153, 154, 155, 0, 73, 0,
+ 94, 0, 83, 74, 0, 0, 1, 75, 76, 0,
0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 66, 136,
+ 8, 0, 0, 0, 12, 13, 0, 15, 66, 17,
18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 137, 138, 139, 140, 141, 142, 78,
- 143, 34, 35, 144, 145, 146, 37, 38, 39, 40,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 79,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
- 47, 147, 148, 149, 150, 151, 152, 153, 0, 72,
- 154, 93, 0, 82, 73, 0, 0, 1, 74, 75,
+ 69, 0, 0, 0, 80, 81, 0, 0, 0, 73,
+ 0, 94, 124, 83, 74, 0, 0, 1, 75, 76,
0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 168, 0, 15, 66,
+ 0, 77, 0, 0, 0, 12, 13, 0, 78, 66,
17, 18, 0, 67, 68, 0, 22, 23, 24, 25,
- 0, 27, 0, 0, 137, 138, 139, 140, 141, 142,
- 78, 143, 169, 170, 144, 145, 146, 37, 38, 39,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 79, 33, 34, 35, 0, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 0, 0, 0, 0, 0,
- 0, 47, 147, 148, 149, 150, 151, 152, 153, 0,
- 72, 154, 93, 0, 82, 73, 0, 0, 1, 74,
- 75, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
- 25, 0, 27, 0, 0, 137, 138, 139, 140, 141,
- 142, 78, 143, 34, 35, 144, 145, 146, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
- 0, 0, 47, 147, 148, 149, 150, 151, 152, 153,
- 0, 72, 154, 93, 0, 82, 73, 0, 0, 1,
- 74, 75, 0, 0, 0, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 66, 184, 18, 0, 67, 68, 0, 22, 23,
- 24, 25, 0, 27, 0, 0, 137, 138, 139, 140,
- 141, 142, 78, 143, 34, 35, 144, 145, 146, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 0,
- 0, 0, 0, 47, 147, 148, 149, 150, 151, 152,
- 153, 0, 72, 0, 93, 0, 82, 73, 0, 0,
- 1, 74, 75, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 66, 17, 18, 0, 67, 68, 0, 22,
- 23, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 78, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 0, 0, 0, 0, 47, 0, 0, 0, 79, 80,
- 0, 0, 0, 72, 0, 93, 122, 82, 73, 0,
- 0, 1, 74, 75, 0, 0, 0, 2, 3, 4,
- 5, 6, 0, 0, 0, 76, 0, 0, 0, 12,
- 13, 0, 77, 66, 17, 18, 0, 67, 68, 0,
- 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 78, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 0, 0, 0, 0, 47, 0, 0, 0, 79,
- 80, 0, 72, 0, 0, 0, 81, 73, 82, 0,
- 1, 74, 75, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 66, 17, 18, 0, 67, 68, 0, 22,
- 23, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 78, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
- 0, 0, 0, 0, 47, 0, 0, 0, 79, 80,
- 0, 72, 0, 0, 0, 93, 73, 82, 0, 1,
- 74, 75, 0, 0, 0, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 66, 17, 18, 0, 67, 68, 0, 22, 23,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 30, 31, 78, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 0, 0,
- 0, 0, 0, 47, 0, 0, 0, 79, 80, 0,
- 72, 0, 0, 0, 81, 73, 82, 0, 1, 74,
- 75, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
- 25, 0, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 78, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 0, 0, 0, 0,
- 0, 0, 47, 0, 0, 0, 79, 80, 0, 72,
- 0, 0, 0, 93, 73, 82, 0, 1, 74, 75,
- 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 66,
- 17, 18, 0, 67, 68, 0, 22, 23, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 33, 34, 35, 0, 0, 0, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 0, 0, 0,
- 0, 47, 0, 0, 0, 79, 80, 0, 72, 0,
- 0, 0, 93, 73, 82, 0, 1, 74, 75, 0,
+ 0, 69, 0, 0, 0, 80, 81, 0, 73, 0,
+ 0, 0, 82, 74, 83, 0, 1, 75, 76, 0,
0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
8, 0, 0, 0, 12, 13, 0, 15, 66, 17,
18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 0, 0, 78,
- 0, 34, 35, 0, 0, 0, 37, 38, 39, 40,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 79,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
- 47, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 93, 0, 82, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 69, 0, 0, 0, 80, 81, 0, 73, 0, 0,
+ 0, 94, 74, 83, 0, 1, 75, 76, 0, 0,
+ 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
+ 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 79, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 0, 0, 0, 0, 0, 69,
+ 0, 0, 0, 80, 81, 0, 73, 0, 0, 0,
+ 82, 74, 83, 0, 1, 75, 76, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 79, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 0, 0, 0, 0, 0, 0, 69, 0,
+ 0, 0, 80, 81, 0, 73, 0, 0, 0, 94,
+ 74, 83, 0, 1, 75, 76, 0, 0, 0, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 66, 17, 18, 0, 67,
+ 68, 0, 22, 23, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 0, 0, 79, 33, 34, 35,
+ 0, 0, 0, 37, 38, 39, 40, 41, 42, 43,
+ 44, 0, 0, 0, 0, 0, 0, 69, 0, 0,
+ 0, 80, 81, 0, 73, 0, 0, 0, 94, 74,
+ 83, 0, 1, 75, 76, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
+ 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 0, 0, 79, 0, 34, 35, 0,
+ 0, 0, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 94, 0, 83,
+ 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 0, 1, 0, 0, 47, 0,
+ 0, 2, 3, 4, 5, 6, 301, 48, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 0, 0, 302, 1, 0, 47,
+ 0, 0, 0, 2, 3, 4, 5, 6, 283, 0,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 0, 308,
+ 0, 47, 0, 0, 0, 1, 0, 0, 311, 0,
+ 283, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 0, 283, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
+ 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 0, 0, 323, 1, 0,
+ 47, 0, 0, 0, 2, 3, 4, 5, 6, 283,
+ 0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 0, 1,
- 0, 0, 47, 0, 0, 2, 3, 4, 5, 6,
- 299, 48, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 300, 1, 0, 47, 0, 0, 0, 2, 3, 4,
- 5, 6, 281, 0, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 0, 306, 0, 47, 0, 0, 0, 1,
- 0, 0, 309, 0, 281, 2, 3, 4, 5, 6,
- 0, 0, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 1, 0, 0, 47, 0, 0, 2, 3, 4, 5,
- 6, 0, 281, 7, 8, 9, 10, 11, 12, 13,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 329,
+ 1, 0, 47, 0, 0, 0, 2, 3, 4, 5,
+ 6, 283, 0, 7, 8, 9, 10, 11, 12, 13,
0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 321, 1, 0, 47, 0, 0, 0, 2, 3,
- 4, 5, 6, 281, 0, 7, 8, 9, 10, 11,
+ 0, 1, 336, 0, 47, 0, 0, 2, 3, 4,
+ 5, 6, 0, 283, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 1, 337, 0, 47, 0, 0, 2, 3,
+ 4, 5, 6, 0, 283, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 327, 1, 0, 47, 0, 0, 0,
- 2, 3, 4, 5, 6, 281, 0, 7, 8, 9,
+ 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
+ 3, 4, 5, 6, 0, 236, 7, 8, 9, 10,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
+ 2, 3, 4, 5, 6, 0, 283, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 1, 334, 0, 47, 0,
- 0, 2, 3, 4, 5, 6, 0, 281, 7, 8,
+ 43, 44, 45, 0, 0, 1, 0, 0, 47, 0,
+ 0, 2, 3, 4, 5, 6, 0, 304, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 335, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 281, 7,
- 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
- 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
+ 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 0, 312, 7,
+ 8, 9, 10, 0, 12, 13, 0, 15, 16, 17,
+ 18, 19, 67, 21, 0, 22, 23, 24, 25, 0,
27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 1, 0, 0,
- 47, 0, 0, 2, 3, 4, 5, 6, 0, 234,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
- 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
- 281, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
- 0, 0, 47, 0, 0, 2, 3, 4, 5, 6,
- 0, 302, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 1,
- 256, 257, 0, 47, 0, 2, 3, 4, 5, 6,
- 0, 0, 310, 8, 0, 0, 0, 12, 13, 0,
- 15, 66, 17, 18, 0, 67, 68, 0, 22, 23,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 0, 1, 0,
- 0, 0, 0, 47, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 66, 17, 18, 0, 67, 68, 0, 22, 23, 24,
- 25, 0, 27, 0, 0, 0, 0, 304, 0, 30,
- 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 305, 0, 0, 0,
- 0, 0, 47, 0, 137, 138, 139, 140, 161, 162,
- 160, 163, 0, 0, 144, 145, 164, 0, 0, 137,
- 138, 139, 140, 161, 162, 0, 163, 0, 0, 144,
- 145, 164, 147, 148, 149, 150, 151, 152, 153, 0,
- 0, 0, 0, 0, 0, 0, 0, 147, 148, 149,
- 150, 151, 152, 153, 137, 138, 139, 140, 161, 162,
- 0, 163, 0, 0, 144, 145, 164, 137, 138, 139,
- 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
- 0, 0, 147, 148, 149, 150, 151, 152, 153, 0,
- 0, 186, 0, 187, 0, 147, 148, 149, 150, 151,
- 152, 153, 0, 0, 0, 0, 187, 216, 217, 218,
- 219, 220, 221, 0, 222, 0, 0, 223, 224, 225,
- 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
- 144, 145, 164, 0, 0, 226, 227, 228, 229, 230,
- 231, 232, 0, 0, 233, 0, 0, 0, 147, 148,
- 149, 150, 151, 152, 153, 0, 242, 137, 138, 139,
- 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
- 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
- 144, 145, 164, 0, 0, 147, 148, 149, 150, 151,
- 152, 153, 0, 293, 0, 0, 0, 0, 147, 148,
- 149, 150, 151, 152, 153, 0, 323, 137, 138, 139,
- 140, 161, 162, 0, 163, 0, 0, 144, 145, 164,
- 137, 138, 139, 140, 161, 162, 0, 163, 0, 0,
- 144, 145, 164, 0, 0, 147, 148, 149, 150, 151,
- 152, 153, 0, 329, 0, 0, 0, 0, 147, 148,
- 149, 150, 151, 152, 153, 216, 217, 218, 219, 220,
- 221, 0, 222, 0, 0, 223, 224, 225, 0, 0,
+ 41, 42, 43, 44, 45, 1, 258, 259, 0, 0,
+ 47, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
+ 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 0, 1, 0, 0, 0, 0, 69,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
+ 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 306, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 307, 0, 0, 0, 0, 0, 69, 0,
+ 139, 140, 141, 142, 163, 164, 0, 165, 0, 0,
+ 146, 147, 166, 139, 140, 141, 142, 163, 164, 0,
+ 165, 0, 0, 146, 147, 166, 0, 0, 149, 150,
+ 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
+ 0, 149, 150, 151, 152, 153, 154, 155, 0, 0,
+ 188, 0, 189, 139, 140, 141, 142, 163, 164, 0,
+ 165, 0, 0, 146, 147, 166, 218, 219, 220, 221,
+ 222, 223, 0, 224, 0, 0, 225, 226, 227, 0,
+ 0, 149, 150, 151, 152, 153, 154, 155, 0, 0,
+ 0, 0, 189, 0, 228, 229, 230, 231, 232, 233,
+ 234, 0, 0, 235, 139, 140, 141, 142, 163, 164,
+ 0, 165, 0, 0, 146, 147, 166, 139, 140, 141,
+ 142, 163, 164, 0, 165, 0, 0, 146, 147, 166,
+ 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
+ 244, 0, 0, 0, 0, 149, 150, 151, 152, 153,
+ 154, 155, 0, 295, 139, 140, 141, 142, 163, 164,
+ 0, 165, 0, 0, 146, 147, 166, 139, 140, 141,
+ 142, 163, 164, 0, 165, 0, 0, 146, 147, 166,
+ 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
+ 325, 0, 0, 0, 0, 149, 150, 151, 152, 153,
+ 154, 155, 0, 331, 139, 140, 141, 142, 163, 164,
+ 0, 165, 0, 0, 146, 147, 166, 218, 219, 220,
+ 221, 222, 223, 0, 224, 0, 0, 225, 226, 227,
+ 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
+ 0, 0, 0, 0, 0, 228, 229, 230, 231, 232,
+ 233, 234, 139, 140, 141, 142, 0, 0, 0, 165,
+ 0, 0, 146, 147, 166, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 226, 227, 228, 229, 230, 231, 232
+ 149, 150, 151, 152, 153, 154, 155
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 10, 11, 0, 154, 39, 19, 57, 9,
- 21, 19, 73, 236, 14, 57, 28, 45, 60, 242,
- 28, 21, 57, 39, 88, 86, 26, 250, 92, 29,
- 92, 86, 81, 82, 83, 84, 98, 186, 80, 81,
- 82, 83, 84, 55, 0, 45, 46, 55, 83, 84,
- 50, 113, 42, 86, 50, 117, 87, 78, 79, 80,
- 91, 283, 52, 87, 87, 287, 89, 95, 76, 77,
- 292, 86, 92, 81, 296, 44, 45, 86, 98, 302,
- 86, 109, 82, 88, 233, 93, 87, 310, 86, 87,
- 92, 313, 100, 113, 317, 95, 91, 117, 320, 99,
- 323, 86, 324, 169, 170, 86, 329, 86, 330, 109,
- 86, 333, 86, 86, 86, 86, 116, 92, 34, 86,
- 52, 91, 86, 34, 89, 24, 86, 86, 86, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 86, 92, 86, 42,
- 86, 86, 86, 161, 162, 163, 164, 168, 169, 170,
- 160, 86, 86, 86, 160, 50, 295, 175, 168, 169,
- 170, 28, 133, 192, 117, -1, -1, -1, -1, -1,
- 188, 189, -1, 191, -1, -1, -1, 195, -1, 197,
- -1, -1, 192, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 216, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, -1, -1, -1, 50, 51,
- 52, 53, -1, 241, 234, 57, 236, -1, 60, 61,
- 62, -1, 242, 251, 244, -1, -1, -1, -1, -1,
- 250, -1, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, 294, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 283, -1, -1, 286, 287, -1, -1,
- 286, -1, 292, -1, 294, -1, 296, 305, -1, 299,
- -1, -1, 302, 299, -1, -1, 314, -1, -1, 309,
- 310, -1, -1, 313, -1, -1, -1, 317, -1, -1,
- 320, -1, -1, 323, 324, -1, 326, 5, -1, 329,
- 330, -1, 10, 333, -1, 13, 14, 15, -1, -1,
+ 0, 21, 0, 156, 238, 57, 29, 19, 39, 9,
+ 244, 39, 73, 42, 14, 57, 28, 87, 252, 89,
+ 0, 21, 45, 52, 285, 86, 26, 86, 289, 29,
+ 88, 83, 84, 294, 92, 188, 86, 298, 93, 81,
+ 82, 83, 84, 55, 99, 45, 46, 47, 10, 11,
+ 50, 87, 50, 93, 315, 86, 88, 19, 92, 99,
+ 115, 322, 92, 87, 119, 326, 28, 91, 86, 87,
+ 304, 332, 86, 96, 335, 115, 44, 45, 312, 119,
+ 86, 57, 235, 83, 60, 319, 91, 110, 79, 80,
+ 81, 325, 86, 55, 171, 172, 96, 331, 86, 86,
+ 100, 86, 86, 86, 80, 81, 82, 83, 84, 86,
+ 110, 86, 91, 87, 34, 77, 78, 41, 118, 86,
+ 82, 52, 86, 34, 89, 24, 50, 51, 52, 53,
+ 54, 55, 94, 57, 86, 86, 60, 61, 62, 101,
+ 86, 86, 92, 86, 42, 86, 86, 86, 86, 86,
+ 170, 171, 172, 86, 78, 79, 80, 81, 82, 83,
+ 84, 50, 162, 297, 162, 47, 28, 194, -1, 135,
+ 170, 171, 172, -1, -1, 119, -1, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 194, -1, -1, -1, -1, -1,
+ -1, 163, 164, 165, 166, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 177, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 190, 191,
+ -1, 193, -1, -1, -1, 197, 236, 199, 238, -1,
+ -1, -1, -1, -1, 244, -1, 246, -1, -1, -1,
+ -1, -1, 252, -1, -1, -1, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 232, 233, 234, 296, -1, -1, -1, -1, -1, -1,
+ -1, 243, -1, -1, -1, 285, -1, -1, 288, 289,
+ 288, 253, -1, -1, 294, -1, 296, -1, 298, -1,
+ -1, 301, -1, 301, 304, -1, -1, -1, -1, -1,
+ -1, 311, 312, -1, -1, 315, -1, -1, -1, 319,
+ -1, -1, 322, -1, -1, 325, 326, -1, 328, -1,
+ -1, 331, 332, 5, -1, 335, -1, -1, 10, -1,
+ -1, 13, 14, 15, -1, 307, -1, 19, 20, 21,
+ 22, 23, -1, -1, 316, 27, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
+ 82, -1, -1, -1, 5, -1, 88, -1, 90, 10,
+ 92, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, -1, -1, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
+ 81, 82, 83, 84, -1, 5, 87, 88, -1, 90,
+ 10, -1, -1, 13, 14, 15, -1, -1, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, -1, -1, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, 5, 87, 88, -1,
+ 90, 10, -1, -1, 13, 14, 15, -1, -1, -1,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
+ -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, -1, -1, -1, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 5, 87, 88,
+ -1, 90, 10, -1, -1, 13, 14, 15, -1, -1,
-1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
-1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
-1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ -1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, 81, 82, -1, -1, -1, 5, -1,
- 88, -1, 90, 10, 92, -1, 13, 14, 15, -1,
+ 78, 79, 80, 81, 82, 83, 84, -1, 5, -1,
+ 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
-1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
- 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
- -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, -1, -1, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 5, 87, 88, -1, 90, 10, -1, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, -1, -1, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 5, 87, 88, -1, 90, 10, -1, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, 5, -1, 88, -1, 90, 10, -1, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, -1, -1, 5, -1, 88, 89, 90, 10, -1,
- -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
- 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
- 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
- -1, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
- -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
+ 77, -1, -1, -1, 81, 82, -1, -1, -1, 5,
+ -1, 88, 89, 90, 10, -1, -1, 13, 14, 15,
-1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
-1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
- 56, 57, 58, 59, -1, -1, -1, 63, 64, 65,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
-1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
-1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
-1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, -1, -1, 56,
- -1, 58, 59, -1, -1, -1, 63, 64, 65, 66,
+ 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, 13, -1,
- -1, 88, -1, 90, 19, 20, 21, 22, 23, -1,
- -1, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
+ -1, 88, 10, 90, -1, 13, 14, 15, -1, -1,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
+ 88, 10, 90, -1, 13, 14, 15, -1, -1, -1,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
+ -1, -1, -1, -1, -1, -1, -1, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
+ -1, -1, 81, 82, -1, 5, -1, -1, -1, 88,
+ 10, 90, -1, 13, 14, 15, -1, -1, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
+ -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
+ -1, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
+ -1, 81, 82, -1, 5, -1, -1, -1, 88, 10,
+ 90, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, -1, -1, 56, -1, 58, 59, -1,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
+ -1, -1, -1, -1, 13, -1, -1, 88, -1, 90,
+ 19, 20, 21, 22, 23, -1, -1, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, 46, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, -1, 13, -1, -1, 77, -1,
+ -1, 19, 20, 21, 22, 23, 24, 86, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
+ -1, -1, -1, 19, 20, 21, 22, 23, 86, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, -1, 75,
+ -1, 77, -1, -1, -1, 13, -1, -1, 16, -1,
+ 86, 19, 20, 21, 22, 23, -1, -1, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, 74, 13, -1,
+ 77, -1, -1, -1, 19, 20, 21, 22, 23, 86,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, 46, 47, 48, 49, -1, -1, -1, -1, 54,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, -1, 13,
- -1, -1, 77, -1, -1, 19, 20, 21, 22, 23,
- 24, 86, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 74, 13, -1, 77, -1, -1, -1, 19, 20, 21,
- 22, 23, 86, -1, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, -1, 75, -1, 77, -1, -1, -1, 13,
- -1, -1, 16, -1, 86, 19, 20, 21, 22, 23,
- -1, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, -1, -1, 77, -1, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
+ 13, -1, 77, -1, -1, -1, 19, 20, 21, 22,
+ 23, 86, -1, 26, 27, 28, 29, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 74, 13, -1, 77, -1, -1, -1, 19, 20,
- 21, 22, 23, 86, -1, 26, 27, 28, 29, 30,
+ -1, 13, 75, -1, 77, -1, -1, 19, 20, 21,
+ 22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, 13, 75, -1, 77, -1, -1, 19, 20,
+ 21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 74, 13, -1, 77, -1, -1, -1,
- 19, 20, 21, 22, 23, 86, -1, 26, 27, 28,
+ 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
+ 20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
+ 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, 75, -1, 77, -1,
+ 69, 70, 71, -1, -1, 13, -1, -1, 77, -1,
-1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, 75, -1, 77,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
-1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 27, 28, 29, -1, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
- 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
- -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- -1, -1, 77, -1, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, 13,
- 14, 15, -1, 77, -1, 19, 20, 21, 22, 23,
- -1, -1, 86, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, 13, -1,
- -1, -1, -1, 77, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, -1, -1, -1, -1, 23, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 42, -1, -1, -1,
- -1, -1, 77, -1, 50, 51, 52, 53, 54, 55,
- 41, 57, -1, -1, 60, 61, 62, -1, -1, 50,
- 51, 52, 53, 54, 55, -1, 57, -1, -1, 60,
- 61, 62, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
- 81, 82, 83, 84, 50, 51, 52, 53, 54, 55,
+ 67, 68, 69, 70, 71, 13, 14, 15, -1, -1,
+ 77, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 13, -1, -1, -1, -1, 77,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
+ -1, -1, -1, 23, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 42, -1, -1, -1, -1, -1, 77, -1,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, -1, -1, -1, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ 87, -1, 89, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, 89, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, 87, 50, 51, 52, 53, 54, 55,
-1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
-1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, 87, -1, 89, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, -1, 89, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, 87, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
+ 86, -1, -1, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, -1, -1, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, -1, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, 50, 51, 52, 53, -1, -1, -1, 57,
+ -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
+ 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1377,34 +1391,34 @@ static const yytype_uint8 yystos[] =
54, 55, 56, 57, 58, 59, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 77, 86, 94,
95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
- 115, 116, 117, 118, 39, 86, 35, 39, 40, 105,
- 106, 107, 5, 10, 14, 15, 27, 34, 56, 81,
- 82, 88, 90, 105, 111, 112, 122, 123, 126, 129,
- 130, 131, 133, 88, 133, 105, 39, 111, 133, 44,
- 45, 105, 123, 125, 105, 111, 112, 106, 106, 105,
- 0, 96, 111, 133, 86, 86, 87, 133, 133, 131,
- 131, 131, 89, 133, 14, 15, 92, 105, 127, 128,
- 133, 135, 136, 88, 86, 86, 36, 50, 51, 52,
- 53, 54, 55, 57, 60, 61, 62, 78, 79, 80,
- 81, 82, 83, 84, 87, 122, 129, 132, 134, 133,
- 41, 54, 55, 57, 62, 106, 86, 86, 32, 58,
- 59, 105, 133, 42, 52, 114, 86, 86, 86, 86,
- 86, 106, 86, 105, 36, 134, 87, 89, 92, 92,
- 91, 92, 87, 91, 91, 87, 135, 34, 133, 133,
+ 115, 116, 117, 118, 39, 86, 35, 39, 40, 77,
+ 105, 106, 107, 5, 10, 14, 15, 27, 34, 56,
+ 81, 82, 88, 90, 105, 111, 112, 122, 123, 126,
+ 129, 130, 131, 133, 88, 133, 105, 39, 111, 133,
+ 44, 45, 105, 123, 125, 105, 111, 112, 106, 106,
+ 105, 109, 0, 96, 111, 133, 86, 86, 87, 133,
+ 133, 131, 131, 131, 89, 133, 14, 15, 92, 105,
+ 127, 128, 133, 135, 136, 88, 86, 86, 36, 50,
+ 51, 52, 53, 54, 55, 57, 60, 61, 62, 78,
+ 79, 80, 81, 82, 83, 84, 87, 122, 129, 132,
+ 134, 133, 41, 54, 55, 57, 62, 106, 86, 86,
+ 32, 58, 59, 105, 133, 42, 52, 114, 86, 86,
+ 86, 86, 86, 106, 86, 105, 36, 134, 87, 89,
+ 92, 92, 91, 92, 87, 91, 91, 87, 135, 34,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 136, 50, 51, 52, 53,
- 54, 55, 57, 60, 61, 62, 78, 79, 80, 81,
- 82, 83, 84, 87, 86, 108, 86, 123, 124, 124,
- 124, 52, 86, 133, 73, 86, 99, 100, 101, 102,
- 86, 34, 136, 133, 133, 133, 14, 15, 105, 128,
- 133, 89, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 136, 50, 51,
+ 52, 53, 54, 55, 57, 60, 61, 62, 78, 79,
+ 80, 81, 82, 83, 84, 87, 86, 108, 86, 123,
+ 124, 124, 124, 52, 86, 133, 73, 86, 99, 100,
+ 101, 102, 86, 34, 136, 133, 133, 133, 14, 15,
+ 105, 128, 133, 89, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 136, 86, 108, 119, 120, 121, 24, 119, 86, 86,
- 86, 133, 119, 86, 105, 86, 119, 133, 89, 24,
- 74, 121, 86, 108, 23, 42, 75, 106, 102, 16,
- 86, 108, 86, 119, 42, 133, 86, 86, 104, 105,
- 119, 74, 133, 86, 119, 86, 87, 74, 86, 86,
- 119, 105, 86, 119, 75, 75, 86, 86
+ 133, 133, 136, 86, 108, 119, 120, 121, 24, 119,
+ 86, 86, 86, 133, 119, 86, 105, 86, 119, 133,
+ 89, 24, 74, 121, 86, 108, 23, 42, 75, 106,
+ 102, 16, 86, 108, 86, 119, 42, 133, 86, 86,
+ 104, 105, 119, 74, 133, 86, 119, 86, 87, 74,
+ 86, 86, 119, 105, 86, 119, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1418,17 +1432,17 @@ static const yytype_uint8 yyr1[] =
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
106, 106, 107, 107, 108, 108, 108, 108, 109, 109,
109, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 111, 111, 111, 111, 111, 111, 111, 112, 112, 112,
- 112, 112, 113, 113, 113, 113, 114, 114, 115, 115,
- 115, 116, 116, 117, 117, 117, 117, 118, 118, 118,
- 119, 119, 120, 120, 121, 121, 122, 122, 122, 122,
- 122, 122, 122, 122, 123, 124, 125, 126, 126, 126,
- 127, 127, 128, 128, 128, 129, 130, 130, 131, 131,
- 131, 132, 132, 133, 133, 133, 133, 133, 133, 133,
+ 110, 111, 111, 111, 111, 111, 111, 111, 112, 112,
+ 112, 112, 112, 113, 113, 113, 113, 114, 114, 115,
+ 115, 115, 116, 116, 117, 117, 117, 117, 118, 118,
+ 118, 119, 119, 120, 120, 121, 121, 122, 122, 122,
+ 122, 122, 122, 122, 122, 123, 124, 125, 126, 126,
+ 126, 127, 127, 128, 128, 128, 129, 130, 130, 131,
+ 131, 131, 132, 132, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 135,
- 135, 136, 136
+ 133, 133, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 135, 135, 136, 136
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1442,17 +1456,17 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
1, 3, 3, 3, 3, 3, 3, 3, 3, 2,
- 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
- 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
- 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
- 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
- 2, 4, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 3, 3, 3, 3, 3, 2, 2, 1, 1,
- 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 2, 0, 1, 3, 2, 4, 2, 5, 2, 2,
+ 5, 4, 3, 5, 5, 5, 5, 1, 1, 3,
+ 3, 3, 4, 7, 6, 9, 7, 10, 7, 11,
+ 12, 0, 1, 1, 2, 1, 1, 1, 1, 1,
+ 1, 2, 4, 1, 1, 1, 1, 1, 3, 3,
+ 3, 1, 3, 3, 3, 3, 3, 2, 2, 1,
+ 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
- 1, 1, 3
+ 3, 3, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 0, 1, 1, 3
};
@@ -1726,49 +1740,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1730 "engines/director/lingo/lingo-gr.cpp"
+#line 1744 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1736 "engines/director/lingo/lingo-gr.cpp"
+#line 1750 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1742 "engines/director/lingo/lingo-gr.cpp"
+#line 1756 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1748 "engines/director/lingo/lingo-gr.cpp"
+#line 1762 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1754 "engines/director/lingo/lingo-gr.cpp"
+#line 1768 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1760 "engines/director/lingo/lingo-gr.cpp"
+#line 1774 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1766 "engines/director/lingo/lingo-gr.cpp"
+#line 1780 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1772 "engines/director/lingo/lingo-gr.cpp"
+#line 1786 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2036,7 +2050,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2040 "engines/director/lingo/lingo-gr.cpp"
+#line 2054 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2047,7 +2061,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2051 "engines/director/lingo/lingo-gr.cpp"
+#line 2065 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2057,37 +2071,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 2075 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2067 "engines/director/lingo/lingo-gr.cpp"
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2073 "engines/director/lingo/lingo-gr.cpp"
+#line 2087 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2079 "engines/director/lingo/lingo-gr.cpp"
+#line 2093 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2085 "engines/director/lingo/lingo-gr.cpp"
+#line 2099 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2091 "engines/director/lingo/lingo-gr.cpp"
+#line 2105 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2098,7 +2112,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2102 "engines/director/lingo/lingo-gr.cpp"
+#line 2116 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2108,13 +2122,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2112 "engines/director/lingo/lingo-gr.cpp"
+#line 2126 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2118 "engines/director/lingo/lingo-gr.cpp"
+#line 2132 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2123,242 +2137,242 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2127 "engines/director/lingo/lingo-gr.cpp"
+#line 2141 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2134 "engines/director/lingo/lingo-gr.cpp"
+#line 2148 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2140 "engines/director/lingo/lingo-gr.cpp"
+#line 2154 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2146 "engines/director/lingo/lingo-gr.cpp"
+#line 2160 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2152 "engines/director/lingo/lingo-gr.cpp"
+#line 2166 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
+#line 2172 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2164 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2170 "engines/director/lingo/lingo-gr.cpp"
+#line 2184 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2176 "engines/director/lingo/lingo-gr.cpp"
+#line 2190 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2182 "engines/director/lingo/lingo-gr.cpp"
+#line 2196 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2188 "engines/director/lingo/lingo-gr.cpp"
+#line 2202 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2194 "engines/director/lingo/lingo-gr.cpp"
+#line 2208 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2200 "engines/director/lingo/lingo-gr.cpp"
+#line 2214 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2206 "engines/director/lingo/lingo-gr.cpp"
+#line 2220 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2212 "engines/director/lingo/lingo-gr.cpp"
+#line 2226 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2218 "engines/director/lingo/lingo-gr.cpp"
+#line 2232 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2224 "engines/director/lingo/lingo-gr.cpp"
+#line 2238 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2230 "engines/director/lingo/lingo-gr.cpp"
+#line 2244 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2236 "engines/director/lingo/lingo-gr.cpp"
+#line 2250 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2242 "engines/director/lingo/lingo-gr.cpp"
+#line 2256 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2248 "engines/director/lingo/lingo-gr.cpp"
+#line 2262 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2254 "engines/director/lingo/lingo-gr.cpp"
+#line 2268 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2260 "engines/director/lingo/lingo-gr.cpp"
+#line 2274 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2266 "engines/director/lingo/lingo-gr.cpp"
+#line 2280 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2272 "engines/director/lingo/lingo-gr.cpp"
+#line 2286 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2278 "engines/director/lingo/lingo-gr.cpp"
+#line 2292 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2284 "engines/director/lingo/lingo-gr.cpp"
+#line 2298 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2290 "engines/director/lingo/lingo-gr.cpp"
+#line 2304 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2296 "engines/director/lingo/lingo-gr.cpp"
+#line 2310 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2302 "engines/director/lingo/lingo-gr.cpp"
+#line 2316 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2308 "engines/director/lingo/lingo-gr.cpp"
+#line 2322 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2314 "engines/director/lingo/lingo-gr.cpp"
+#line 2328 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2320 "engines/director/lingo/lingo-gr.cpp"
+#line 2334 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tWHEN */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2326 "engines/director/lingo/lingo-gr.cpp"
+#line 2340 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2332 "engines/director/lingo/lingo-gr.cpp"
+#line 2346 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2338 "engines/director/lingo/lingo-gr.cpp"
+#line 2352 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2344 "engines/director/lingo/lingo-gr.cpp"
+#line 2358 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2350 "engines/director/lingo/lingo-gr.cpp"
+#line 2364 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2356 "engines/director/lingo/lingo-gr.cpp"
+#line 2370 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* idlist: %empty */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2362 "engines/director/lingo/lingo-gr.cpp"
+#line 2376 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* nonemptyidlist: ID */
@@ -2367,7 +2381,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2371 "engines/director/lingo/lingo-gr.cpp"
+#line 2385 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2375,672 +2389,678 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2379 "engines/director/lingo/lingo-gr.cpp"
+#line 2393 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* proc: ID cmdargs '\n' */
#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2385 "engines/director/lingo/lingo-gr.cpp"
+#line 2399 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* proc: tPUT cmdargs '\n' */
#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2391 "engines/director/lingo/lingo-gr.cpp"
+#line 2405 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: tGO cmdargs '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2397 "engines/director/lingo/lingo-gr.cpp"
+#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: tGO frameargs '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2417 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* proc: tPLAY cmdargs '\n' */
#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2409 "engines/director/lingo/lingo-gr.cpp"
+#line 2423 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* proc: tPLAY frameargs '\n' */
#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2415 "engines/director/lingo/lingo-gr.cpp"
+#line 2429 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* proc: tNEXT tREPEAT '\n' */
#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2421 "engines/director/lingo/lingo-gr.cpp"
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* proc: tEXIT tREPEAT '\n' */
#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2427 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* proc: tEXIT '\n' */
#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2433 "engines/director/lingo/lingo-gr.cpp"
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* cmdargs: %empty */
-#line 382 "engines/director/lingo/lingo-gr.y"
+ case 80: /* proc: tASSERTERROR stmtoneliner */
+#line 380 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
+#line 2453 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 81: /* cmdargs: %empty */
+#line 383 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* cmdargs: expr */
-#line 385 "engines/director/lingo/lingo-gr.y"
+ case 82: /* cmdargs: expr */
+#line 386 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2451 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: expr ',' nonemptyexprlist */
-#line 390 "engines/director/lingo/lingo-gr.y"
+ case 83: /* cmdargs: expr ',' nonemptyexprlist */
+#line 391 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2460 "engines/director/lingo/lingo-gr.cpp"
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: expr expr_nounarymath */
-#line 394 "engines/director/lingo/lingo-gr.y"
+ case 84: /* cmdargs: expr expr_nounarymath */
+#line 395 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2471 "engines/director/lingo/lingo-gr.cpp"
+#line 2491 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 400 "engines/director/lingo/lingo-gr.y"
+ case 85: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 401 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
+#line 2501 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* cmdargs: '(' ')' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 86: /* cmdargs: '(' ')' */
+#line 406 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2489 "engines/director/lingo/lingo-gr.cpp"
+#line 2509 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 408 "engines/director/lingo/lingo-gr.y"
+ case 87: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 409 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2498 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* frameargs: tFRAME expr */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 88: /* frameargs: tFRAME expr */
+#line 419 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* frameargs: tMOVIE expr */
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 89: /* frameargs: tMOVIE expr */
+#line 424 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2519 "engines/director/lingo/lingo-gr.cpp"
+#line 2539 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 429 "engines/director/lingo/lingo-gr.y"
+ case 90: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 430 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2530 "engines/director/lingo/lingo-gr.cpp"
+#line 2550 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* frameargs: expr tOF tMOVIE expr */
-#line 435 "engines/director/lingo/lingo-gr.y"
+ case 91: /* frameargs: expr tOF tMOVIE expr */
+#line 436 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+#line 2561 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* frameargs: tFRAME expr expr_nounarymath */
-#line 441 "engines/director/lingo/lingo-gr.y"
+ case 92: /* frameargs: tFRAME expr expr_nounarymath */
+#line 442 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2572 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 93: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 450 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2558 "engines/director/lingo/lingo-gr.cpp"
+#line 2578 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 94: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2564 "engines/director/lingo/lingo-gr.cpp"
+#line 2584 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 95: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2590 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* asgn: tSET varorthe to expr '\n' */
-#line 452 "engines/director/lingo/lingo-gr.y"
+ case 96: /* asgn: tSET varorthe to expr '\n' */
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2596 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* definevars: tGLOBAL idlist '\n' */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 99: /* definevars: tGLOBAL idlist '\n' */
+#line 458 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2582 "engines/director/lingo/lingo-gr.cpp"
+#line 2602 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* definevars: tPROPERTY idlist '\n' */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 100: /* definevars: tPROPERTY idlist '\n' */
+#line 459 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2608 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* definevars: tINSTANCE idlist '\n' */
-#line 459 "engines/director/lingo/lingo-gr.y"
+ case 101: /* definevars: tINSTANCE idlist '\n' */
+#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2594 "engines/director/lingo/lingo-gr.cpp"
+#line 2614 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* ifstmt: tIF expr tTHEN stmt */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 102: /* ifstmt: tIF expr tTHEN stmt */
+#line 463 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2623 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 466 "engines/director/lingo/lingo-gr.y"
+ case 103: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 467 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 470 "engines/director/lingo/lingo-gr.y"
+ case 104: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 471 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 477 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2650 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 106: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 481 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2659 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 485 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2646 "engines/director/lingo/lingo-gr.cpp"
+#line 2666 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 108: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 489 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2653 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 109: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 491 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 2680 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 110: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 493 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* stmtlist: %empty */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 111: /* stmtlist: %empty */
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* nonemptystmtlist: stmtlistline */
-#line 501 "engines/director/lingo/lingo-gr.y"
+ case 113: /* nonemptystmtlist: stmtlistline */
+#line 502 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2684 "engines/director/lingo/lingo-gr.cpp"
+#line 2704 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 507 "engines/director/lingo/lingo-gr.y"
+ case 114: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 508 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2694 "engines/director/lingo/lingo-gr.cpp"
+#line 2714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* stmtlistline: '\n' */
-#line 514 "engines/director/lingo/lingo-gr.y"
+ case 115: /* stmtlistline: '\n' */
+#line 515 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2700 "engines/director/lingo/lingo-gr.cpp"
+#line 2720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* simpleexpr_noparens_nounarymath: tINT */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 117: /* simpleexpr_noparens_nounarymath: tINT */
+#line 522 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2706 "engines/director/lingo/lingo-gr.cpp"
+#line 2726 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 118: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 523 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2712 "engines/director/lingo/lingo-gr.cpp"
+#line 2732 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 119: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 524 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2718 "engines/director/lingo/lingo-gr.cpp"
+#line 2738 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 120: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 525 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2724 "engines/director/lingo/lingo-gr.cpp"
+#line 2744 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 525 "engines/director/lingo/lingo-gr.y"
+ case 121: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 526 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2730 "engines/director/lingo/lingo-gr.cpp"
+#line 2750 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 526 "engines/director/lingo/lingo-gr.y"
+ case 122: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 527 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2736 "engines/director/lingo/lingo-gr.cpp"
+#line 2756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* var: ID */
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 125: /* var: ID */
+#line 532 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2742 "engines/director/lingo/lingo-gr.cpp"
+#line 2762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* list: '[' exprlist ']' */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 128: /* list: '[' exprlist ']' */
+#line 542 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2748 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* list: '[' ':' ']' */
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 129: /* list: '[' ':' ']' */
+#line 543 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2754 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* list: '[' proplist ']' */
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 130: /* list: '[' proplist ']' */
+#line 544 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2760 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* proplist: proppair */
-#line 546 "engines/director/lingo/lingo-gr.y"
+ case 131: /* proplist: proppair */
+#line 547 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proplist: proplist ',' proppair */
-#line 550 "engines/director/lingo/lingo-gr.y"
+ case 132: /* proplist: proplist ',' proppair */
+#line 551 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2797 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* proppair: tSYMBOL ':' expr */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 133: /* proppair: tSYMBOL ':' expr */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* proppair: ID ':' expr */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 134: /* proppair: ID ':' expr */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* proppair: tSTRING ':' expr */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 135: /* proppair: tSTRING ':' expr */
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2815 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* parens: '(' expr ')' */
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 136: /* parens: '(' expr ')' */
+#line 561 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2821 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* unarymath: '+' simpleexpr */
-#line 562 "engines/director/lingo/lingo-gr.y"
+ case 137: /* unarymath: '+' simpleexpr */
+#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2827 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* unarymath: '-' simpleexpr */
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 138: /* unarymath: '-' simpleexpr */
+#line 564 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2833 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* expr: expr '+' expr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 145: /* expr: expr '+' expr */
+#line 582 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2839 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* expr: expr '-' expr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 146: /* expr: expr '-' expr */
+#line 583 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2845 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* expr: expr '*' expr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+ case 147: /* expr: expr '*' expr */
+#line 584 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2851 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* expr: expr '/' expr */
-#line 584 "engines/director/lingo/lingo-gr.y"
+ case 148: /* expr: expr '/' expr */
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr tMOD expr */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 149: /* expr: expr tMOD expr */
+#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr '>' expr */
-#line 586 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr '>' expr */
+#line 587 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2869 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr '<' expr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr '<' expr */
+#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2875 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr tEQ expr */
-#line 588 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr tEQ expr */
+#line 589 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tNEQ expr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+ case 153: /* expr: expr tNEQ expr */
+#line 590 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr tGE expr */
-#line 590 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr: expr tGE expr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr tLE expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 155: /* expr: expr tLE expr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr tAND expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 156: /* expr: expr tAND expr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr tOR expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 157: /* expr: expr tOR expr */
+#line 594 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr '&' expr */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 158: /* expr: expr '&' expr */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tCONCAT expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr tCONCAT expr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tCONTAINS expr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 160: /* expr: expr tCONTAINS expr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2909 "engines/director/lingo/lingo-gr.cpp"
+#line 2929 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr tSTARTS expr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 161: /* expr: expr tSTARTS expr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2915 "engines/director/lingo/lingo-gr.cpp"
+#line 2935 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2921 "engines/director/lingo/lingo-gr.cpp"
+#line 2941 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2947 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 165: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 167: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 168: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 2971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 2977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 613 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 2983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 614 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 2989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 615 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 615 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 3001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 617 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 617 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2993 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 176: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3005 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3011 "engines/director/lingo/lingo-gr.cpp"
+#line 3031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 179: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3017 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* exprlist: %empty */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 180: /* exprlist: %empty */
+#line 625 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* nonemptyexprlist: expr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 182: /* nonemptyexprlist: expr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3052 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 183: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 633 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3040 "engines/director/lingo/lingo-gr.cpp"
+#line 3060 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3064 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3239,7 +3259,7 @@ yyreturn:
return yyresult;
}
-#line 637 "engines/director/lingo/lingo-gr.y"
+#line 638 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 6690399b7a..1465fb0877 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -377,6 +377,7 @@ proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
| tEXIT '\n' { $$ = new ExitNode(); }
+ | tASSERTERROR stmtoneliner { $$ = new AssertErrorNode($stmtoneliner); }
;
cmdargs: /* empty */ {
Commit: 3f1df58337748d10f5a9417dbb25dccae543ae77
https://github.com/scummvm/scummvm/commit/3f1df58337748d10f5a9417dbb25dccae543ae77
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement tell
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index c7fafc4919..032dcefd63 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -44,6 +44,7 @@ struct RepeatWithToNode;
struct NextRepeatNode;
struct ExitRepeatNode;
struct ExitNode;
+struct TellNode;
struct AssertErrorNode;
struct IntNode;
struct FloatNode;
@@ -92,6 +93,7 @@ enum NodeType {
kNextRepeatNode,
kExitRepeatNode,
kExitNode,
+ kTellNode,
kAssertErrorNode,
kIntNode,
kFloatNode,
@@ -134,6 +136,7 @@ public:
virtual void visitNextRepeatNode(NextRepeatNode *node) = 0;
virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
virtual void visitExitNode(ExitNode *node) = 0;
+ virtual void visitTellNode(TellNode *node) = 0;
virtual void visitAssertErrorNode(AssertErrorNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
@@ -476,6 +479,23 @@ struct ExitNode : StmtNode {
}
};
+/* TellNode */
+
+struct TellNode : StmtNode {
+ Node *target;
+ NodeList *stmts;
+
+ TellNode(Node *targetIn, NodeList *stmtsIn)
+ : StmtNode(kTellNode), target(targetIn), stmts(stmtsIn) {}
+ virtual ~TellNode() {
+ delete target;
+ deleteList(stmts);
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitTellNode(this);
+ }
+};
+
/* AssertErrorNode */
struct AssertErrorNode : StmtNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 3d6d6dea2d..2f051cc4f8 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -723,6 +723,15 @@ void LingoCompiler::visitExitNode(ExitNode *node) {
code1(LC::c_procret);
}
+/* TellNode */
+
+void LingoCompiler::visitTellNode(TellNode *node) {
+ compile(node->target);
+ code1(LC::c_tell);
+ compileList(node->stmts);
+ code1(LC::c_telldone);
+}
+
/* AssertErrorNode */
void LingoCompiler::visitAssertErrorNode(AssertErrorNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index c1d5d83ab0..1bfe959285 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -95,6 +95,7 @@ public:
virtual void visitNextRepeatNode(NextRepeatNode *node);
virtual void visitExitRepeatNode(ExitRepeatNode *node);
virtual void visitExitNode(ExitNode *node);
+ virtual void visitTellNode(TellNode *node);
virtual void visitAssertErrorNode(AssertErrorNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 77ebf9d67c..34343359fd 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -271,24 +271,25 @@ enum yysymbol_kind_t
YYSYMBOL_ifstmt = 116, /* ifstmt */
YYSYMBOL_ifelsestmt = 117, /* ifelsestmt */
YYSYMBOL_loop = 118, /* loop */
- YYSYMBOL_stmtlist = 119, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 120, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 121, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 122, /* simpleexpr_noparens_nounarymath */
- YYSYMBOL_var = 123, /* var */
- YYSYMBOL_varorchunk = 124, /* varorchunk */
- YYSYMBOL_varorthe = 125, /* varorthe */
- YYSYMBOL_list = 126, /* list */
- YYSYMBOL_proplist = 127, /* proplist */
- YYSYMBOL_proppair = 128, /* proppair */
- YYSYMBOL_parens = 129, /* parens */
- YYSYMBOL_unarymath = 130, /* unarymath */
- YYSYMBOL_simpleexpr = 131, /* simpleexpr */
- YYSYMBOL_simpleexpr_nounarymath = 132, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 133, /* expr */
- YYSYMBOL_expr_nounarymath = 134, /* expr_nounarymath */
- YYSYMBOL_exprlist = 135, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 136 /* nonemptyexprlist */
+ YYSYMBOL_tell = 119, /* tell */
+ YYSYMBOL_stmtlist = 120, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 121, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 122, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 123, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 124, /* var */
+ YYSYMBOL_varorchunk = 125, /* varorchunk */
+ YYSYMBOL_varorthe = 126, /* varorthe */
+ YYSYMBOL_list = 127, /* list */
+ YYSYMBOL_proplist = 128, /* proplist */
+ YYSYMBOL_proppair = 129, /* proppair */
+ YYSYMBOL_parens = 130, /* parens */
+ YYSYMBOL_unarymath = 131, /* unarymath */
+ YYSYMBOL_simpleexpr = 132, /* simpleexpr */
+ YYSYMBOL_simpleexpr_nounarymath = 133, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 134, /* expr */
+ YYSYMBOL_expr_nounarymath = 135, /* expr_nounarymath */
+ YYSYMBOL_exprlist = 136, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 137 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -608,18 +609,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 112
+#define YYFINAL 115
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2506
+#define YYLAST 2619
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 44
+#define YYNNTS 45
/* YYNRULES -- Number of rules. */
-#define YYNRULES 183
+#define YYNRULES 186
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 340
+#define YYNSTATES 349
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -682,19 +683,19 @@ static const yytype_int16 yyrline[] =
296, 301, 302, 305, 307, 308, 309, 310, 313, 314,
315, 316, 317, 319, 320, 322, 325, 326, 327, 328,
329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 342, 343, 346, 350, 360, 361, 362, 363, 366, 367,
- 368, 371, 372, 373, 374, 375, 376, 377, 378, 379,
- 380, 383, 386, 391, 395, 401, 406, 409, 419, 424,
- 430, 436, 442, 450, 451, 452, 453, 456, 456, 458,
- 459, 460, 463, 467, 471, 477, 481, 485, 489, 491,
- 493, 497, 498, 502, 508, 515, 516, 522, 523, 524,
- 525, 526, 527, 528, 529, 532, 534, 538, 542, 543,
- 544, 547, 551, 556, 557, 558, 561, 563, 564, 567,
- 568, 569, 576, 577, 581, 582, 583, 584, 585, 586,
- 587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
- 597, 598, 605, 606, 607, 608, 609, 610, 611, 612,
- 613, 614, 615, 616, 617, 618, 619, 620, 621, 622,
- 625, 626, 629, 633
+ 342, 343, 346, 350, 360, 361, 362, 363, 364, 367,
+ 368, 369, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 384, 387, 392, 396, 402, 407, 410, 420,
+ 425, 431, 437, 443, 451, 452, 453, 454, 457, 457,
+ 459, 460, 461, 464, 468, 472, 478, 482, 486, 490,
+ 492, 494, 498, 502, 506, 507, 511, 517, 524, 525,
+ 531, 532, 533, 534, 535, 536, 537, 538, 541, 543,
+ 547, 551, 552, 553, 556, 560, 565, 566, 567, 570,
+ 572, 573, 576, 577, 578, 585, 586, 590, 591, 592,
+ 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 614, 615, 616, 617, 618,
+ 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
+ 629, 630, 631, 634, 635, 638, 642
};
#endif
@@ -729,11 +730,11 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"methodlist", "nonemptymethodlist", "methodlistline", "handler",
"endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
"proc", "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
- "ifelsestmt", "loop", "stmtlist", "nonemptystmtlist", "stmtlistline",
- "simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
- "list", "proplist", "proppair", "parens", "unarymath", "simpleexpr",
- "simpleexpr_nounarymath", "expr", "expr_nounarymath", "exprlist",
- "nonemptyexprlist", YY_NULLPTR
+ "ifelsestmt", "loop", "tell", "stmtlist", "nonemptystmtlist",
+ "stmtlistline", "simpleexpr_noparens_nounarymath", "var", "varorchunk",
+ "varorthe", "list", "proplist", "proppair", "parens", "unarymath",
+ "simpleexpr", "simpleexpr_nounarymath", "expr", "expr_nounarymath",
+ "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -757,7 +758,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-262)
+#define YYPACT_NINF (-236)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -771,40 +772,41 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1281, -262, -262, -262, -262, -262, -262, -31, -262, 2141,
- 814, 893, -262, -262, 2141, -262, -28, -262, -262, 972,
- 32, 2141, -262, -262, -262, -262, 2141, -262, 814, 2141,
- -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
- -262, -262, -262, -262, -262, 2141, 2141, 2023, -262, 20,
- 1281, -262, -262, -262, -262, 972, -262, -262, -262, -262,
- -262, -262, -262, -262, -59, -262, -262, -262, -262, -262,
- -262, -50, -36, -262, -262, -262, -262, 893, 893, 893,
- 893, 893, 733, 328, -32, -14, -6, -262, -262, -262,
- -262, -262, -262, 409, 893, 76, 2141, 6, 12, 490,
- 2141, 893, -262, -262, -29, 13, 15, 16, 17, 23,
- 2141, -262, -262, -262, 25, 571, -262, -262, 2141, 652,
- 2374, -262, -262, -262, -262, 2183, -34, -30, -5, -58,
- -24, -262, 2374, 21, 26, 893, -262, -262, 80, 893,
- 893, 893, 893, 1051, 1051, 1209, 893, 893, 1130, 893,
- 893, 893, 893, 893, 893, 893, 893, -262, -262, -262,
- 2236, 2223, 1779, 893, 893, 893, 893, 33, -262, -262,
- 2141, 2141, 2141, 69, 2274, -262, -262, 893, -61, -262,
- -262, -262, -262, 36, -262, -262, 89, 2387, 893, -262,
- 893, 893, -262, 893, 2082, -262, -262, 893, 35, 893,
- 24, 24, 24, 24, 2422, 2422, -262, -42, 24, 24,
- 24, 24, -42, -52, -52, -262, -262, 26, 893, 893,
- 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,
- 893, 893, 893, 893, 893, 893, 1840, 101, 1840, -262,
- 48, 49, 54, 893, 1840, 2287, 2141, -262, -262, 55,
- -262, -262, 1840, 893, -70, 2374, 2374, 2374, -34, -30,
- 50, -262, 2374, -262, 2374, 24, 24, 24, 24, 2422,
- 2422, -262, -42, 24, 24, 24, 24, -42, -52, -52,
- -262, -262, 26, -262, -262, 1342, -262, -262, 1901, 1840,
- -262, -262, -262, 2170, 1404, -262, 2141, -61, 1472, 2374,
- -262, 1962, 57, -262, 1840, -262, 102, 893, 59, 60,
- -262, 2141, 1840, -262, -262, 1533, 893, 2324, -262, 1840,
- -18, -262, 1595, 61, 2337, 1840, 1840, -262, 2141, 62,
- -262, 1840, 1657, -262, -262, 1718, 63, 67, -262, -262
+ 1392, -236, -236, -236, -236, -236, -236, -34, -236, 2313,
+ 925, 1004, -236, -236, 2313, -236, 2, -236, -236, 1083,
+ -17, 2313, -236, -236, -236, -236, 2313, -236, 925, 2313,
+ -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+ -236, -236, -236, -236, 1004, 2313, 2313, 2195, -236, 20,
+ 1392, -236, -236, -236, -236, 1083, -236, -236, -236, -236,
+ -236, -236, -236, -236, -236, -28, -236, -236, -236, -236,
+ -236, -236, -236, -13, -32, -236, -236, -236, -236, 1004,
+ 1004, 1004, 1004, 1004, 844, 439, -21, -9, -3, -236,
+ -236, -236, -236, -236, -236, 520, 1004, 155, 2313, -2,
+ 4, 601, 2313, 1004, -236, -236, 12, 5, 6, 7,
+ 8, 334, 11, 2313, -236, -236, -236, 13, 682, -236,
+ -236, 2313, 763, 2487, -236, -236, -236, -236, 2334, 16,
+ 18, 14, -69, -31, -236, 2487, 21, 17, 1004, -236,
+ -236, 69, 1004, 1004, 1004, 1004, 1162, 1162, 1320, 1004,
+ 1004, 1241, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
+ -236, -236, -236, 65, 2347, 1951, 1004, 1004, 1004, 1004,
+ 25, -236, -236, 2313, 2313, 2313, 62, 2387, -236, -236,
+ 1004, -62, -236, -236, -236, 2195, 2012, -236, 37, -236,
+ -236, 90, 2500, 1004, -236, 1004, 1004, -236, 1004, 2254,
+ -236, -236, 1004, 39, 1004, -45, -45, -45, -45, 2535,
+ 2535, -236, -50, -45, -45, -45, -45, -50, -40, -40,
+ -236, -236, 17, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
+ 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
+ 1004, 2012, 105, 2012, -236, 44, 45, 47, 1004, 2012,
+ 2400, 2313, -236, -236, 48, -236, -236, -236, -236, -236,
+ 1515, -236, -236, 2012, 1004, -19, 2487, 2487, 2487, 16,
+ 18, 43, -236, 2487, -236, 2487, -45, -45, -45, -45,
+ 2535, 2535, -236, -50, -45, -45, -45, -45, -50, -40,
+ -40, -236, -236, 17, 1453, 2073, 2012, -236, -236, -236,
+ 109, 1576, -236, 2313, -62, 50, -236, 1644, 2487, -236,
+ 2134, 51, 2012, -236, 96, 1004, 53, 54, -236, -236,
+ 2313, 2012, -236, -236, 1705, 1004, 2437, -236, 2012, -24,
+ -236, 1767, 55, 2450, 2012, 2012, -236, 2313, 64, -236,
+ 2012, 1829, -236, -236, 1890, 70, 71, -236, -236
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -813,59 +815,60 @@ static const yytype_int16 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 24, 28, 31, 47, 56, 30, 0, 32, 60,
- 81, 0, 33, 35, 0, 39, 40, 42, 45, 81,
- 46, 48, 51, 54, 57, 55, 0, 43, 81, 60,
+ 82, 0, 33, 35, 0, 39, 40, 42, 45, 82,
+ 46, 48, 51, 54, 57, 55, 0, 43, 82, 60,
26, 44, 41, 38, 25, 27, 49, 29, 36, 37,
59, 53, 34, 58, 50, 60, 0, 52, 5, 0,
- 2, 3, 6, 7, 8, 81, 9, 64, 68, 69,
- 70, 65, 66, 67, 0, 79, 40, 46, 48, 52,
- 62, 0, 61, 117, 118, 120, 119, 32, 39, 41,
- 0, 0, 0, 180, 125, 0, 0, 139, 123, 124,
- 140, 141, 144, 82, 0, 0, 60, 0, 0, 82,
- 0, 0, 125, 127, 0, 0, 0, 0, 0, 0,
- 60, 80, 1, 4, 0, 82, 78, 99, 0, 88,
- 89, 121, 137, 138, 86, 0, 120, 119, 0, 125,
- 0, 131, 182, 0, 181, 180, 73, 74, 42, 0,
- 0, 0, 0, 26, 44, 38, 0, 0, 49, 0,
- 0, 0, 0, 0, 0, 0, 0, 142, 143, 162,
- 84, 0, 0, 0, 0, 0, 0, 0, 77, 72,
- 35, 25, 27, 0, 0, 97, 98, 0, 13, 75,
- 76, 101, 100, 0, 71, 63, 42, 92, 0, 136,
- 0, 0, 129, 0, 0, 130, 128, 0, 0, 0,
- 154, 155, 152, 153, 156, 157, 149, 159, 160, 161,
- 151, 150, 158, 145, 146, 147, 148, 83, 0, 0,
+ 2, 3, 6, 7, 8, 82, 9, 64, 69, 70,
+ 71, 65, 66, 67, 68, 0, 80, 40, 46, 48,
+ 50, 52, 62, 0, 61, 120, 121, 123, 122, 32,
+ 39, 41, 0, 0, 0, 183, 128, 0, 0, 142,
+ 126, 127, 143, 144, 147, 83, 0, 0, 60, 0,
+ 0, 83, 0, 0, 128, 130, 0, 0, 0, 0,
+ 0, 0, 0, 60, 81, 1, 4, 0, 83, 79,
+ 100, 0, 89, 90, 124, 140, 141, 87, 0, 123,
+ 122, 0, 128, 0, 134, 185, 0, 184, 183, 74,
+ 75, 42, 0, 0, 0, 0, 26, 44, 38, 0,
+ 0, 49, 0, 0, 0, 0, 0, 0, 0, 0,
+ 145, 146, 165, 85, 0, 0, 0, 0, 0, 0,
+ 0, 78, 73, 35, 25, 27, 0, 0, 98, 99,
+ 0, 13, 76, 77, 102, 0, 114, 101, 0, 72,
+ 63, 42, 93, 0, 139, 0, 0, 132, 0, 0,
+ 133, 131, 0, 0, 0, 157, 158, 155, 156, 159,
+ 160, 152, 162, 163, 164, 154, 153, 161, 148, 149,
+ 150, 151, 84, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 111, 102, 111, 126,
- 0, 0, 0, 0, 111, 0, 0, 17, 18, 11,
- 14, 15, 111, 0, 0, 135, 133, 134, 0, 0,
- 0, 132, 183, 122, 91, 172, 173, 170, 171, 174,
- 175, 167, 177, 178, 179, 169, 168, 176, 163, 164,
- 165, 166, 85, 115, 116, 0, 112, 113, 0, 10,
- 93, 94, 95, 0, 0, 96, 60, 0, 20, 90,
- 87, 0, 0, 114, 111, 104, 0, 0, 0, 0,
- 16, 21, 111, 106, 103, 0, 0, 0, 108, 111,
- 0, 22, 0, 0, 0, 111, 12, 19, 0, 0,
- 105, 111, 0, 23, 107, 0, 0, 0, 109, 110
+ 0, 114, 103, 114, 129, 0, 0, 0, 0, 114,
+ 0, 0, 17, 18, 11, 14, 15, 112, 118, 119,
+ 0, 115, 116, 114, 0, 0, 138, 136, 137, 0,
+ 0, 0, 135, 186, 125, 92, 175, 176, 173, 174,
+ 177, 178, 170, 180, 181, 182, 172, 171, 179, 166,
+ 167, 168, 169, 86, 0, 0, 10, 94, 95, 96,
+ 0, 0, 97, 60, 0, 0, 117, 20, 91, 88,
+ 0, 0, 114, 105, 0, 0, 0, 0, 16, 113,
+ 21, 114, 107, 104, 0, 0, 0, 109, 114, 0,
+ 22, 0, 0, 0, 114, 12, 19, 0, 0, 106,
+ 114, 0, 23, 108, 0, 0, 0, 110, 111
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -262, -262, -262, 111, -262, -262, -262, -262, -262, -134,
- -262, -262, 0, -23, -262, 2, 118, -262, -12, 138,
- -262, -262, -262, -262, -262, -262, -234, -262, -261, -55,
- -20, -77, -262, -262, -262, -27, -40, -262, 9, -262,
- 38, 56, 34, -153
+ -236, -236, -236, 108, -236, -236, -236, -236, -236, -137,
+ -236, -236, 0, -27, -236, 3, -43, -236, -6, 144,
+ -236, -236, -236, -236, -236, -236, -236, -233, -236, -235,
+ -53, -20, -99, -236, -236, -236, -23, -44, -236, -1,
+ -236, 203, 56, 41, -153
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 248, 249, 250, 251,
- 54, 320, 84, 71, 72, 284, 57, 58, 85, 86,
- 59, 177, 60, 61, 62, 63, 285, 286, 287, 87,
- 88, 240, 104, 89, 130, 131, 90, 91, 92, 159,
- 132, 160, 133, 134
+ 0, 49, 50, 51, 52, 53, 253, 254, 255, 256,
+ 54, 329, 86, 73, 74, 259, 57, 58, 87, 88,
+ 59, 180, 60, 61, 62, 63, 64, 260, 261, 262,
+ 89, 90, 245, 106, 91, 133, 134, 92, 93, 94,
+ 162, 135, 163, 136, 137
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -873,312 +876,326 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 103, 56, 217, 289, 165, 108, 98, 64, 70,
- 294, 97, 246, 175, 96, 165, 106, 197, 298, 300,
- 112, 102, 109, 176, 303, 247, 105, 116, 303, 70,
- 135, 154, 155, 303, 193, 254, 117, 303, 157, 152,
- 153, 154, 155, 114, 157, 70, 110, 55, 93, 95,
- 55, 118, 56, 158, 303, 65, 135, 99, 190, 158,
- 157, 303, 191, 194, 157, 303, 93, 195, 327, 328,
- 315, 303, 136, 167, 303, 158, 100, 101, 322, 158,
- 137, 165, 282, 129, 146, 326, 192, 183, 121, 122,
- 123, 332, 168, 115, 241, 242, 70, 335, 169, 178,
- 173, 179, 180, 181, 151, 152, 153, 154, 155, 182,
- 70, 184, 196, 197, 199, 119, 120, 162, 185, 238,
- 125, 243, 252, 253, 263, 288, 139, 140, 141, 142,
- 163, 164, 161, 165, 290, 291, 146, 147, 166, 174,
- 292, 297, 193, 314, 316, 318, 319, 330, 334, 338,
- 239, 239, 239, 339, 149, 150, 151, 152, 153, 154,
- 155, 113, 55, 310, 237, 111, 107, 261, 0, 198,
- 102, 102, 102, 0, 0, 187, 0, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 260, 0, 0, 0, 0, 0,
- 0, 204, 205, 206, 209, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 245, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 256,
- 0, 257, 0, 0, 0, 262, 55, 264, 55, 0,
- 0, 0, 0, 0, 55, 0, 296, 0, 0, 0,
- 0, 0, 55, 0, 0, 0, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 309, 0, 0, 0, 0, 0, 0,
- 0, 293, 0, 0, 0, 55, 0, 0, 55, 55,
- 305, 299, 0, 0, 55, 0, 70, 0, 55, 0,
- 0, 55, 0, 313, 55, 0, 0, 0, 0, 0,
- 0, 321, 55, 0, 0, 55, 0, 0, 0, 55,
- 0, 0, 55, 0, 0, 55, 55, 0, 333, 0,
- 0, 55, 55, 73, 0, 55, 0, 0, 74, 0,
- 0, 1, 126, 127, 0, 317, 0, 2, 3, 4,
- 5, 6, 0, 0, 324, 8, 0, 0, 0, 12,
- 13, 0, 15, 66, 17, 18, 0, 67, 68, 0,
- 22, 23, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 79, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 0,
- 0, 0, 0, 0, 0, 69, 0, 0, 0, 80,
- 81, 0, 0, 0, 73, 0, 94, 0, 83, 74,
- 128, 0, 1, 75, 76, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 66, 138, 18, 0, 67, 68,
- 0, 22, 23, 24, 25, 0, 27, 0, 0, 139,
- 140, 141, 142, 143, 144, 79, 145, 34, 35, 146,
- 147, 148, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 0, 0, 0, 0, 69, 149, 150, 151,
- 152, 153, 154, 155, 0, 73, 156, 94, 0, 83,
- 74, 0, 0, 1, 75, 76, 0, 0, 0, 2,
+ 55, 105, 110, 56, 114, 65, 222, 168, 294, 72,
+ 296, 251, 168, 100, 98, 149, 301, 168, 112, 138,
+ 115, 104, 108, 198, 252, 306, 107, 102, 103, 72,
+ 307, 155, 156, 157, 158, 154, 155, 156, 157, 158,
+ 265, 99, 160, 157, 158, 72, 113, 55, 160, 117,
+ 55, 161, 66, 56, 178, 121, 199, 161, 119, 306,
+ 200, 306, 336, 337, 179, 160, 306, 138, 202, 160,
+ 309, 170, 306, 120, 161, 246, 247, 139, 161, 324,
+ 124, 125, 126, 140, 171, 132, 188, 293, 331, 306,
+ 172, 181, 182, 183, 184, 335, 306, 187, 72, 189,
+ 306, 341, 176, 204, 202, 197, 306, 344, 195, 306,
+ 196, 243, 201, 72, 248, 223, 224, 225, 226, 227,
+ 228, 190, 229, 263, 264, 230, 231, 232, 274, 295,
+ 297, 298, 314, 299, 304, 198, 319, 323, 325, 327,
+ 328, 339, 257, 233, 234, 235, 236, 237, 238, 239,
+ 343, 315, 240, 244, 244, 244, 347, 348, 116, 142,
+ 143, 144, 145, 166, 167, 55, 168, 318, 242, 149,
+ 150, 169, 109, 104, 104, 104, 272, 0, 192, 203,
+ 0, 0, 0, 0, 0, 55, 55, 152, 153, 154,
+ 155, 156, 157, 158, 0, 0, 165, 0, 0, 271,
+ 0, 0, 0, 0, 0, 142, 143, 144, 145, 166,
+ 167, 0, 168, 95, 97, 149, 150, 169, 0, 0,
+ 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
+ 0, 95, 0, 152, 153, 154, 155, 156, 157, 158,
+ 0, 55, 0, 55, 0, 0, 0, 111, 0, 55,
+ 0, 303, 0, 0, 0, 0, 0, 0, 118, 0,
+ 55, 0, 0, 55, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 317, 0, 0, 0,
+ 0, 0, 122, 123, 0, 0, 0, 128, 0, 0,
+ 0, 0, 0, 0, 55, 55, 55, 0, 313, 164,
+ 0, 55, 0, 72, 0, 0, 177, 55, 0, 0,
+ 55, 0, 55, 322, 0, 0, 0, 0, 0, 0,
+ 330, 55, 0, 0, 55, 0, 0, 0, 55, 0,
+ 0, 55, 0, 0, 55, 55, 0, 342, 0, 0,
+ 55, 55, 0, 0, 55, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 0, 0, 0, 0, 0, 0, 0, 209,
+ 210, 211, 214, 0, 0, 0, 185, 0, 0, 0,
+ 0, 0, 0, 250, 142, 143, 144, 145, 166, 167,
+ 0, 168, 0, 0, 149, 150, 169, 0, 266, 267,
+ 0, 268, 0, 0, 0, 273, 0, 275, 0, 0,
+ 0, 0, 152, 153, 154, 155, 156, 157, 158, 0,
+ 186, 0, 0, 0, 0, 0, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 0, 75, 0, 0, 0, 0, 76,
+ 0, 300, 1, 129, 130, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 308, 0, 0,
+ 12, 13, 0, 15, 67, 17, 18, 0, 68, 69,
+ 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 81, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 70,
+ 0, 0, 0, 0, 0, 0, 71, 0, 326, 0,
+ 82, 83, 0, 0, 0, 75, 0, 96, 333, 85,
+ 76, 131, 0, 1, 77, 78, 0, 0, 0, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 170, 0, 15, 66, 17, 18, 0, 67,
- 68, 0, 22, 23, 24, 25, 0, 27, 0, 0,
- 139, 140, 141, 142, 143, 144, 79, 145, 171, 172,
- 146, 147, 148, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 0, 0, 0, 0, 69, 149, 150,
- 151, 152, 153, 154, 155, 0, 73, 156, 94, 0,
- 83, 74, 0, 0, 1, 75, 76, 0, 0, 0,
+ 0, 12, 13, 0, 15, 67, 141, 18, 0, 68,
+ 69, 0, 22, 23, 24, 25, 0, 27, 0, 0,
+ 142, 143, 144, 145, 146, 147, 81, 148, 34, 35,
+ 149, 150, 151, 37, 38, 39, 40, 41, 42, 43,
+ 70, 0, 0, 0, 0, 0, 0, 71, 152, 153,
+ 154, 155, 156, 157, 158, 0, 75, 159, 96, 0,
+ 85, 76, 0, 0, 1, 77, 78, 0, 0, 0,
2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 139, 140, 141, 142, 143, 144, 79, 145, 34,
- 35, 146, 147, 148, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 69, 149,
- 150, 151, 152, 153, 154, 155, 0, 73, 156, 94,
- 0, 83, 74, 0, 0, 1, 75, 76, 0, 0,
+ 0, 0, 12, 173, 0, 15, 67, 17, 18, 0,
+ 68, 69, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 142, 143, 144, 145, 146, 147, 81, 148, 174,
+ 175, 149, 150, 151, 37, 38, 39, 40, 41, 42,
+ 43, 70, 0, 0, 0, 0, 0, 0, 71, 152,
+ 153, 154, 155, 156, 157, 158, 0, 75, 159, 96,
+ 0, 85, 76, 0, 0, 1, 77, 78, 0, 0,
0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 66, 186, 18,
- 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 139, 140, 141, 142, 143, 144, 79, 145,
- 34, 35, 146, 147, 148, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 0, 0, 0, 0, 69,
- 149, 150, 151, 152, 153, 154, 155, 0, 73, 0,
- 94, 0, 83, 74, 0, 0, 1, 75, 76, 0,
+ 0, 0, 0, 12, 13, 0, 15, 67, 17, 18,
+ 0, 68, 69, 0, 22, 23, 24, 25, 0, 27,
+ 0, 0, 142, 143, 144, 145, 146, 147, 81, 148,
+ 34, 35, 149, 150, 151, 37, 38, 39, 40, 41,
+ 42, 43, 70, 0, 0, 0, 0, 0, 0, 71,
+ 152, 153, 154, 155, 156, 157, 158, 0, 75, 159,
+ 96, 0, 85, 76, 0, 0, 1, 77, 78, 0,
0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 66, 17,
- 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 79,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
- 69, 0, 0, 0, 80, 81, 0, 0, 0, 73,
- 0, 94, 124, 83, 74, 0, 0, 1, 75, 76,
+ 8, 0, 0, 0, 12, 13, 0, 15, 67, 191,
+ 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 142, 143, 144, 145, 146, 147, 81,
+ 148, 34, 35, 149, 150, 151, 37, 38, 39, 40,
+ 41, 42, 43, 70, 0, 0, 0, 0, 0, 0,
+ 71, 152, 153, 154, 155, 156, 157, 158, 0, 75,
+ 0, 96, 0, 85, 76, 0, 0, 1, 77, 78,
0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 77, 0, 0, 0, 12, 13, 0, 78, 66,
- 17, 18, 0, 67, 68, 0, 22, 23, 24, 25,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
+ 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 79, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 0, 0, 0, 0, 0,
- 0, 69, 0, 0, 0, 80, 81, 0, 73, 0,
- 0, 0, 82, 74, 83, 0, 1, 75, 76, 0,
+ 81, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 70, 0, 0, 0, 0, 0,
+ 0, 71, 0, 0, 0, 82, 83, 0, 0, 0,
+ 75, 0, 96, 127, 85, 76, 0, 0, 1, 77,
+ 78, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 79, 0, 0, 0, 12, 13, 0, 80,
+ 67, 17, 18, 0, 68, 69, 0, 22, 23, 24,
+ 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
+ 31, 81, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 70, 0, 0, 0, 0,
+ 0, 0, 71, 0, 0, 0, 82, 83, 0, 75,
+ 0, 0, 0, 84, 76, 85, 0, 1, 77, 78,
+ 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
+ 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 81, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 70, 0, 0, 0, 0, 0,
+ 0, 71, 0, 0, 0, 82, 83, 0, 75, 0,
+ 0, 0, 96, 76, 85, 0, 1, 77, 78, 0,
0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 66, 17,
- 18, 0, 67, 68, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 79,
+ 8, 0, 0, 0, 12, 13, 0, 15, 67, 17,
+ 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 81,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
- 69, 0, 0, 0, 80, 81, 0, 73, 0, 0,
- 0, 94, 74, 83, 0, 1, 75, 76, 0, 0,
+ 41, 42, 43, 70, 0, 0, 0, 0, 0, 0,
+ 71, 0, 0, 0, 82, 83, 0, 75, 0, 0,
+ 0, 84, 76, 85, 0, 1, 77, 78, 0, 0,
0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
- 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 79, 33,
+ 0, 0, 0, 12, 13, 0, 15, 67, 17, 18,
+ 0, 68, 69, 0, 22, 23, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 0, 0, 81, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 0, 0, 0, 0, 0, 69,
- 0, 0, 0, 80, 81, 0, 73, 0, 0, 0,
- 82, 74, 83, 0, 1, 75, 76, 0, 0, 0,
+ 42, 43, 70, 0, 0, 0, 0, 0, 0, 71,
+ 0, 0, 0, 82, 83, 0, 75, 0, 0, 0,
+ 96, 76, 85, 0, 1, 77, 78, 0, 0, 0,
2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 79, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 0, 0, 0, 0, 0, 0, 69, 0,
- 0, 0, 80, 81, 0, 73, 0, 0, 0, 94,
- 74, 83, 0, 1, 75, 76, 0, 0, 0, 2,
+ 0, 0, 12, 13, 0, 15, 67, 17, 18, 0,
+ 68, 69, 0, 22, 23, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 81, 33, 34,
+ 35, 0, 0, 0, 37, 38, 39, 40, 41, 42,
+ 43, 70, 0, 0, 0, 0, 0, 0, 71, 0,
+ 0, 0, 82, 83, 0, 75, 0, 0, 0, 96,
+ 76, 85, 0, 1, 77, 78, 0, 0, 0, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 66, 17, 18, 0, 67,
- 68, 0, 22, 23, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 79, 33, 34, 35,
+ 0, 12, 13, 0, 15, 67, 17, 18, 0, 68,
+ 69, 0, 22, 23, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 0, 0, 81, 0, 34, 35,
0, 0, 0, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 0, 0, 0, 0, 69, 0, 0,
- 0, 80, 81, 0, 73, 0, 0, 0, 94, 74,
- 83, 0, 1, 75, 76, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 66, 17, 18, 0, 67, 68,
- 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 79, 0, 34, 35, 0,
- 0, 0, 37, 38, 39, 40, 41, 42, 43, 44,
- 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 94, 0, 83,
- 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 0, 1, 0, 0, 47, 0,
- 0, 2, 3, 4, 5, 6, 301, 48, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 302, 1, 0, 47,
- 0, 0, 0, 2, 3, 4, 5, 6, 283, 0,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 0, 308,
- 0, 47, 0, 0, 0, 1, 0, 0, 311, 0,
- 283, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 70, 0, 0, 0, 0, 0, 0, 71, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 96, 0,
+ 85, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 26, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 283, 7,
+ 42, 43, 44, 45, 46, 0, 1, 0, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 310, 48, 7,
8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 323, 1, 0,
- 47, 0, 0, 0, 2, 3, 4, 5, 6, 283,
+ 41, 42, 43, 44, 45, 0, 0, 311, 1, 0,
+ 47, 0, 0, 0, 2, 3, 4, 5, 6, 258,
0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 329,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
+ 0, 305, 47, 0, 0, 2, 3, 4, 5, 6,
+ 0, 258, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 0, 316, 0, 47, 0, 0, 0, 1, 0, 0,
+ 320, 0, 258, 2, 3, 4, 5, 6, 0, 0,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
+ 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
+ 258, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 332,
1, 0, 47, 0, 0, 0, 2, 3, 4, 5,
- 6, 283, 0, 7, 8, 9, 10, 11, 12, 13,
+ 6, 258, 0, 7, 8, 9, 10, 11, 12, 13,
0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 1, 336, 0, 47, 0, 0, 2, 3, 4,
- 5, 6, 0, 283, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 337, 0, 47, 0, 0, 2, 3,
- 4, 5, 6, 0, 283, 7, 8, 9, 10, 11,
+ 0, 338, 1, 0, 47, 0, 0, 0, 2, 3,
+ 4, 5, 6, 258, 0, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 236, 7, 8, 9, 10,
+ 45, 0, 0, 1, 345, 0, 47, 0, 0, 2,
+ 3, 4, 5, 6, 0, 258, 7, 8, 9, 10,
11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 283, 7, 8, 9,
+ 44, 45, 0, 0, 1, 346, 0, 47, 0, 0,
+ 2, 3, 4, 5, 6, 0, 258, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 0, 0, 1, 0, 0, 47, 0,
- 0, 2, 3, 4, 5, 6, 0, 304, 7, 8,
+ 0, 2, 3, 4, 5, 6, 0, 241, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 312, 7,
- 8, 9, 10, 0, 12, 13, 0, 15, 16, 17,
- 18, 19, 67, 21, 0, 22, 23, 24, 25, 0,
+ 0, 0, 2, 3, 4, 5, 6, 0, 258, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 1, 258, 259, 0, 0,
- 47, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 66, 17, 18,
- 0, 67, 68, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 0, 1, 0, 0, 0, 0, 69,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 66, 17, 18, 0,
- 67, 68, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 306, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 307, 0, 0, 0, 0, 0, 69, 0,
- 139, 140, 141, 142, 163, 164, 0, 165, 0, 0,
- 146, 147, 166, 139, 140, 141, 142, 163, 164, 0,
- 165, 0, 0, 146, 147, 166, 0, 0, 149, 150,
- 151, 152, 153, 154, 155, 0, 0, 0, 0, 0,
- 0, 149, 150, 151, 152, 153, 154, 155, 0, 0,
- 188, 0, 189, 139, 140, 141, 142, 163, 164, 0,
- 165, 0, 0, 146, 147, 166, 218, 219, 220, 221,
- 222, 223, 0, 224, 0, 0, 225, 226, 227, 0,
- 0, 149, 150, 151, 152, 153, 154, 155, 0, 0,
- 0, 0, 189, 0, 228, 229, 230, 231, 232, 233,
- 234, 0, 0, 235, 139, 140, 141, 142, 163, 164,
- 0, 165, 0, 0, 146, 147, 166, 139, 140, 141,
- 142, 163, 164, 0, 165, 0, 0, 146, 147, 166,
- 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
- 244, 0, 0, 0, 0, 149, 150, 151, 152, 153,
- 154, 155, 0, 295, 139, 140, 141, 142, 163, 164,
- 0, 165, 0, 0, 146, 147, 166, 139, 140, 141,
- 142, 163, 164, 0, 165, 0, 0, 146, 147, 166,
- 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
- 325, 0, 0, 0, 0, 149, 150, 151, 152, 153,
- 154, 155, 0, 331, 139, 140, 141, 142, 163, 164,
- 0, 165, 0, 0, 146, 147, 166, 218, 219, 220,
- 221, 222, 223, 0, 224, 0, 0, 225, 226, 227,
- 0, 0, 149, 150, 151, 152, 153, 154, 155, 0,
- 0, 0, 0, 0, 0, 228, 229, 230, 231, 232,
- 233, 234, 139, 140, 141, 142, 0, 0, 0, 165,
- 0, 0, 146, 147, 166, 0, 0, 0, 0, 0,
+ 41, 42, 43, 44, 45, 0, 0, 1, 0, 0,
+ 47, 0, 0, 2, 3, 4, 5, 6, 0, 312,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
+ 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
+ 321, 7, 8, 9, 10, 0, 12, 13, 0, 15,
+ 16, 17, 18, 19, 68, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 70, 45, 1, 269, 270,
+ 0, 0, 47, 2, 3, 4, 5, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
+ 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 70, 0, 1, 0, 0, 0,
+ 0, 71, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 67, 17,
+ 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 70, 142, 143, 144, 145, 166, 167,
+ 71, 168, 0, 0, 149, 150, 169, 142, 143, 144,
+ 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
+ 0, 0, 152, 153, 154, 155, 156, 157, 158, 0,
+ 0, 193, 0, 194, 0, 152, 153, 154, 155, 156,
+ 157, 158, 0, 0, 0, 0, 194, 142, 143, 144,
+ 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
+ 142, 143, 144, 145, 166, 167, 0, 168, 0, 0,
+ 149, 150, 169, 0, 0, 152, 153, 154, 155, 156,
+ 157, 158, 0, 249, 0, 0, 0, 0, 152, 153,
+ 154, 155, 156, 157, 158, 0, 302, 142, 143, 144,
+ 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
+ 142, 143, 144, 145, 166, 167, 0, 168, 0, 0,
+ 149, 150, 169, 0, 0, 152, 153, 154, 155, 156,
+ 157, 158, 0, 334, 0, 0, 0, 0, 152, 153,
+ 154, 155, 156, 157, 158, 0, 340, 142, 143, 144,
+ 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
+ 223, 224, 225, 226, 227, 228, 0, 229, 0, 0,
+ 230, 231, 232, 0, 0, 152, 153, 154, 155, 156,
+ 157, 158, 0, 0, 0, 0, 0, 0, 233, 234,
+ 235, 236, 237, 238, 239, 142, 143, 144, 145, 0,
+ 0, 0, 168, 0, 0, 149, 150, 169, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 149, 150, 151, 152, 153, 154, 155
+ 0, 0, 0, 152, 153, 154, 155, 156, 157, 158
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 0, 156, 238, 57, 29, 19, 39, 9,
- 244, 39, 73, 42, 14, 57, 28, 87, 252, 89,
- 0, 21, 45, 52, 285, 86, 26, 86, 289, 29,
- 88, 83, 84, 294, 92, 188, 86, 298, 93, 81,
- 82, 83, 84, 55, 99, 45, 46, 47, 10, 11,
- 50, 87, 50, 93, 315, 86, 88, 19, 92, 99,
- 115, 322, 92, 87, 119, 326, 28, 91, 86, 87,
- 304, 332, 86, 96, 335, 115, 44, 45, 312, 119,
- 86, 57, 235, 83, 60, 319, 91, 110, 79, 80,
- 81, 325, 86, 55, 171, 172, 96, 331, 86, 86,
- 100, 86, 86, 86, 80, 81, 82, 83, 84, 86,
- 110, 86, 91, 87, 34, 77, 78, 41, 118, 86,
- 82, 52, 86, 34, 89, 24, 50, 51, 52, 53,
- 54, 55, 94, 57, 86, 86, 60, 61, 62, 101,
- 86, 86, 92, 86, 42, 86, 86, 86, 86, 86,
- 170, 171, 172, 86, 78, 79, 80, 81, 82, 83,
- 84, 50, 162, 297, 162, 47, 28, 194, -1, 135,
- 170, 171, 172, -1, -1, 119, -1, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 194, -1, -1, -1, -1, -1,
- -1, 163, 164, 165, 166, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 177, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 190, 191,
- -1, 193, -1, -1, -1, 197, 236, 199, 238, -1,
- -1, -1, -1, -1, 244, -1, 246, -1, -1, -1,
- -1, -1, 252, -1, -1, -1, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 296, -1, -1, -1, -1, -1, -1,
- -1, 243, -1, -1, -1, 285, -1, -1, 288, 289,
- 288, 253, -1, -1, 294, -1, 296, -1, 298, -1,
- -1, 301, -1, 301, 304, -1, -1, -1, -1, -1,
- -1, 311, 312, -1, -1, 315, -1, -1, -1, 319,
- -1, -1, 322, -1, -1, 325, 326, -1, 328, -1,
- -1, 331, 332, 5, -1, 335, -1, -1, 10, -1,
- -1, 13, 14, 15, -1, 307, -1, 19, 20, 21,
- 22, 23, -1, -1, 316, 27, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
- 82, -1, -1, -1, 5, -1, 88, -1, 90, 10,
- 92, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 0, 21, 29, 0, 47, 39, 159, 57, 241, 9,
+ 243, 73, 57, 19, 14, 60, 249, 57, 45, 88,
+ 0, 21, 28, 92, 86, 260, 26, 44, 45, 29,
+ 263, 81, 82, 83, 84, 80, 81, 82, 83, 84,
+ 193, 39, 95, 83, 84, 45, 46, 47, 101, 55,
+ 50, 95, 86, 50, 42, 87, 87, 101, 86, 294,
+ 91, 296, 86, 87, 52, 118, 301, 88, 87, 122,
+ 89, 98, 307, 86, 118, 174, 175, 86, 122, 312,
+ 81, 82, 83, 86, 86, 85, 113, 240, 321, 324,
+ 86, 86, 86, 86, 86, 328, 331, 86, 98, 86,
+ 335, 334, 102, 34, 87, 91, 341, 340, 92, 344,
+ 92, 86, 91, 113, 52, 50, 51, 52, 53, 54,
+ 55, 121, 57, 86, 34, 60, 61, 62, 89, 24,
+ 86, 86, 23, 86, 86, 92, 86, 86, 42, 86,
+ 86, 86, 185, 78, 79, 80, 81, 82, 83, 84,
+ 86, 42, 87, 173, 174, 175, 86, 86, 50, 50,
+ 51, 52, 53, 54, 55, 165, 57, 304, 165, 60,
+ 61, 62, 28, 173, 174, 175, 199, -1, 122, 138,
+ -1, -1, -1, -1, -1, 185, 186, 78, 79, 80,
+ 81, 82, 83, 84, -1, -1, 41, -1, -1, 199,
+ -1, -1, -1, -1, -1, 50, 51, 52, 53, 54,
+ 55, -1, 57, 10, 11, 60, 61, 62, -1, -1,
+ -1, -1, 19, -1, -1, -1, -1, -1, -1, -1,
+ -1, 28, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 241, -1, 243, -1, -1, -1, 44, -1, 249,
+ -1, 251, -1, -1, -1, -1, -1, -1, 55, -1,
+ 260, -1, -1, 263, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 303, -1, -1, -1,
+ -1, -1, 79, 80, -1, -1, -1, 84, -1, -1,
+ -1, -1, -1, -1, 294, 295, 296, -1, 295, 96,
+ -1, 301, -1, 303, -1, -1, 103, 307, -1, -1,
+ 310, -1, 312, 310, -1, -1, -1, -1, -1, -1,
+ 320, 321, -1, -1, 324, -1, -1, -1, 328, -1,
+ -1, 331, -1, -1, 334, 335, -1, 337, -1, -1,
+ 340, 341, -1, -1, 344, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, -1, -1, -1, -1, -1, -1, -1, 166,
+ 167, 168, 169, -1, -1, -1, 42, -1, -1, -1,
+ -1, -1, -1, 180, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, 195, 196,
+ -1, 198, -1, -1, -1, 202, -1, 204, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, -1, -1, -1, -1, -1, 223, 224, 225, 226,
+ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, -1, 5, -1, -1, -1, -1, 10,
+ -1, 248, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, 264, -1, -1,
31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, -1, -1, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 5, 87, 88, -1, 90,
- 10, -1, -1, 13, 14, 15, -1, -1, -1, 19,
+ -1, 42, 43, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, -1, 77, -1, 315, -1,
+ 81, 82, -1, -1, -1, 5, -1, 88, 325, 90,
+ 10, 92, -1, 13, 14, 15, -1, -1, -1, 19,
20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
-1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
@@ -1201,16 +1218,32 @@ static const yytype_int16 yycheck[] =
-1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 5, -1,
+ 78, 79, 80, 81, 82, 83, 84, -1, 5, 87,
88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
-1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, -1, -1, -1, 5,
- -1, 88, 89, 90, 10, -1, -1, 13, 14, 15,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
+ -1, 88, -1, 90, 10, -1, -1, 13, 14, 15,
+ -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, -1, -1, -1,
+ 5, -1, 88, 89, 90, 10, -1, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
+ -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
-1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
-1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
@@ -1230,7 +1263,7 @@ static const yytype_int16 yycheck[] =
-1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
-1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
-1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ -1, -1, -1, -1, -1, -1, -1, -1, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
-1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
@@ -1239,51 +1272,24 @@ static const yytype_int16 yycheck[] =
-1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
-1, -1, 81, 82, -1, 5, -1, -1, -1, 88,
10, 90, -1, 13, 14, 15, -1, -1, -1, 19,
20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
-1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
+ -1, -1, -1, -1, -1, -1, 56, -1, 58, 59,
-1, -1, -1, 63, 64, 65, 66, 67, 68, 69,
70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, 81, 82, -1, 5, -1, -1, -1, 88, 10,
- 90, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, -1, -1, 56, -1, 58, 59, -1,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
- -1, -1, -1, -1, 13, -1, -1, 88, -1, 90,
- 19, 20, 21, 22, 23, -1, -1, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, 46, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, -1, 13, -1, -1, 77, -1,
- -1, 19, 20, 21, 22, 23, 24, 86, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, 13, -1, -1, 88, -1,
+ 90, 19, 20, 21, 22, 23, -1, -1, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, 46, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
- -1, -1, -1, 19, 20, 21, 22, 23, 86, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, -1, 75,
- -1, 77, -1, -1, -1, 13, -1, -1, 16, -1,
- 86, 19, 20, 21, 22, 23, -1, -1, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 68, 69, 70, 71, 72, -1, 13, -1, -1, 77,
+ -1, -1, 19, 20, 21, 22, 23, 24, 86, 26,
27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
@@ -1294,6 +1300,25 @@ static const yytype_int16 yycheck[] =
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ -1, 76, 77, -1, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ -1, 75, -1, 77, -1, -1, -1, 13, -1, -1,
+ 16, -1, 86, 19, 20, 21, 22, 23, -1, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
+ -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
13, -1, 77, -1, -1, -1, 19, 20, 21, 22,
23, 86, -1, 26, 27, 28, 29, 30, 31, 32,
@@ -1301,25 +1326,19 @@ static const yytype_int16 yycheck[] =
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, 75, -1, 77, -1, -1, 19, 20, 21,
- 22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 13, 75, -1, 77, -1, -1, 19, 20,
- 21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
+ -1, 74, 13, -1, 77, -1, -1, -1, 19, 20,
+ 21, 22, 23, 86, -1, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
+ 71, -1, -1, 13, 75, -1, 77, -1, -1, 19,
20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
+ 70, 71, -1, -1, 13, 75, -1, 77, -1, -1,
19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
@@ -1333,52 +1352,58 @@ static const yytype_int16 yycheck[] =
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
-1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, 28, 29, -1, 31, 32, -1, 34, 35, 36,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 13, 14, 15, -1, -1,
- 77, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, 13, -1, -1, -1, -1, 77,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
- -1, -1, -1, 23, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 42, -1, -1, -1, -1, -1, 77, -1,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, -1, -1, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- 87, -1, 89, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, 89, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, 87, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
+ 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
+ -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
+ 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 13, 14, 15,
+ -1, -1, 77, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, 13, -1, -1, -1,
+ -1, 77, 19, 20, 21, 22, 23, -1, -1, -1,
+ 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 50, 51, 52, 53, 54, 55,
+ 77, 57, -1, -1, 60, 61, 62, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
-1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, -1, -1, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
+ -1, 87, -1, 89, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, -1, 89, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, -1, -1, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, 50, 51, 52,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, -1, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, 50, 51, 52, 53, -1, -1, -1, 57,
- -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 50, 51, 52, 53, -1,
+ -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 78, 79, 80, 81, 82, 83, 84
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1391,34 +1416,35 @@ static const yytype_uint8 yystos[] =
54, 55, 56, 57, 58, 59, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 77, 86, 94,
95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
- 115, 116, 117, 118, 39, 86, 35, 39, 40, 77,
- 105, 106, 107, 5, 10, 14, 15, 27, 34, 56,
- 81, 82, 88, 90, 105, 111, 112, 122, 123, 126,
- 129, 130, 131, 133, 88, 133, 105, 39, 111, 133,
- 44, 45, 105, 123, 125, 105, 111, 112, 106, 106,
- 105, 109, 0, 96, 111, 133, 86, 86, 87, 133,
- 133, 131, 131, 131, 89, 133, 14, 15, 92, 105,
- 127, 128, 133, 135, 136, 88, 86, 86, 36, 50,
- 51, 52, 53, 54, 55, 57, 60, 61, 62, 78,
- 79, 80, 81, 82, 83, 84, 87, 122, 129, 132,
- 134, 133, 41, 54, 55, 57, 62, 106, 86, 86,
- 32, 58, 59, 105, 133, 42, 52, 114, 86, 86,
- 86, 86, 86, 106, 86, 105, 36, 134, 87, 89,
- 92, 92, 91, 92, 87, 91, 91, 87, 135, 34,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 136, 50, 51,
- 52, 53, 54, 55, 57, 60, 61, 62, 78, 79,
- 80, 81, 82, 83, 84, 87, 86, 108, 86, 123,
- 124, 124, 124, 52, 86, 133, 73, 86, 99, 100,
- 101, 102, 86, 34, 136, 133, 133, 133, 14, 15,
- 105, 128, 133, 89, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 136, 86, 108, 119, 120, 121, 24, 119,
- 86, 86, 86, 133, 119, 86, 105, 86, 119, 133,
- 89, 24, 74, 121, 86, 108, 23, 42, 75, 106,
- 102, 16, 86, 108, 86, 119, 42, 133, 86, 86,
- 104, 105, 119, 74, 133, 86, 119, 86, 87, 74,
- 86, 86, 119, 105, 86, 119, 75, 75, 86, 86
+ 115, 116, 117, 118, 119, 39, 86, 35, 39, 40,
+ 70, 77, 105, 106, 107, 5, 10, 14, 15, 27,
+ 34, 56, 81, 82, 88, 90, 105, 111, 112, 123,
+ 124, 127, 130, 131, 132, 134, 88, 134, 105, 39,
+ 111, 134, 44, 45, 105, 124, 126, 105, 111, 112,
+ 106, 134, 106, 105, 109, 0, 96, 111, 134, 86,
+ 86, 87, 134, 134, 132, 132, 132, 89, 134, 14,
+ 15, 92, 105, 128, 129, 134, 136, 137, 88, 86,
+ 86, 36, 50, 51, 52, 53, 54, 55, 57, 60,
+ 61, 62, 78, 79, 80, 81, 82, 83, 84, 87,
+ 123, 130, 133, 135, 134, 41, 54, 55, 57, 62,
+ 106, 86, 86, 32, 58, 59, 105, 134, 42, 52,
+ 114, 86, 86, 86, 86, 42, 86, 86, 106, 86,
+ 105, 36, 135, 87, 89, 92, 92, 91, 92, 87,
+ 91, 91, 87, 136, 34, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 137, 50, 51, 52, 53, 54, 55, 57,
+ 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
+ 87, 86, 108, 86, 124, 125, 125, 125, 52, 86,
+ 134, 73, 86, 99, 100, 101, 102, 109, 86, 108,
+ 120, 121, 122, 86, 34, 137, 134, 134, 134, 14,
+ 15, 105, 129, 134, 89, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 137, 120, 24, 120, 86, 86, 86,
+ 134, 120, 86, 105, 86, 76, 122, 120, 134, 89,
+ 24, 74, 86, 108, 23, 42, 75, 106, 102, 86,
+ 16, 86, 108, 86, 120, 42, 134, 86, 86, 104,
+ 105, 120, 74, 134, 86, 120, 86, 87, 74, 86,
+ 86, 120, 105, 86, 120, 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1430,19 +1456,19 @@ static const yytype_uint8 yyr1[] =
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 106, 106, 107, 107, 108, 108, 108, 108, 109, 109,
- 109, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 111, 111, 111, 111, 111, 111, 111, 112, 112,
- 112, 112, 112, 113, 113, 113, 113, 114, 114, 115,
- 115, 115, 116, 116, 117, 117, 117, 117, 118, 118,
- 118, 119, 119, 120, 120, 121, 121, 122, 122, 122,
- 122, 122, 122, 122, 122, 123, 124, 125, 126, 126,
- 126, 127, 127, 128, 128, 128, 129, 130, 130, 131,
- 131, 131, 132, 132, 133, 133, 133, 133, 133, 133,
- 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 134, 134, 134, 134, 134, 134, 134, 134,
+ 106, 106, 107, 107, 108, 108, 108, 108, 108, 109,
+ 109, 109, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 110, 111, 111, 111, 111, 111, 111, 111, 112,
+ 112, 112, 112, 112, 113, 113, 113, 113, 114, 114,
+ 115, 115, 115, 116, 116, 117, 117, 117, 117, 118,
+ 118, 118, 119, 119, 120, 120, 121, 121, 122, 122,
+ 123, 123, 123, 123, 123, 123, 123, 123, 124, 125,
+ 126, 127, 127, 127, 128, 128, 129, 129, 129, 130,
+ 131, 131, 132, 132, 132, 133, 133, 134, 134, 134,
134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 135, 135, 136, 136
+ 134, 134, 134, 134, 134, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 136, 136, 137, 137
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1455,18 +1481,18 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 2,
- 2, 0, 1, 3, 2, 4, 2, 5, 2, 2,
- 5, 4, 3, 5, 5, 5, 5, 1, 1, 3,
- 3, 3, 4, 7, 6, 9, 7, 10, 7, 11,
- 12, 0, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 2, 4, 1, 1, 1, 1, 1, 3, 3,
- 3, 1, 3, 3, 3, 3, 3, 2, 2, 1,
- 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
+ 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+ 2, 2, 0, 1, 3, 2, 4, 2, 5, 2,
+ 2, 5, 4, 3, 5, 5, 5, 5, 1, 1,
+ 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
+ 11, 12, 4, 6, 0, 1, 1, 2, 1, 1,
+ 1, 1, 1, 1, 2, 4, 1, 1, 1, 1,
+ 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,
+ 2, 2, 1, 1, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 0, 1, 1, 3
+ 3, 3, 3, 0, 1, 1, 3
};
@@ -1740,49 +1766,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1744 "engines/director/lingo/lingo-gr.cpp"
+#line 1770 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1750 "engines/director/lingo/lingo-gr.cpp"
+#line 1776 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1756 "engines/director/lingo/lingo-gr.cpp"
+#line 1782 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1762 "engines/director/lingo/lingo-gr.cpp"
+#line 1788 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1768 "engines/director/lingo/lingo-gr.cpp"
+#line 1794 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1774 "engines/director/lingo/lingo-gr.cpp"
+#line 1800 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1780 "engines/director/lingo/lingo-gr.cpp"
+#line 1806 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1786 "engines/director/lingo/lingo-gr.cpp"
+#line 1812 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2050,7 +2076,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2054 "engines/director/lingo/lingo-gr.cpp"
+#line 2080 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2061,7 +2087,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2065 "engines/director/lingo/lingo-gr.cpp"
+#line 2091 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2071,37 +2097,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2075 "engines/director/lingo/lingo-gr.cpp"
+#line 2101 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2107 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2087 "engines/director/lingo/lingo-gr.cpp"
+#line 2113 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2093 "engines/director/lingo/lingo-gr.cpp"
+#line 2119 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2099 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2105 "engines/director/lingo/lingo-gr.cpp"
+#line 2131 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2112,7 +2138,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2116 "engines/director/lingo/lingo-gr.cpp"
+#line 2142 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2122,13 +2148,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2126 "engines/director/lingo/lingo-gr.cpp"
+#line 2152 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2132 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2137,242 +2163,242 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2141 "engines/director/lingo/lingo-gr.cpp"
+#line 2167 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2148 "engines/director/lingo/lingo-gr.cpp"
+#line 2174 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2154 "engines/director/lingo/lingo-gr.cpp"
+#line 2180 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2160 "engines/director/lingo/lingo-gr.cpp"
+#line 2186 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2166 "engines/director/lingo/lingo-gr.cpp"
+#line 2192 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2172 "engines/director/lingo/lingo-gr.cpp"
+#line 2198 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2204 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2184 "engines/director/lingo/lingo-gr.cpp"
+#line 2210 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2190 "engines/director/lingo/lingo-gr.cpp"
+#line 2216 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2196 "engines/director/lingo/lingo-gr.cpp"
+#line 2222 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2202 "engines/director/lingo/lingo-gr.cpp"
+#line 2228 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2208 "engines/director/lingo/lingo-gr.cpp"
+#line 2234 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2214 "engines/director/lingo/lingo-gr.cpp"
+#line 2240 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2220 "engines/director/lingo/lingo-gr.cpp"
+#line 2246 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2226 "engines/director/lingo/lingo-gr.cpp"
+#line 2252 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2232 "engines/director/lingo/lingo-gr.cpp"
+#line 2258 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2238 "engines/director/lingo/lingo-gr.cpp"
+#line 2264 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2244 "engines/director/lingo/lingo-gr.cpp"
+#line 2270 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2250 "engines/director/lingo/lingo-gr.cpp"
+#line 2276 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2256 "engines/director/lingo/lingo-gr.cpp"
+#line 2282 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2262 "engines/director/lingo/lingo-gr.cpp"
+#line 2288 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2268 "engines/director/lingo/lingo-gr.cpp"
+#line 2294 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2274 "engines/director/lingo/lingo-gr.cpp"
+#line 2300 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2280 "engines/director/lingo/lingo-gr.cpp"
+#line 2306 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2286 "engines/director/lingo/lingo-gr.cpp"
+#line 2312 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2292 "engines/director/lingo/lingo-gr.cpp"
+#line 2318 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2298 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2304 "engines/director/lingo/lingo-gr.cpp"
+#line 2330 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2310 "engines/director/lingo/lingo-gr.cpp"
+#line 2336 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2316 "engines/director/lingo/lingo-gr.cpp"
+#line 2342 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2322 "engines/director/lingo/lingo-gr.cpp"
+#line 2348 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2328 "engines/director/lingo/lingo-gr.cpp"
+#line 2354 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2360 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tWHEN */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2340 "engines/director/lingo/lingo-gr.cpp"
+#line 2366 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2346 "engines/director/lingo/lingo-gr.cpp"
+#line 2372 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2352 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2358 "engines/director/lingo/lingo-gr.cpp"
+#line 2384 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2364 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2370 "engines/director/lingo/lingo-gr.cpp"
+#line 2396 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* idlist: %empty */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2376 "engines/director/lingo/lingo-gr.cpp"
+#line 2402 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* nonemptyidlist: ID */
@@ -2381,7 +2407,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2385 "engines/director/lingo/lingo-gr.cpp"
+#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2389,678 +2415,694 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2393 "engines/director/lingo/lingo-gr.cpp"
+#line 2419 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* proc: ID cmdargs '\n' */
-#line 371 "engines/director/lingo/lingo-gr.y"
+ case 72: /* proc: ID cmdargs '\n' */
+#line 372 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2399 "engines/director/lingo/lingo-gr.cpp"
+#line 2425 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* proc: tPUT cmdargs '\n' */
-#line 372 "engines/director/lingo/lingo-gr.y"
+ case 73: /* proc: tPUT cmdargs '\n' */
+#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2405 "engines/director/lingo/lingo-gr.cpp"
+#line 2431 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: tGO cmdargs '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+ case 74: /* proc: tGO cmdargs '\n' */
+#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2411 "engines/director/lingo/lingo-gr.cpp"
+#line 2437 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tGO frameargs '\n' */
-#line 374 "engines/director/lingo/lingo-gr.y"
+ case 75: /* proc: tGO frameargs '\n' */
+#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2417 "engines/director/lingo/lingo-gr.cpp"
+#line 2443 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tPLAY cmdargs '\n' */
-#line 375 "engines/director/lingo/lingo-gr.y"
+ case 76: /* proc: tPLAY cmdargs '\n' */
+#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2423 "engines/director/lingo/lingo-gr.cpp"
+#line 2449 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tPLAY frameargs '\n' */
-#line 376 "engines/director/lingo/lingo-gr.y"
+ case 77: /* proc: tPLAY frameargs '\n' */
+#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2429 "engines/director/lingo/lingo-gr.cpp"
+#line 2455 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tNEXT tREPEAT '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+ case 78: /* proc: tNEXT tREPEAT '\n' */
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2435 "engines/director/lingo/lingo-gr.cpp"
+#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* proc: tEXIT tREPEAT '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+ case 79: /* proc: tEXIT tREPEAT '\n' */
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2467 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* proc: tEXIT '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+ case 80: /* proc: tEXIT '\n' */
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2447 "engines/director/lingo/lingo-gr.cpp"
+#line 2473 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* proc: tASSERTERROR stmtoneliner */
-#line 380 "engines/director/lingo/lingo-gr.y"
+ case 81: /* proc: tASSERTERROR stmtoneliner */
+#line 381 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2453 "engines/director/lingo/lingo-gr.cpp"
+#line 2479 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* cmdargs: %empty */
-#line 383 "engines/director/lingo/lingo-gr.y"
+ case 82: /* cmdargs: %empty */
+#line 384 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2487 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: expr */
-#line 386 "engines/director/lingo/lingo-gr.y"
+ case 83: /* cmdargs: expr */
+#line 387 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2471 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: expr ',' nonemptyexprlist */
-#line 391 "engines/director/lingo/lingo-gr.y"
+ case 84: /* cmdargs: expr ',' nonemptyexprlist */
+#line 392 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2480 "engines/director/lingo/lingo-gr.cpp"
+#line 2506 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* cmdargs: expr expr_nounarymath */
-#line 395 "engines/director/lingo/lingo-gr.y"
+ case 85: /* cmdargs: expr expr_nounarymath */
+#line 396 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+#line 2517 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 86: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 402 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2501 "engines/director/lingo/lingo-gr.cpp"
+#line 2527 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* cmdargs: '(' ')' */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 87: /* cmdargs: '(' ')' */
+#line 407 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2509 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 88: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 410 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2518 "engines/director/lingo/lingo-gr.cpp"
+#line 2544 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* frameargs: tFRAME expr */
-#line 419 "engines/director/lingo/lingo-gr.y"
+ case 89: /* frameargs: tFRAME expr */
+#line 420 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2528 "engines/director/lingo/lingo-gr.cpp"
+#line 2554 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* frameargs: tMOVIE expr */
-#line 424 "engines/director/lingo/lingo-gr.y"
+ case 90: /* frameargs: tMOVIE expr */
+#line 425 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2539 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 430 "engines/director/lingo/lingo-gr.y"
+ case 91: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 431 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2550 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* frameargs: expr tOF tMOVIE expr */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 92: /* frameargs: expr tOF tMOVIE expr */
+#line 437 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2561 "engines/director/lingo/lingo-gr.cpp"
+#line 2587 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* frameargs: tFRAME expr expr_nounarymath */
-#line 442 "engines/director/lingo/lingo-gr.y"
+ case 93: /* frameargs: tFRAME expr expr_nounarymath */
+#line 443 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2572 "engines/director/lingo/lingo-gr.cpp"
+#line 2598 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 94: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 451 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2578 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 95: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2584 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 452 "engines/director/lingo/lingo-gr.y"
+ case 96: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2590 "engines/director/lingo/lingo-gr.cpp"
+#line 2616 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* asgn: tSET varorthe to expr '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+ case 97: /* asgn: tSET varorthe to expr '\n' */
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2596 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* definevars: tGLOBAL idlist '\n' */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 100: /* definevars: tGLOBAL idlist '\n' */
+#line 459 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2628 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* definevars: tPROPERTY idlist '\n' */
-#line 459 "engines/director/lingo/lingo-gr.y"
+ case 101: /* definevars: tPROPERTY idlist '\n' */
+#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2608 "engines/director/lingo/lingo-gr.cpp"
+#line 2634 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* definevars: tINSTANCE idlist '\n' */
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 102: /* definevars: tINSTANCE idlist '\n' */
+#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2640 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* ifstmt: tIF expr tTHEN stmt */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 103: /* ifstmt: tIF expr tTHEN stmt */
+#line 464 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2623 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 467 "engines/director/lingo/lingo-gr.y"
+ case 104: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 468 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2656 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 471 "engines/director/lingo/lingo-gr.y"
+ case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 472 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2641 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 477 "engines/director/lingo/lingo-gr.y"
+ case 106: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 478 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2650 "engines/director/lingo/lingo-gr.cpp"
+#line 2676 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 481 "engines/director/lingo/lingo-gr.y"
+ case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 482 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2659 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 108: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 486 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2666 "engines/director/lingo/lingo-gr.cpp"
+#line 2692 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 489 "engines/director/lingo/lingo-gr.y"
+ case 109: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 490 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 491 "engines/director/lingo/lingo-gr.y"
+ case 110: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 492 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2680 "engines/director/lingo/lingo-gr.cpp"
+#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 493 "engines/director/lingo/lingo-gr.y"
+ case 111: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 494 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* stmtlist: %empty */
-#line 497 "engines/director/lingo/lingo-gr.y"
- { (yyval.nodelist) = new NodeList; }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+ case 112: /* tell: tTELL expr tTO stmtoneliner */
+#line 498 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *stmtlist = new NodeList;
+ stmtlist->push_back((yyvsp[0].node));
+ (yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
+#line 2722 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* nonemptystmtlist: stmtlistline */
+ case 113: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 502 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 114: /* stmtlist: %empty */
+#line 506 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 116: /* nonemptystmtlist: stmtlistline */
+#line 511 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2704 "engines/director/lingo/lingo-gr.cpp"
+#line 2746 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 508 "engines/director/lingo/lingo-gr.y"
+ case 117: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 517 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2714 "engines/director/lingo/lingo-gr.cpp"
+#line 2756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* stmtlistline: '\n' */
-#line 515 "engines/director/lingo/lingo-gr.y"
+ case 118: /* stmtlistline: '\n' */
+#line 524 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2720 "engines/director/lingo/lingo-gr.cpp"
+#line 2762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* simpleexpr_noparens_nounarymath: tINT */
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 120: /* simpleexpr_noparens_nounarymath: tINT */
+#line 531 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2726 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 121: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 532 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2732 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 122: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 533 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 525 "engines/director/lingo/lingo-gr.y"
+ case 123: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 534 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2744 "engines/director/lingo/lingo-gr.cpp"
+#line 2786 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 526 "engines/director/lingo/lingo-gr.y"
+ case 124: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 535 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2750 "engines/director/lingo/lingo-gr.cpp"
+#line 2792 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 527 "engines/director/lingo/lingo-gr.y"
+ case 125: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 536 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2756 "engines/director/lingo/lingo-gr.cpp"
+#line 2798 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* var: ID */
-#line 532 "engines/director/lingo/lingo-gr.y"
+ case 128: /* var: ID */
+#line 541 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 2804 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* list: '[' exprlist ']' */
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 131: /* list: '[' exprlist ']' */
+#line 551 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2810 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* list: '[' ':' ']' */
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 132: /* list: '[' ':' ']' */
+#line 552 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2816 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* list: '[' proplist ']' */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 133: /* list: '[' proplist ']' */
+#line 553 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2822 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proplist: proppair */
-#line 547 "engines/director/lingo/lingo-gr.y"
+ case 134: /* proplist: proppair */
+#line 556 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* proplist: proplist ',' proppair */
-#line 551 "engines/director/lingo/lingo-gr.y"
+ case 135: /* proplist: proplist ',' proppair */
+#line 560 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2797 "engines/director/lingo/lingo-gr.cpp"
+#line 2839 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* proppair: tSYMBOL ':' expr */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 136: /* proppair: tSYMBOL ':' expr */
+#line 565 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2845 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* proppair: ID ':' expr */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 137: /* proppair: ID ':' expr */
+#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2851 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* proppair: tSTRING ':' expr */
-#line 558 "engines/director/lingo/lingo-gr.y"
+ case 138: /* proppair: tSTRING ':' expr */
+#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2815 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* parens: '(' expr ')' */
-#line 561 "engines/director/lingo/lingo-gr.y"
+ case 139: /* parens: '(' expr ')' */
+#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2821 "engines/director/lingo/lingo-gr.cpp"
+#line 2863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* unarymath: '+' simpleexpr */
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 140: /* unarymath: '+' simpleexpr */
+#line 572 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2869 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* unarymath: '-' simpleexpr */
-#line 564 "engines/director/lingo/lingo-gr.y"
+ case 141: /* unarymath: '-' simpleexpr */
+#line 573 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2833 "engines/director/lingo/lingo-gr.cpp"
+#line 2875 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* expr: expr '+' expr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 148: /* expr: expr '+' expr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2839 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* expr: expr '-' expr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+ case 149: /* expr: expr '-' expr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2845 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* expr: expr '*' expr */
-#line 584 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr '*' expr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2851 "engines/director/lingo/lingo-gr.cpp"
+#line 2893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr '/' expr */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr '/' expr */
+#line 594 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr tMOD expr */
-#line 586 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr tMOD expr */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2863 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr '>' expr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+ case 153: /* expr: expr '>' expr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2869 "engines/director/lingo/lingo-gr.cpp"
+#line 2911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr '<' expr */
-#line 588 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr: expr '<' expr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2875 "engines/director/lingo/lingo-gr.cpp"
+#line 2917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tEQ expr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+ case 155: /* expr: expr tEQ expr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr tNEQ expr */
-#line 590 "engines/director/lingo/lingo-gr.y"
+ case 156: /* expr: expr tNEQ expr */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 2929 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr tGE expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 157: /* expr: expr tGE expr */
+#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2893 "engines/director/lingo/lingo-gr.cpp"
+#line 2935 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr tLE expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 158: /* expr: expr tLE expr */
+#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2899 "engines/director/lingo/lingo-gr.cpp"
+#line 2941 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr tAND expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr tAND expr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2905 "engines/director/lingo/lingo-gr.cpp"
+#line 2947 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tOR expr */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 160: /* expr: expr tOR expr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2911 "engines/director/lingo/lingo-gr.cpp"
+#line 2953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr '&' expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 161: /* expr: expr '&' expr */
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2917 "engines/director/lingo/lingo-gr.cpp"
+#line 2959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tCONCAT expr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 162: /* expr: expr tCONCAT expr */
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2923 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr tCONTAINS expr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr: expr tCONTAINS expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2929 "engines/director/lingo/lingo-gr.cpp"
+#line 2971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr: expr tSTARTS expr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr: expr tSTARTS expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2935 "engines/director/lingo/lingo-gr.cpp"
+#line 2977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 615 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2941 "engines/director/lingo/lingo-gr.cpp"
+#line 2983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 167: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2947 "engines/director/lingo/lingo-gr.cpp"
+#line 2989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 168: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 617 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2953 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2959 "engines/director/lingo/lingo-gr.cpp"
+#line 3001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2965 "engines/director/lingo/lingo-gr.cpp"
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2971 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2977 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2983 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 3031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 615 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 624 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 176: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 625 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3001 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 617 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 3049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 3055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 179: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 180: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3067 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 181: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3073 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 182: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 631 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 3079 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* exprlist: %empty */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 183: /* exprlist: %empty */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3085 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* nonemptyexprlist: expr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 185: /* nonemptyexprlist: expr */
+#line 638 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3052 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 186: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 642 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3060 "engines/director/lingo/lingo-gr.cpp"
+#line 3102 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3064 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3259,7 +3301,7 @@ yyreturn:
return yyresult;
}
-#line 638 "engines/director/lingo/lingo-gr.y"
+#line 647 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 1465fb0877..640ab942bd 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -166,7 +166,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// STATEMENT
%type<node> stmt stmtoneliner
%type<node> proc asgn definevars
-%type<node> ifstmt ifelsestmt loop
+%type<node> ifstmt ifelsestmt loop tell
%type<nodelist> cmdargs frameargs stmtlist nonemptystmtlist
%type<node> stmtlistline
@@ -361,6 +361,7 @@ stmt: stmtoneliner
| ifstmt
| ifelsestmt
| loop
+ | tell
;
stmtoneliner: proc
@@ -494,6 +495,14 @@ loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' {
$$ = new RepeatWithToNode($ID, $start, true, $end, $stmtlist); }
;
+tell: tTELL expr tTO stmtoneliner {
+ NodeList *stmtlist = new NodeList;
+ stmtlist->push_back($stmtoneliner);
+ $$ = new TellNode($expr, stmtlist); }
+ | tTELL expr '\n' stmtlist tENDTELL '\n' {
+ $$ = new TellNode($expr, $stmtlist); }
+ ;
+
stmtlist: /* empty */ { $$ = new NodeList; }
| nonemptystmtlist
;
Commit: a5865079a1a13f2a29c80c58e61e0c807cc7c621
https://github.com/scummvm/scummvm/commit/a5865079a1a13f2a29c80c58e61e0c807cc7c621
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement when
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 032dcefd63..d3e639c80c 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -45,6 +45,7 @@ struct NextRepeatNode;
struct ExitRepeatNode;
struct ExitNode;
struct TellNode;
+struct WhenNode;
struct AssertErrorNode;
struct IntNode;
struct FloatNode;
@@ -94,6 +95,7 @@ enum NodeType {
kExitRepeatNode,
kExitNode,
kTellNode,
+ kWhenNode,
kAssertErrorNode,
kIntNode,
kFloatNode,
@@ -137,6 +139,7 @@ public:
virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
virtual void visitExitNode(ExitNode *node) = 0;
virtual void visitTellNode(TellNode *node) = 0;
+ virtual void visitWhenNode(WhenNode *node) = 0;
virtual void visitAssertErrorNode(AssertErrorNode *node) = 0;
virtual void visitIntNode(IntNode *node) = 0;
virtual void visitFloatNode(FloatNode *node) = 0;
@@ -496,6 +499,23 @@ struct TellNode : StmtNode {
}
};
+/* WhenNode */
+
+struct WhenNode : StmtNode {
+ Common::String *event;
+ Node *code;
+
+ WhenNode(Common::String *eventIn, Node *codeIn)
+ : StmtNode(kWhenNode), event(eventIn), code(codeIn) {}
+ virtual ~WhenNode() {
+ delete event;
+ delete code;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitWhenNode(this);
+ }
+};
+
/* AssertErrorNode */
struct AssertErrorNode : StmtNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 2f051cc4f8..e62d058ffe 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -732,6 +732,14 @@ void LingoCompiler::visitTellNode(TellNode *node) {
code1(LC::c_telldone);
}
+/* WhenNode */
+
+void LingoCompiler::visitWhenNode(WhenNode *node) {
+ compile(node->code);
+ code1(LC::c_whencode);
+ codeString(node->event->c_str());
+}
+
/* AssertErrorNode */
void LingoCompiler::visitAssertErrorNode(AssertErrorNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 1bfe959285..fe43dafab3 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -96,6 +96,7 @@ public:
virtual void visitExitRepeatNode(ExitRepeatNode *node);
virtual void visitExitNode(ExitNode *node);
virtual void visitTellNode(TellNode *node);
+ virtual void visitWhenNode(WhenNode *node);
virtual void visitAssertErrorNode(AssertErrorNode *node);
virtual void visitIntNode(IntNode *node);
virtual void visitFloatNode(FloatNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 34343359fd..c28a7b5da5 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -272,24 +272,25 @@ enum yysymbol_kind_t
YYSYMBOL_ifelsestmt = 117, /* ifelsestmt */
YYSYMBOL_loop = 118, /* loop */
YYSYMBOL_tell = 119, /* tell */
- YYSYMBOL_stmtlist = 120, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 121, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 122, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 123, /* simpleexpr_noparens_nounarymath */
- YYSYMBOL_var = 124, /* var */
- YYSYMBOL_varorchunk = 125, /* varorchunk */
- YYSYMBOL_varorthe = 126, /* varorthe */
- YYSYMBOL_list = 127, /* list */
- YYSYMBOL_proplist = 128, /* proplist */
- YYSYMBOL_proppair = 129, /* proppair */
- YYSYMBOL_parens = 130, /* parens */
- YYSYMBOL_unarymath = 131, /* unarymath */
- YYSYMBOL_simpleexpr = 132, /* simpleexpr */
- YYSYMBOL_simpleexpr_nounarymath = 133, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 134, /* expr */
- YYSYMBOL_expr_nounarymath = 135, /* expr_nounarymath */
- YYSYMBOL_exprlist = 136, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 137 /* nonemptyexprlist */
+ YYSYMBOL_when = 120, /* when */
+ YYSYMBOL_stmtlist = 121, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 122, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 123, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 124, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 125, /* var */
+ YYSYMBOL_varorchunk = 126, /* varorchunk */
+ YYSYMBOL_varorthe = 127, /* varorthe */
+ YYSYMBOL_list = 128, /* list */
+ YYSYMBOL_proplist = 129, /* proplist */
+ YYSYMBOL_proppair = 130, /* proppair */
+ YYSYMBOL_parens = 131, /* parens */
+ YYSYMBOL_unarymath = 132, /* unarymath */
+ YYSYMBOL_simpleexpr = 133, /* simpleexpr */
+ YYSYMBOL_simpleexpr_nounarymath = 134, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 135, /* expr */
+ YYSYMBOL_expr_nounarymath = 136, /* expr_nounarymath */
+ YYSYMBOL_exprlist = 137, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 138 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -609,18 +610,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 115
+#define YYFINAL 117
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2619
+#define YYLAST 2625
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 45
+#define YYNNTS 46
/* YYNRULES -- Number of rules. */
-#define YYNRULES 186
+#define YYNRULES 187
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 349
+#define YYNSTATES 353
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -682,20 +683,20 @@ static const yytype_int16 yyrline[] =
279, 283, 284, 285, 290, 291, 292, 293, 294, 295,
296, 301, 302, 305, 307, 308, 309, 310, 313, 314,
315, 316, 317, 319, 320, 322, 325, 326, 327, 328,
- 329, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 342, 343, 346, 350, 360, 361, 362, 363, 364, 367,
- 368, 369, 372, 373, 374, 375, 376, 377, 378, 379,
- 380, 381, 384, 387, 392, 396, 402, 407, 410, 420,
- 425, 431, 437, 443, 451, 452, 453, 454, 457, 457,
- 459, 460, 461, 464, 468, 472, 478, 482, 486, 490,
- 492, 494, 498, 502, 506, 507, 511, 517, 524, 525,
- 531, 532, 533, 534, 535, 536, 537, 538, 541, 543,
- 547, 551, 552, 553, 556, 560, 565, 566, 567, 570,
- 572, 573, 576, 577, 578, 585, 586, 590, 591, 592,
- 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
- 603, 604, 605, 606, 607, 614, 615, 616, 617, 618,
- 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
- 629, 630, 631, 634, 635, 638, 642
+ 329, 331, 332, 333, 335, 336, 337, 338, 339, 342,
+ 343, 346, 350, 360, 361, 362, 363, 364, 365, 368,
+ 369, 370, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 385, 388, 393, 397, 403, 408, 411, 421,
+ 426, 432, 438, 444, 452, 453, 454, 455, 458, 458,
+ 460, 461, 462, 465, 469, 473, 479, 483, 487, 491,
+ 493, 495, 499, 503, 507, 509, 510, 514, 520, 527,
+ 528, 534, 535, 536, 537, 538, 539, 540, 541, 544,
+ 546, 550, 554, 555, 556, 559, 563, 568, 569, 570,
+ 573, 575, 576, 579, 580, 581, 588, 589, 593, 594,
+ 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 617, 618, 619, 620,
+ 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
+ 631, 632, 633, 634, 637, 638, 641, 645
};
#endif
@@ -730,7 +731,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"methodlist", "nonemptymethodlist", "methodlistline", "handler",
"endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
"proc", "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
- "ifelsestmt", "loop", "tell", "stmtlist", "nonemptystmtlist",
+ "ifelsestmt", "loop", "tell", "when", "stmtlist", "nonemptystmtlist",
"stmtlistline", "simpleexpr_noparens_nounarymath", "var", "varorchunk",
"varorthe", "list", "proplist", "proppair", "parens", "unarymath",
"simpleexpr", "simpleexpr_nounarymath", "expr", "expr_nounarymath",
@@ -758,7 +759,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-236)
+#define YYPACT_NINF (-237)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -772,41 +773,42 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1392, -236, -236, -236, -236, -236, -236, -34, -236, 2313,
- 925, 1004, -236, -236, 2313, -236, 2, -236, -236, 1083,
- -17, 2313, -236, -236, -236, -236, 2313, -236, 925, 2313,
- -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
- -236, -236, -236, -236, 1004, 2313, 2313, 2195, -236, 20,
- 1392, -236, -236, -236, -236, 1083, -236, -236, -236, -236,
- -236, -236, -236, -236, -236, -28, -236, -236, -236, -236,
- -236, -236, -236, -13, -32, -236, -236, -236, -236, 1004,
- 1004, 1004, 1004, 1004, 844, 439, -21, -9, -3, -236,
- -236, -236, -236, -236, -236, 520, 1004, 155, 2313, -2,
- 4, 601, 2313, 1004, -236, -236, 12, 5, 6, 7,
- 8, 334, 11, 2313, -236, -236, -236, 13, 682, -236,
- -236, 2313, 763, 2487, -236, -236, -236, -236, 2334, 16,
- 18, 14, -69, -31, -236, 2487, 21, 17, 1004, -236,
- -236, 69, 1004, 1004, 1004, 1004, 1162, 1162, 1320, 1004,
- 1004, 1241, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
- -236, -236, -236, 65, 2347, 1951, 1004, 1004, 1004, 1004,
- 25, -236, -236, 2313, 2313, 2313, 62, 2387, -236, -236,
- 1004, -62, -236, -236, -236, 2195, 2012, -236, 37, -236,
- -236, 90, 2500, 1004, -236, 1004, 1004, -236, 1004, 2254,
- -236, -236, 1004, 39, 1004, -45, -45, -45, -45, 2535,
- 2535, -236, -50, -45, -45, -45, -45, -50, -40, -40,
- -236, -236, 17, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
- 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
- 1004, 2012, 105, 2012, -236, 44, 45, 47, 1004, 2012,
- 2400, 2313, -236, -236, 48, -236, -236, -236, -236, -236,
- 1515, -236, -236, 2012, 1004, -19, 2487, 2487, 2487, 16,
- 18, 43, -236, 2487, -236, 2487, -45, -45, -45, -45,
- 2535, 2535, -236, -50, -45, -45, -45, -45, -50, -40,
- -40, -236, -236, 17, 1453, 2073, 2012, -236, -236, -236,
- 109, 1576, -236, 2313, -62, 50, -236, 1644, 2487, -236,
- 2134, 51, 2012, -236, 96, 1004, 53, 54, -236, -236,
- 2313, 2012, -236, -236, 1705, 1004, 2437, -236, 2012, -24,
- -236, 1767, 55, 2450, 2012, 2012, -236, 2313, 64, -236,
- 2012, 1829, -236, -236, 1890, 70, 71, -236, -236
+ 1398, -237, -237, -237, -237, -237, -237, -34, -237, 2319,
+ 931, 1010, -237, -237, 2319, -237, -12, -237, -237, 1089,
+ -26, 2319, -237, 2319, -237, -237, 2319, -237, 931, 2319,
+ -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+ -237, -237, -237, -237, 1010, 2319, 2319, 2201, -237, 12,
+ 1398, -237, -237, -237, -237, 1089, -237, -237, -237, -237,
+ -237, -237, -237, -237, -237, -237, -56, -237, -237, -237,
+ -237, -237, -237, -237, -38, -47, -237, -237, -237, -237,
+ 1010, 1010, 1010, 1010, 1010, 850, 445, -35, -10, -8,
+ -237, -237, -237, -237, -237, -237, 526, 1010, 81, 2319,
+ -2, -1, 607, 2319, 1010, -237, -237, -27, 33, 11,
+ 19, 20, 23, 339, 24, 2319, -237, -237, -237, 26,
+ 688, -237, -237, 2319, 769, 2506, -237, -237, -237, -237,
+ 2340, 6, 21, 25, -64, -32, -237, 2506, 27, 3,
+ 1010, -237, -237, 80, 1010, 1010, 1010, 1010, 1168, 1168,
+ 1326, 1010, 1010, 1247, 1010, 1010, 1010, 1010, 1010, 1010,
+ 1010, 1010, -237, -237, -237, 2393, 2353, 1957, 1010, 1010,
+ 1010, 1010, 43, -237, -237, 2319, 2319, 2319, 67, 2406,
+ -237, -237, 1010, 1010, -66, -237, -237, -237, 2201, 2018,
+ -237, 51, -237, -237, 96, 2541, 1010, -237, 1010, 1010,
+ -237, 1010, 2260, -237, -237, 1010, 50, 1010, 44, 44,
+ 44, 44, -18, -18, -237, 64, 44, 44, 44, 44,
+ 64, -46, -46, -237, -237, 3, 1010, 1010, 1010, 1010,
+ 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
+ 1010, 1010, 1010, 1010, 2018, 116, 2018, -237, 63, 65,
+ 66, 1010, 2018, 2443, 2506, 2319, -237, -237, 68, -237,
+ -237, -237, -237, -237, 1521, -237, -237, 2018, 1010, -31,
+ 2506, 2506, 2506, 6, 21, 58, -237, 2506, -237, 2506,
+ 44, 44, 44, 44, -18, -18, -237, 64, 44, 44,
+ 44, 44, 64, -46, -46, -237, -237, 3, 1459, 2079,
+ 2018, -237, -237, -237, 130, 1582, -237, 2319, -66, 69,
+ -237, 1650, 2506, -237, 2140, 82, 2018, -237, 124, 1010,
+ 83, 84, -237, -237, 2319, 2018, -237, -237, 1711, 1010,
+ 2456, -237, 2018, -5, -237, 1773, 87, 2493, 2018, 2018,
+ -237, 2319, 88, -237, 2018, 1835, -237, -237, 1896, 92,
+ 93, -237, -237
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -814,61 +816,62 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 24, 28, 31, 47, 56, 30, 0, 32, 60,
+ 0, 24, 28, 31, 47, 55, 30, 0, 32, 59,
82, 0, 33, 35, 0, 39, 40, 42, 45, 82,
- 46, 48, 51, 54, 57, 55, 0, 43, 82, 60,
+ 46, 48, 51, 0, 56, 54, 0, 43, 82, 59,
26, 44, 41, 38, 25, 27, 49, 29, 36, 37,
- 59, 53, 34, 58, 50, 60, 0, 52, 5, 0,
- 2, 3, 6, 7, 8, 82, 9, 64, 69, 70,
- 71, 65, 66, 67, 68, 0, 80, 40, 46, 48,
- 50, 52, 62, 0, 61, 120, 121, 123, 122, 32,
- 39, 41, 0, 0, 0, 183, 128, 0, 0, 142,
- 126, 127, 143, 144, 147, 83, 0, 0, 60, 0,
- 0, 83, 0, 0, 128, 130, 0, 0, 0, 0,
- 0, 0, 0, 60, 81, 1, 4, 0, 83, 79,
- 100, 0, 89, 90, 124, 140, 141, 87, 0, 123,
- 122, 0, 128, 0, 134, 185, 0, 184, 183, 74,
- 75, 42, 0, 0, 0, 0, 26, 44, 38, 0,
- 0, 49, 0, 0, 0, 0, 0, 0, 0, 0,
- 145, 146, 165, 85, 0, 0, 0, 0, 0, 0,
- 0, 78, 73, 35, 25, 27, 0, 0, 98, 99,
- 0, 13, 76, 77, 102, 0, 114, 101, 0, 72,
- 63, 42, 93, 0, 139, 0, 0, 132, 0, 0,
- 133, 131, 0, 0, 0, 157, 158, 155, 156, 159,
- 160, 152, 162, 163, 164, 154, 153, 161, 148, 149,
- 150, 151, 84, 0, 0, 0, 0, 0, 0, 0,
+ 58, 53, 34, 57, 50, 59, 0, 52, 5, 0,
+ 2, 3, 6, 7, 8, 82, 9, 63, 69, 70,
+ 71, 64, 65, 66, 67, 68, 0, 80, 40, 46,
+ 48, 50, 52, 61, 0, 60, 121, 122, 124, 123,
+ 32, 39, 41, 0, 0, 0, 184, 129, 0, 0,
+ 143, 127, 128, 144, 145, 148, 83, 0, 0, 59,
+ 0, 0, 83, 0, 0, 129, 131, 0, 0, 0,
+ 0, 0, 0, 0, 0, 59, 81, 1, 4, 0,
+ 83, 79, 100, 0, 89, 90, 125, 141, 142, 87,
+ 0, 124, 123, 0, 129, 0, 135, 186, 0, 185,
+ 184, 74, 75, 42, 0, 0, 0, 0, 26, 44,
+ 38, 0, 0, 49, 0, 0, 0, 0, 0, 0,
+ 0, 0, 146, 147, 166, 85, 0, 0, 0, 0,
+ 0, 0, 0, 78, 73, 35, 25, 27, 0, 0,
+ 98, 99, 0, 0, 13, 76, 77, 102, 0, 115,
+ 101, 0, 72, 62, 42, 93, 0, 140, 0, 0,
+ 133, 0, 0, 134, 132, 0, 0, 0, 158, 159,
+ 156, 157, 160, 161, 153, 163, 164, 165, 155, 154,
+ 162, 149, 150, 151, 152, 84, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 114, 103, 114, 129, 0, 0, 0, 0, 114,
- 0, 0, 17, 18, 11, 14, 15, 112, 118, 119,
- 0, 115, 116, 114, 0, 0, 138, 136, 137, 0,
- 0, 0, 135, 186, 125, 92, 175, 176, 173, 174,
- 177, 178, 170, 180, 181, 182, 172, 171, 179, 166,
- 167, 168, 169, 86, 0, 0, 10, 94, 95, 96,
- 0, 0, 97, 60, 0, 0, 117, 20, 91, 88,
- 0, 0, 114, 105, 0, 0, 0, 0, 16, 113,
- 21, 114, 107, 104, 0, 0, 0, 109, 114, 0,
- 22, 0, 0, 0, 114, 12, 19, 0, 0, 106,
- 114, 0, 23, 108, 0, 0, 0, 110, 111
+ 0, 0, 0, 0, 115, 103, 115, 130, 0, 0,
+ 0, 0, 115, 0, 114, 0, 17, 18, 11, 14,
+ 15, 112, 119, 120, 0, 116, 117, 115, 0, 0,
+ 139, 137, 138, 0, 0, 0, 136, 187, 126, 92,
+ 176, 177, 174, 175, 178, 179, 171, 181, 182, 183,
+ 173, 172, 180, 167, 168, 169, 170, 86, 0, 0,
+ 10, 94, 95, 96, 0, 0, 97, 59, 0, 0,
+ 118, 20, 91, 88, 0, 0, 115, 105, 0, 0,
+ 0, 0, 16, 113, 21, 115, 107, 104, 0, 0,
+ 0, 109, 115, 0, 22, 0, 0, 0, 115, 12,
+ 19, 0, 0, 106, 115, 0, 23, 108, 0, 0,
+ 0, 110, 111
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -236, -236, -236, 108, -236, -236, -236, -236, -236, -137,
- -236, -236, 0, -27, -236, 3, -43, -236, -6, 144,
- -236, -236, -236, -236, -236, -236, -236, -233, -236, -235,
- -53, -20, -99, -236, -236, -236, -23, -44, -236, -1,
- -236, 203, 56, 41, -153
+ -237, -237, -237, 136, -237, -237, -237, -237, -237, -115,
+ -237, -237, 0, -28, -237, 4, -44, -237, -6, 166,
+ -237, -237, -237, -237, -237, -237, -237, -237, -236, -237,
+ -228, -45, -19, -108, -237, -237, -237, -7, -29, -237,
+ 10, -237, 205, 72, 57, -155
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 253, 254, 255, 256,
- 54, 329, 86, 73, 74, 259, 57, 58, 87, 88,
- 59, 180, 60, 61, 62, 63, 64, 260, 261, 262,
- 89, 90, 245, 106, 91, 133, 134, 92, 93, 94,
- 162, 135, 163, 136, 137
+ 0, 49, 50, 51, 52, 53, 257, 258, 259, 260,
+ 54, 333, 87, 74, 75, 263, 57, 58, 88, 89,
+ 59, 182, 60, 61, 62, 63, 64, 65, 264, 265,
+ 266, 90, 91, 248, 107, 92, 135, 136, 93, 94,
+ 95, 164, 137, 165, 138, 139
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -876,420 +879,453 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 105, 110, 56, 114, 65, 222, 168, 294, 72,
- 296, 251, 168, 100, 98, 149, 301, 168, 112, 138,
- 115, 104, 108, 198, 252, 306, 107, 102, 103, 72,
- 307, 155, 156, 157, 158, 154, 155, 156, 157, 158,
- 265, 99, 160, 157, 158, 72, 113, 55, 160, 117,
- 55, 161, 66, 56, 178, 121, 199, 161, 119, 306,
- 200, 306, 336, 337, 179, 160, 306, 138, 202, 160,
- 309, 170, 306, 120, 161, 246, 247, 139, 161, 324,
- 124, 125, 126, 140, 171, 132, 188, 293, 331, 306,
- 172, 181, 182, 183, 184, 335, 306, 187, 72, 189,
- 306, 341, 176, 204, 202, 197, 306, 344, 195, 306,
- 196, 243, 201, 72, 248, 223, 224, 225, 226, 227,
- 228, 190, 229, 263, 264, 230, 231, 232, 274, 295,
- 297, 298, 314, 299, 304, 198, 319, 323, 325, 327,
- 328, 339, 257, 233, 234, 235, 236, 237, 238, 239,
- 343, 315, 240, 244, 244, 244, 347, 348, 116, 142,
- 143, 144, 145, 166, 167, 55, 168, 318, 242, 149,
- 150, 169, 109, 104, 104, 104, 272, 0, 192, 203,
- 0, 0, 0, 0, 0, 55, 55, 152, 153, 154,
- 155, 156, 157, 158, 0, 0, 165, 0, 0, 271,
- 0, 0, 0, 0, 0, 142, 143, 144, 145, 166,
- 167, 0, 168, 95, 97, 149, 150, 169, 0, 0,
- 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
- 0, 95, 0, 152, 153, 154, 155, 156, 157, 158,
- 0, 55, 0, 55, 0, 0, 0, 111, 0, 55,
- 0, 303, 0, 0, 0, 0, 0, 0, 118, 0,
- 55, 0, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 317, 0, 0, 0,
- 0, 0, 122, 123, 0, 0, 0, 128, 0, 0,
- 0, 0, 0, 0, 55, 55, 55, 0, 313, 164,
- 0, 55, 0, 72, 0, 0, 177, 55, 0, 0,
- 55, 0, 55, 322, 0, 0, 0, 0, 0, 0,
- 330, 55, 0, 0, 55, 0, 0, 0, 55, 0,
- 0, 55, 0, 0, 55, 55, 0, 342, 0, 0,
- 55, 55, 0, 0, 55, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 0, 0, 0, 0, 0, 0, 0, 209,
- 210, 211, 214, 0, 0, 0, 185, 0, 0, 0,
- 0, 0, 0, 250, 142, 143, 144, 145, 166, 167,
- 0, 168, 0, 0, 149, 150, 169, 0, 266, 267,
- 0, 268, 0, 0, 0, 273, 0, 275, 0, 0,
- 0, 0, 152, 153, 154, 155, 156, 157, 158, 0,
- 186, 0, 0, 0, 0, 0, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 0, 75, 0, 0, 0, 0, 76,
- 0, 300, 1, 129, 130, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 308, 0, 0,
- 12, 13, 0, 15, 67, 17, 18, 0, 68, 69,
- 0, 22, 23, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 81, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 70,
- 0, 0, 0, 0, 0, 0, 71, 0, 326, 0,
- 82, 83, 0, 0, 0, 75, 0, 96, 333, 85,
- 76, 131, 0, 1, 77, 78, 0, 0, 0, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 67, 141, 18, 0, 68,
- 69, 0, 22, 23, 24, 25, 0, 27, 0, 0,
- 142, 143, 144, 145, 146, 147, 81, 148, 34, 35,
- 149, 150, 151, 37, 38, 39, 40, 41, 42, 43,
- 70, 0, 0, 0, 0, 0, 0, 71, 152, 153,
- 154, 155, 156, 157, 158, 0, 75, 159, 96, 0,
- 85, 76, 0, 0, 1, 77, 78, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 173, 0, 15, 67, 17, 18, 0,
- 68, 69, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 142, 143, 144, 145, 146, 147, 81, 148, 174,
- 175, 149, 150, 151, 37, 38, 39, 40, 41, 42,
- 43, 70, 0, 0, 0, 0, 0, 0, 71, 152,
- 153, 154, 155, 156, 157, 158, 0, 75, 159, 96,
- 0, 85, 76, 0, 0, 1, 77, 78, 0, 0,
- 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 67, 17, 18,
- 0, 68, 69, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 142, 143, 144, 145, 146, 147, 81, 148,
- 34, 35, 149, 150, 151, 37, 38, 39, 40, 41,
- 42, 43, 70, 0, 0, 0, 0, 0, 0, 71,
- 152, 153, 154, 155, 156, 157, 158, 0, 75, 159,
- 96, 0, 85, 76, 0, 0, 1, 77, 78, 0,
- 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 67, 191,
- 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 142, 143, 144, 145, 146, 147, 81,
- 148, 34, 35, 149, 150, 151, 37, 38, 39, 40,
- 41, 42, 43, 70, 0, 0, 0, 0, 0, 0,
- 71, 152, 153, 154, 155, 156, 157, 158, 0, 75,
- 0, 96, 0, 85, 76, 0, 0, 1, 77, 78,
- 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
- 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 81, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 70, 0, 0, 0, 0, 0,
- 0, 71, 0, 0, 0, 82, 83, 0, 0, 0,
- 75, 0, 96, 127, 85, 76, 0, 0, 1, 77,
- 78, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 79, 0, 0, 0, 12, 13, 0, 80,
- 67, 17, 18, 0, 68, 69, 0, 22, 23, 24,
+ 55, 112, 106, 116, 56, 66, 225, 255, 298, 73,
+ 300, 170, 117, 101, 99, 180, 305, 114, 103, 104,
+ 256, 105, 110, 108, 140, 181, 109, 100, 201, 73,
+ 121, 311, 144, 145, 146, 147, 310, 159, 160, 170,
+ 123, 269, 151, 152, 171, 73, 115, 55, 122, 119,
+ 55, 162, 67, 140, 56, 202, 205, 162, 313, 203,
+ 154, 155, 156, 157, 158, 159, 160, 163, 249, 250,
+ 310, 172, 310, 163, 183, 162, 141, 310, 142, 162,
+ 328, 340, 341, 310, 173, 174, 134, 191, 297, 335,
+ 205, 163, 126, 127, 128, 163, 339, 184, 198, 73,
+ 310, 170, 345, 178, 151, 185, 186, 310, 348, 187,
+ 190, 310, 192, 199, 207, 73, 200, 310, 204, 251,
+ 310, 170, 167, 193, 156, 157, 158, 159, 160, 246,
+ 268, 144, 145, 146, 147, 168, 169, 267, 170, 278,
+ 299, 151, 152, 171, 261, 157, 158, 159, 160, 301,
+ 201, 302, 303, 318, 308, 323, 247, 247, 247, 154,
+ 155, 156, 157, 158, 159, 160, 329, 55, 327, 331,
+ 332, 245, 319, 343, 347, 105, 105, 105, 351, 352,
+ 144, 145, 146, 147, 168, 169, 118, 170, 55, 55,
+ 151, 152, 171, 322, 111, 276, 195, 206, 0, 0,
+ 0, 0, 275, 0, 0, 0, 0, 0, 154, 155,
+ 156, 157, 158, 159, 160, 96, 98, 0, 0, 0,
+ 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
+ 0, 0, 0, 96, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 0, 55, 0, 0, 113,
+ 0, 0, 55, 0, 0, 307, 0, 0, 0, 0,
+ 120, 0, 0, 0, 55, 0, 0, 55, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+ 0, 0, 0, 0, 0, 124, 125, 0, 0, 0,
+ 130, 0, 0, 0, 0, 0, 0, 0, 55, 55,
+ 55, 0, 166, 317, 0, 55, 0, 73, 0, 179,
+ 0, 55, 0, 0, 55, 0, 55, 0, 326, 0,
+ 0, 0, 0, 0, 334, 55, 0, 0, 55, 0,
+ 0, 0, 55, 0, 0, 55, 0, 0, 55, 55,
+ 0, 346, 0, 0, 55, 55, 0, 0, 55, 208,
+ 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
+ 219, 220, 221, 222, 223, 224, 0, 0, 0, 0,
+ 0, 0, 0, 212, 213, 214, 217, 0, 0, 0,
+ 0, 188, 0, 0, 0, 0, 0, 253, 254, 144,
+ 145, 146, 147, 168, 169, 0, 170, 0, 0, 151,
+ 152, 171, 0, 270, 271, 0, 272, 0, 0, 0,
+ 277, 0, 279, 0, 0, 0, 0, 154, 155, 156,
+ 157, 158, 159, 160, 0, 189, 0, 0, 0, 0,
+ 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, 0, 0,
+ 76, 0, 0, 0, 0, 77, 304, 0, 1, 131,
+ 132, 0, 0, 0, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 312, 0, 0, 12, 13, 0, 15,
+ 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
- 31, 81, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 70, 0, 0, 0, 0,
- 0, 0, 71, 0, 0, 0, 82, 83, 0, 75,
- 0, 0, 0, 84, 76, 85, 0, 1, 77, 78,
- 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
- 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 81, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 70, 0, 0, 0, 0, 0,
- 0, 71, 0, 0, 0, 82, 83, 0, 75, 0,
- 0, 0, 96, 76, 85, 0, 1, 77, 78, 0,
- 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 67, 17,
- 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 81,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 70, 0, 0, 0, 0, 0, 0,
- 71, 0, 0, 0, 82, 83, 0, 75, 0, 0,
- 0, 84, 76, 85, 0, 1, 77, 78, 0, 0,
- 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 67, 17, 18,
- 0, 68, 69, 0, 22, 23, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 0, 81, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 70, 0, 0, 0, 0, 0, 0, 71,
- 0, 0, 0, 82, 83, 0, 75, 0, 0, 0,
- 96, 76, 85, 0, 1, 77, 78, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 67, 17, 18, 0,
- 68, 69, 0, 22, 23, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 81, 33, 34,
- 35, 0, 0, 0, 37, 38, 39, 40, 41, 42,
- 43, 70, 0, 0, 0, 0, 0, 0, 71, 0,
- 0, 0, 82, 83, 0, 75, 0, 0, 0, 96,
- 76, 85, 0, 1, 77, 78, 0, 0, 0, 2,
+ 31, 82, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 71, 0, 0, 0, 0,
+ 0, 0, 72, 0, 330, 0, 83, 84, 0, 0,
+ 0, 76, 0, 97, 337, 86, 77, 133, 0, 1,
+ 78, 79, 0, 0, 0, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 68, 143, 18, 0, 69, 70, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 144, 145, 146, 147,
+ 148, 149, 82, 150, 34, 35, 151, 152, 153, 37,
+ 38, 39, 40, 41, 42, 43, 71, 0, 0, 0,
+ 0, 0, 0, 72, 154, 155, 156, 157, 158, 159,
+ 160, 0, 76, 161, 97, 0, 86, 77, 0, 0,
+ 1, 78, 79, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 175,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 144, 145, 146,
+ 147, 148, 149, 82, 150, 176, 177, 151, 152, 153,
+ 37, 38, 39, 40, 41, 42, 43, 71, 0, 0,
+ 0, 0, 0, 0, 72, 154, 155, 156, 157, 158,
+ 159, 160, 0, 76, 161, 97, 0, 86, 77, 0,
+ 0, 1, 78, 79, 0, 0, 0, 2, 3, 4,
+ 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
+ 22, 0, 24, 25, 0, 27, 0, 0, 144, 145,
+ 146, 147, 148, 149, 82, 150, 34, 35, 151, 152,
+ 153, 37, 38, 39, 40, 41, 42, 43, 71, 0,
+ 0, 0, 0, 0, 0, 72, 154, 155, 156, 157,
+ 158, 159, 160, 0, 76, 161, 97, 0, 86, 77,
+ 0, 0, 1, 78, 79, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 68, 194, 18, 0, 69, 70,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 144,
+ 145, 146, 147, 148, 149, 82, 150, 34, 35, 151,
+ 152, 153, 37, 38, 39, 40, 41, 42, 43, 71,
+ 0, 0, 0, 0, 0, 0, 72, 154, 155, 156,
+ 157, 158, 159, 160, 0, 76, 0, 97, 0, 86,
+ 77, 0, 0, 1, 78, 79, 0, 0, 0, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 67, 17, 18, 0, 68,
- 69, 0, 22, 23, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 81, 0, 34, 35,
- 0, 0, 0, 37, 38, 39, 40, 41, 42, 43,
- 70, 0, 0, 0, 0, 0, 0, 71, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 96, 0,
- 85, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 26, 27,
+ 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
+ 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 30, 31, 82, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 71, 0, 0, 0, 0, 0, 0, 72, 0, 0,
+ 0, 83, 84, 0, 0, 0, 76, 0, 97, 129,
+ 86, 77, 0, 0, 1, 78, 79, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 80, 0,
+ 0, 0, 12, 13, 0, 81, 68, 17, 18, 0,
+ 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 82, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 71, 0, 0, 0, 0, 0, 0, 72, 0,
+ 0, 0, 83, 84, 0, 76, 0, 0, 0, 85,
+ 77, 86, 0, 1, 78, 79, 0, 0, 0, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
+ 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 30, 31, 82, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 71, 0, 0, 0, 0, 0, 0, 72, 0, 0,
+ 0, 83, 84, 0, 76, 0, 0, 0, 97, 77,
+ 86, 0, 1, 78, 79, 0, 0, 0, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 82, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
+ 0, 0, 0, 0, 0, 0, 72, 0, 0, 0,
+ 83, 84, 0, 76, 0, 0, 0, 85, 77, 86,
+ 0, 1, 78, 79, 0, 0, 0, 2, 3, 4,
+ 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
+ 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 0, 0, 82, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 71, 0,
+ 0, 0, 0, 0, 0, 72, 0, 0, 0, 83,
+ 84, 0, 76, 0, 0, 0, 97, 77, 86, 0,
+ 1, 78, 79, 0, 0, 0, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 82, 33, 34, 35, 0, 0, 0,
+ 37, 38, 39, 40, 41, 42, 43, 71, 0, 0,
+ 0, 0, 0, 0, 72, 0, 0, 0, 83, 84,
+ 0, 76, 0, 0, 0, 97, 77, 86, 0, 1,
+ 78, 79, 0, 0, 0, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 82, 0, 34, 35, 0, 0, 0, 37,
+ 38, 39, 40, 41, 42, 43, 71, 0, 0, 0,
+ 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 97, 0, 86, 2, 3, 4,
+ 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 0, 1, 0, 0, 47, 0, 0, 2, 3,
+ 4, 5, 6, 314, 48, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 0, 0, 315, 1, 0, 47, 0, 0, 0,
+ 2, 3, 4, 5, 6, 262, 0, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 0, 0, 1, 0, 309, 47, 0,
+ 0, 2, 3, 4, 5, 6, 0, 262, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 310, 48, 7,
+ 42, 43, 44, 45, 0, 0, 0, 320, 0, 47,
+ 0, 0, 0, 1, 0, 0, 324, 0, 262, 2,
+ 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
+ 2, 3, 4, 5, 6, 0, 262, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 0, 0, 336, 1, 0, 47, 0,
+ 0, 0, 2, 3, 4, 5, 6, 262, 0, 7,
8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 311, 1, 0,
- 47, 0, 0, 0, 2, 3, 4, 5, 6, 258,
+ 41, 42, 43, 44, 45, 0, 0, 342, 1, 0,
+ 47, 0, 0, 0, 2, 3, 4, 5, 6, 262,
0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
- 0, 305, 47, 0, 0, 2, 3, 4, 5, 6,
- 0, 258, 7, 8, 9, 10, 11, 12, 13, 0,
+ 349, 0, 47, 0, 0, 2, 3, 4, 5, 6,
+ 0, 262, 7, 8, 9, 10, 11, 12, 13, 0,
15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 0, 316, 0, 47, 0, 0, 0, 1, 0, 0,
- 320, 0, 258, 2, 3, 4, 5, 6, 0, 0,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
- 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
- 258, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 332,
- 1, 0, 47, 0, 0, 0, 2, 3, 4, 5,
- 6, 258, 0, 7, 8, 9, 10, 11, 12, 13,
+ 1, 350, 0, 47, 0, 0, 2, 3, 4, 5,
+ 6, 0, 262, 7, 8, 9, 10, 11, 12, 13,
0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 338, 1, 0, 47, 0, 0, 0, 2, 3,
- 4, 5, 6, 258, 0, 7, 8, 9, 10, 11,
+ 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
+ 5, 6, 0, 244, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 1, 0, 0, 47, 0, 0, 2, 3,
+ 4, 5, 6, 0, 262, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 1, 345, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 258, 7, 8, 9, 10,
+ 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
+ 3, 4, 5, 6, 0, 316, 7, 8, 9, 10,
11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 346, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 258, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
+ 2, 3, 4, 5, 6, 0, 325, 7, 8, 9,
+ 10, 0, 12, 13, 0, 15, 16, 17, 18, 19,
+ 69, 21, 0, 22, 0, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 1, 0, 0, 47, 0,
- 0, 2, 3, 4, 5, 6, 0, 241, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 258, 7,
- 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
- 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
- 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 1, 0, 0,
- 47, 0, 0, 2, 3, 4, 5, 6, 0, 312,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 1, 0,
- 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
- 321, 7, 8, 9, 10, 0, 12, 13, 0, 15,
- 16, 17, 18, 19, 68, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 70, 45, 1, 269, 270,
- 0, 0, 47, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 67,
- 17, 18, 0, 68, 69, 0, 22, 23, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 70, 0, 1, 0, 0, 0,
- 0, 71, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 67, 17,
- 18, 0, 68, 69, 0, 22, 23, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 70, 142, 143, 144, 145, 166, 167,
- 71, 168, 0, 0, 149, 150, 169, 142, 143, 144,
- 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
- 0, 0, 152, 153, 154, 155, 156, 157, 158, 0,
- 0, 193, 0, 194, 0, 152, 153, 154, 155, 156,
- 157, 158, 0, 0, 0, 0, 194, 142, 143, 144,
- 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
- 142, 143, 144, 145, 166, 167, 0, 168, 0, 0,
- 149, 150, 169, 0, 0, 152, 153, 154, 155, 156,
- 157, 158, 0, 249, 0, 0, 0, 0, 152, 153,
- 154, 155, 156, 157, 158, 0, 302, 142, 143, 144,
- 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
- 142, 143, 144, 145, 166, 167, 0, 168, 0, 0,
- 149, 150, 169, 0, 0, 152, 153, 154, 155, 156,
- 157, 158, 0, 334, 0, 0, 0, 0, 152, 153,
- 154, 155, 156, 157, 158, 0, 340, 142, 143, 144,
- 145, 166, 167, 0, 168, 0, 0, 149, 150, 169,
- 223, 224, 225, 226, 227, 228, 0, 229, 0, 0,
- 230, 231, 232, 0, 0, 152, 153, 154, 155, 156,
- 157, 158, 0, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 142, 143, 144, 145, 0,
- 0, 0, 168, 0, 0, 149, 150, 169, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 152, 153, 154, 155, 156, 157, 158
+ 43, 71, 45, 1, 273, 274, 0, 0, 47, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
+ 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 71, 0, 1, 0, 0, 0, 0, 72, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
+ 144, 145, 146, 147, 168, 169, 72, 170, 0, 0,
+ 151, 152, 171, 144, 145, 146, 147, 168, 169, 0,
+ 170, 0, 0, 151, 152, 171, 0, 0, 154, 155,
+ 156, 157, 158, 159, 160, 0, 0, 196, 0, 197,
+ 0, 154, 155, 156, 157, 158, 159, 160, 0, 0,
+ 0, 0, 197, 226, 227, 228, 229, 230, 231, 0,
+ 232, 0, 0, 233, 234, 235, 144, 145, 146, 147,
+ 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
+ 0, 236, 237, 238, 239, 240, 241, 242, 0, 0,
+ 243, 0, 0, 0, 154, 155, 156, 157, 158, 159,
+ 160, 0, 252, 144, 145, 146, 147, 168, 169, 0,
+ 170, 0, 0, 151, 152, 171, 144, 145, 146, 147,
+ 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
+ 0, 154, 155, 156, 157, 158, 159, 160, 0, 306,
+ 0, 0, 0, 0, 154, 155, 156, 157, 158, 159,
+ 160, 0, 338, 144, 145, 146, 147, 168, 169, 0,
+ 170, 0, 0, 151, 152, 171, 144, 145, 146, 147,
+ 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
+ 0, 154, 155, 156, 157, 158, 159, 160, 0, 344,
+ 0, 0, 0, 0, 154, 155, 156, 157, 158, 159,
+ 160, 226, 227, 228, 229, 230, 231, 0, 232, 0,
+ 0, 233, 234, 235, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 236,
+ 237, 238, 239, 240, 241, 242
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 29, 0, 47, 39, 159, 57, 241, 9,
- 243, 73, 57, 19, 14, 60, 249, 57, 45, 88,
- 0, 21, 28, 92, 86, 260, 26, 44, 45, 29,
- 263, 81, 82, 83, 84, 80, 81, 82, 83, 84,
- 193, 39, 95, 83, 84, 45, 46, 47, 101, 55,
- 50, 95, 86, 50, 42, 87, 87, 101, 86, 294,
- 91, 296, 86, 87, 52, 118, 301, 88, 87, 122,
- 89, 98, 307, 86, 118, 174, 175, 86, 122, 312,
- 81, 82, 83, 86, 86, 85, 113, 240, 321, 324,
- 86, 86, 86, 86, 86, 328, 331, 86, 98, 86,
- 335, 334, 102, 34, 87, 91, 341, 340, 92, 344,
- 92, 86, 91, 113, 52, 50, 51, 52, 53, 54,
- 55, 121, 57, 86, 34, 60, 61, 62, 89, 24,
- 86, 86, 23, 86, 86, 92, 86, 86, 42, 86,
- 86, 86, 185, 78, 79, 80, 81, 82, 83, 84,
- 86, 42, 87, 173, 174, 175, 86, 86, 50, 50,
- 51, 52, 53, 54, 55, 165, 57, 304, 165, 60,
- 61, 62, 28, 173, 174, 175, 199, -1, 122, 138,
- -1, -1, -1, -1, -1, 185, 186, 78, 79, 80,
- 81, 82, 83, 84, -1, -1, 41, -1, -1, 199,
- -1, -1, -1, -1, -1, 50, 51, 52, 53, 54,
- 55, -1, 57, 10, 11, 60, 61, 62, -1, -1,
- -1, -1, 19, -1, -1, -1, -1, -1, -1, -1,
- -1, 28, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 241, -1, 243, -1, -1, -1, 44, -1, 249,
- -1, 251, -1, -1, -1, -1, -1, -1, 55, -1,
- 260, -1, -1, 263, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 303, -1, -1, -1,
- -1, -1, 79, 80, -1, -1, -1, 84, -1, -1,
- -1, -1, -1, -1, 294, 295, 296, -1, 295, 96,
- -1, 301, -1, 303, -1, -1, 103, 307, -1, -1,
- 310, -1, 312, 310, -1, -1, -1, -1, -1, -1,
- 320, 321, -1, -1, 324, -1, -1, -1, 328, -1,
- -1, 331, -1, -1, 334, 335, -1, 337, -1, -1,
- 340, 341, -1, -1, 344, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, -1, -1, -1, -1, -1, -1, -1, 166,
- 167, 168, 169, -1, -1, -1, 42, -1, -1, -1,
- -1, -1, -1, 180, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, 195, 196,
- -1, 198, -1, -1, -1, 202, -1, 204, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, -1, -1, -1, -1, -1, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, -1, 5, -1, -1, -1, -1, 10,
- -1, 248, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, 264, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, -1, -1, -1, -1, -1, 77, -1, 315, -1,
- 81, 82, -1, -1, -1, 5, -1, 88, 325, 90,
- 10, 92, -1, 13, 14, 15, -1, -1, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, -1, -1, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 5, 87, 88, -1,
- 90, 10, -1, -1, 13, 14, 15, -1, -1, -1,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
- -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, -1, -1, -1, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, 5, 87, 88,
- -1, 90, 10, -1, -1, 13, 14, 15, -1, -1,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- -1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 5, 87,
- 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
- -1, 88, -1, 90, 10, -1, -1, 13, 14, 15,
- -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, -1, -1, -1,
- 5, -1, 88, 89, 90, 10, -1, -1, 13, 14,
+ 0, 29, 21, 47, 0, 39, 161, 73, 244, 9,
+ 246, 57, 0, 19, 14, 42, 252, 45, 44, 45,
+ 86, 21, 28, 23, 88, 52, 26, 39, 92, 29,
+ 86, 267, 50, 51, 52, 53, 264, 83, 84, 57,
+ 87, 196, 60, 61, 62, 45, 46, 47, 86, 55,
+ 50, 96, 86, 88, 50, 87, 87, 102, 89, 91,
+ 78, 79, 80, 81, 82, 83, 84, 96, 176, 177,
+ 298, 99, 300, 102, 41, 120, 86, 305, 86, 124,
+ 316, 86, 87, 311, 86, 86, 86, 115, 243, 325,
+ 87, 120, 82, 83, 84, 124, 332, 86, 92, 99,
+ 328, 57, 338, 103, 60, 86, 86, 335, 344, 86,
+ 86, 339, 86, 92, 34, 115, 91, 345, 91, 52,
+ 348, 57, 41, 123, 80, 81, 82, 83, 84, 86,
+ 34, 50, 51, 52, 53, 54, 55, 86, 57, 89,
+ 24, 60, 61, 62, 188, 81, 82, 83, 84, 86,
+ 92, 86, 86, 23, 86, 86, 175, 176, 177, 78,
+ 79, 80, 81, 82, 83, 84, 42, 167, 86, 86,
+ 86, 167, 42, 86, 86, 175, 176, 177, 86, 86,
+ 50, 51, 52, 53, 54, 55, 50, 57, 188, 189,
+ 60, 61, 62, 308, 28, 202, 124, 140, -1, -1,
+ -1, -1, 202, -1, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, 19, -1, -1, -1, -1, -1,
+ -1, -1, -1, 28, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 244, -1, 246, -1, -1, 44,
+ -1, -1, 252, -1, -1, 255, -1, -1, -1, -1,
+ 55, -1, -1, -1, 264, -1, -1, 267, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 307,
+ -1, -1, -1, -1, -1, 80, 81, -1, -1, -1,
+ 85, -1, -1, -1, -1, -1, -1, -1, 298, 299,
+ 300, -1, 97, 299, -1, 305, -1, 307, -1, 104,
+ -1, 311, -1, -1, 314, -1, 316, -1, 314, -1,
+ -1, -1, -1, -1, 324, 325, -1, -1, 328, -1,
+ -1, -1, 332, -1, -1, 335, -1, -1, 338, 339,
+ -1, 341, -1, -1, 344, 345, -1, -1, 348, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, -1, -1, -1, -1,
+ -1, -1, -1, 168, 169, 170, 171, -1, -1, -1,
+ -1, 42, -1, -1, -1, -1, -1, 182, 183, 50,
+ 51, 52, 53, 54, 55, -1, 57, -1, -1, 60,
+ 61, 62, -1, 198, 199, -1, 201, -1, -1, -1,
+ 205, -1, 207, -1, -1, -1, -1, 78, 79, 80,
+ 81, 82, 83, 84, -1, 86, -1, -1, -1, -1,
+ -1, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, -1, -1,
+ 5, -1, -1, -1, -1, 10, 251, -1, 13, 14,
15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, 43, 44,
+ -1, -1, 27, 268, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
- -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
- -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
- -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
- -1, 88, 10, 90, -1, 13, 14, 15, -1, -1,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, -1, -1, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
- 88, 10, 90, -1, 13, 14, 15, -1, -1, -1,
+ -1, -1, 77, -1, 319, -1, 81, 82, -1, -1,
+ -1, 5, -1, 88, 329, 90, 10, 92, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
+ 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, 5, 87, 88, -1, 90, 10, -1, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, 5, 87, 88, -1, 90, 10, -1,
+ -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, -1, 44, 45, -1, 47, -1, -1, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, 5, 87, 88, -1, 90, 10,
+ -1, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, -1, 44, 45, -1, 47, -1, -1, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
+ 81, 82, 83, 84, -1, 5, -1, 88, -1, 90,
+ 10, -1, -1, 13, 14, 15, -1, -1, -1, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
+ -1, 81, 82, -1, -1, -1, 5, -1, 88, 89,
+ 90, 10, -1, -1, 13, 14, 15, -1, -1, -1,
19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
-1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, -1, -1, 56, 57, 58,
- 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
+ 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
+ -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
-1, -1, 81, 82, -1, 5, -1, -1, -1, 88,
10, 90, -1, 13, 14, 15, -1, -1, -1, 19,
20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
-1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, -1, -1, 56, -1, 58, 59,
- -1, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, -1, -1, -1, -1, 13, -1, -1, 88, -1,
- 90, 19, 20, 21, 22, 23, -1, -1, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, 46, 47,
+ -1, 81, 82, -1, 5, -1, -1, -1, 88, 10,
+ 90, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
+ 81, 82, -1, 5, -1, -1, -1, 88, 10, 90,
+ -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, -1, -1, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
+ 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, -1, -1, 56, 57, 58, 59, -1, -1, -1,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
+ -1, -1, 56, -1, 58, 59, -1, -1, -1, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
+ -1, 13, -1, -1, 88, -1, 90, 19, 20, 21,
+ 22, 23, -1, -1, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, 46, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, -1, 13, -1, -1, 77, -1, -1, 19, 20,
+ 21, 22, 23, 24, 86, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 74, 13, -1, 77, -1, -1, -1,
+ 19, 20, 21, 22, 23, 86, -1, 26, 27, 28,
+ 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 13, -1, 76, 77, -1,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, -1, 13, -1, -1, 77,
- -1, -1, 19, 20, 21, 22, 23, 24, 86, 26,
+ 68, 69, 70, 71, -1, -1, -1, 75, -1, 77,
+ -1, -1, -1, 13, -1, -1, 16, -1, 86, 19,
+ 20, 21, 22, 23, -1, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
+ 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
+ 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, -1, -1, 74, 13, -1, 77, -1,
+ -1, -1, 19, 20, 21, 22, 23, 86, -1, 26,
27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
@@ -1301,109 +1337,78 @@ static const yytype_int16 yycheck[] =
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- -1, 76, 77, -1, -1, 19, 20, 21, 22, 23,
+ 75, -1, 77, -1, -1, 19, 20, 21, 22, 23,
-1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- -1, 75, -1, 77, -1, -1, -1, 13, -1, -1,
- 16, -1, 86, 19, 20, 21, 22, 23, -1, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
- -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
- 13, -1, 77, -1, -1, -1, 19, 20, 21, 22,
- 23, 86, -1, 26, 27, 28, 29, 30, 31, 32,
+ 13, 75, -1, 77, -1, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 74, 13, -1, 77, -1, -1, -1, 19, 20,
- 21, 22, 23, 86, -1, 26, 27, 28, 29, 30,
+ -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
+ 22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, 13, -1, -1, 77, -1, -1, 19, 20,
+ 21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, 75, -1, 77, -1, -1, 19,
+ 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, 75, -1, 77, -1, -1,
+ 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
- 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
+ 29, -1, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, -1, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, -1, 77, -1,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, -1,
- 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, -1,
- -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 13, 14, 15,
- -1, -1, 77, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, 13, -1, -1, -1,
- -1, 77, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 50, 51, 52, 53, 54, 55,
- 77, 57, -1, -1, 60, 61, 62, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, 87, -1, 89, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, -1, 89, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 50, 51, 52, 53, -1,
- -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
+ 69, 70, 71, 13, 14, 15, -1, -1, 77, 19,
+ 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
+ -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, 13, -1, -1, -1, -1, 77, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 50, 51, 52, 53, 54, 55, 77, 57, -1, -1,
+ 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, -1, -1, 87, -1, 89,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, 89, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ 87, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1416,35 +1421,36 @@ static const yytype_uint8 yystos[] =
54, 55, 56, 57, 58, 59, 62, 63, 64, 65,
66, 67, 68, 69, 70, 71, 72, 77, 86, 94,
95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
- 115, 116, 117, 118, 119, 39, 86, 35, 39, 40,
- 70, 77, 105, 106, 107, 5, 10, 14, 15, 27,
- 34, 56, 81, 82, 88, 90, 105, 111, 112, 123,
- 124, 127, 130, 131, 132, 134, 88, 134, 105, 39,
- 111, 134, 44, 45, 105, 124, 126, 105, 111, 112,
- 106, 134, 106, 105, 109, 0, 96, 111, 134, 86,
- 86, 87, 134, 134, 132, 132, 132, 89, 134, 14,
- 15, 92, 105, 128, 129, 134, 136, 137, 88, 86,
- 86, 36, 50, 51, 52, 53, 54, 55, 57, 60,
- 61, 62, 78, 79, 80, 81, 82, 83, 84, 87,
- 123, 130, 133, 135, 134, 41, 54, 55, 57, 62,
- 106, 86, 86, 32, 58, 59, 105, 134, 42, 52,
- 114, 86, 86, 86, 86, 42, 86, 86, 106, 86,
- 105, 36, 135, 87, 89, 92, 92, 91, 92, 87,
- 91, 91, 87, 136, 34, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 137, 50, 51, 52, 53, 54, 55, 57,
- 60, 61, 62, 78, 79, 80, 81, 82, 83, 84,
- 87, 86, 108, 86, 124, 125, 125, 125, 52, 86,
- 134, 73, 86, 99, 100, 101, 102, 109, 86, 108,
- 120, 121, 122, 86, 34, 137, 134, 134, 134, 14,
- 15, 105, 129, 134, 89, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 137, 120, 24, 120, 86, 86, 86,
- 134, 120, 86, 105, 86, 76, 122, 120, 134, 89,
- 24, 74, 86, 108, 23, 42, 75, 106, 102, 86,
- 16, 86, 108, 86, 120, 42, 134, 86, 86, 104,
- 105, 120, 74, 134, 86, 120, 86, 87, 74, 86,
- 86, 120, 105, 86, 120, 75, 75, 86, 86
+ 115, 116, 117, 118, 119, 120, 39, 86, 35, 39,
+ 40, 70, 77, 105, 106, 107, 5, 10, 14, 15,
+ 27, 34, 56, 81, 82, 88, 90, 105, 111, 112,
+ 124, 125, 128, 131, 132, 133, 135, 88, 135, 105,
+ 39, 111, 135, 44, 45, 105, 125, 127, 105, 105,
+ 111, 112, 106, 135, 106, 105, 109, 0, 96, 111,
+ 135, 86, 86, 87, 135, 135, 133, 133, 133, 89,
+ 135, 14, 15, 92, 105, 129, 130, 135, 137, 138,
+ 88, 86, 86, 36, 50, 51, 52, 53, 54, 55,
+ 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
+ 84, 87, 124, 131, 134, 136, 135, 41, 54, 55,
+ 57, 62, 106, 86, 86, 32, 58, 59, 105, 135,
+ 42, 52, 114, 41, 86, 86, 86, 86, 42, 86,
+ 86, 106, 86, 105, 36, 136, 87, 89, 92, 92,
+ 91, 92, 87, 91, 91, 87, 137, 34, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 138, 50, 51, 52, 53,
+ 54, 55, 57, 60, 61, 62, 78, 79, 80, 81,
+ 82, 83, 84, 87, 86, 108, 86, 125, 126, 126,
+ 126, 52, 86, 135, 135, 73, 86, 99, 100, 101,
+ 102, 109, 86, 108, 121, 122, 123, 86, 34, 138,
+ 135, 135, 135, 14, 15, 105, 130, 135, 89, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 138, 121, 24,
+ 121, 86, 86, 86, 135, 121, 86, 105, 86, 76,
+ 123, 121, 135, 89, 24, 74, 86, 108, 23, 42,
+ 75, 106, 102, 86, 16, 86, 108, 86, 121, 42,
+ 135, 86, 86, 104, 105, 121, 74, 135, 86, 121,
+ 86, 87, 74, 86, 86, 121, 105, 86, 121, 75,
+ 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1455,20 +1461,20 @@ static const yytype_uint8 yyr1[] =
103, 104, 104, 104, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 106, 106, 107, 107, 108, 108, 108, 108, 108, 109,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 106,
+ 106, 107, 107, 108, 108, 108, 108, 108, 108, 109,
109, 109, 110, 110, 110, 110, 110, 110, 110, 110,
110, 110, 111, 111, 111, 111, 111, 111, 111, 112,
112, 112, 112, 112, 113, 113, 113, 113, 114, 114,
115, 115, 115, 116, 116, 117, 117, 117, 117, 118,
- 118, 118, 119, 119, 120, 120, 121, 121, 122, 122,
- 123, 123, 123, 123, 123, 123, 123, 123, 124, 125,
- 126, 127, 127, 127, 128, 128, 129, 129, 129, 130,
- 131, 131, 132, 132, 132, 133, 133, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 135, 135, 135, 135, 135,
+ 118, 118, 119, 119, 120, 121, 121, 122, 122, 123,
+ 123, 124, 124, 124, 124, 124, 124, 124, 124, 125,
+ 126, 127, 128, 128, 128, 129, 129, 130, 130, 130,
+ 131, 132, 132, 133, 133, 133, 134, 134, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 136, 136, 137, 137
+ 135, 135, 135, 135, 135, 135, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 137, 137, 138, 138
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1479,20 +1485,20 @@ static const yytype_int8 yyr2[] =
5, 0, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
2, 2, 0, 1, 3, 2, 4, 2, 5, 2,
2, 5, 4, 3, 5, 5, 5, 5, 1, 1,
3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
- 11, 12, 4, 6, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 2, 4, 1, 1, 1, 1,
- 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,
- 2, 2, 1, 1, 1, 1, 1, 1, 3, 3,
+ 11, 12, 4, 6, 4, 0, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 2, 4, 1, 1, 1,
+ 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
+ 3, 2, 2, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 0, 1, 1, 3
+ 3, 3, 3, 3, 0, 1, 1, 3
};
@@ -1766,49 +1772,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1770 "engines/director/lingo/lingo-gr.cpp"
+#line 1776 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1776 "engines/director/lingo/lingo-gr.cpp"
+#line 1782 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1782 "engines/director/lingo/lingo-gr.cpp"
+#line 1788 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1788 "engines/director/lingo/lingo-gr.cpp"
+#line 1794 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1794 "engines/director/lingo/lingo-gr.cpp"
+#line 1800 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1800 "engines/director/lingo/lingo-gr.cpp"
+#line 1806 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1806 "engines/director/lingo/lingo-gr.cpp"
+#line 1812 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1812 "engines/director/lingo/lingo-gr.cpp"
+#line 1818 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2076,7 +2082,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2080 "engines/director/lingo/lingo-gr.cpp"
+#line 2086 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2087,7 +2093,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2091 "engines/director/lingo/lingo-gr.cpp"
+#line 2097 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2097,37 +2103,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2101 "engines/director/lingo/lingo-gr.cpp"
+#line 2107 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2107 "engines/director/lingo/lingo-gr.cpp"
+#line 2113 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2113 "engines/director/lingo/lingo-gr.cpp"
+#line 2119 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2119 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2125 "engines/director/lingo/lingo-gr.cpp"
+#line 2131 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2131 "engines/director/lingo/lingo-gr.cpp"
+#line 2137 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2138,7 +2144,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2148 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2148,13 +2154,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2152 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
+#line 2164 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2163,245 +2169,239 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2167 "engines/director/lingo/lingo-gr.cpp"
+#line 2173 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2174 "engines/director/lingo/lingo-gr.cpp"
+#line 2180 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2180 "engines/director/lingo/lingo-gr.cpp"
+#line 2186 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2192 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2192 "engines/director/lingo/lingo-gr.cpp"
+#line 2198 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2204 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2204 "engines/director/lingo/lingo-gr.cpp"
+#line 2210 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2210 "engines/director/lingo/lingo-gr.cpp"
+#line 2216 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2216 "engines/director/lingo/lingo-gr.cpp"
+#line 2222 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2222 "engines/director/lingo/lingo-gr.cpp"
+#line 2228 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2228 "engines/director/lingo/lingo-gr.cpp"
+#line 2234 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2234 "engines/director/lingo/lingo-gr.cpp"
+#line 2240 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2240 "engines/director/lingo/lingo-gr.cpp"
+#line 2246 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2246 "engines/director/lingo/lingo-gr.cpp"
+#line 2252 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2252 "engines/director/lingo/lingo-gr.cpp"
+#line 2258 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2258 "engines/director/lingo/lingo-gr.cpp"
+#line 2264 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2270 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 2276 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2282 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2282 "engines/director/lingo/lingo-gr.cpp"
+#line 2288 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2294 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2294 "engines/director/lingo/lingo-gr.cpp"
+#line 2300 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2300 "engines/director/lingo/lingo-gr.cpp"
+#line 2306 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2306 "engines/director/lingo/lingo-gr.cpp"
+#line 2312 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2312 "engines/director/lingo/lingo-gr.cpp"
+#line 2318 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2318 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2324 "engines/director/lingo/lingo-gr.cpp"
+#line 2330 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2330 "engines/director/lingo/lingo-gr.cpp"
+#line 2336 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2336 "engines/director/lingo/lingo-gr.cpp"
+#line 2342 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2348 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2348 "engines/director/lingo/lingo-gr.cpp"
+#line 2354 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2354 "engines/director/lingo/lingo-gr.cpp"
+#line 2360 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2360 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 54: /* ID: tWHEN */
-#line 334 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("when"); }
#line 2366 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tWHILE */
+ case 54: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
#line 2372 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tWINDOW */
+ case 55: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
#line 2378 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tWITH */
+ case 56: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
#line 2384 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tWITHIN */
+ case 57: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
#line 2390 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tWORD */
+ case 58: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
#line 2396 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* idlist: %empty */
+ case 59: /* idlist: %empty */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
#line 2402 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* nonemptyidlist: ID */
+ case 61: /* nonemptyidlist: ID */
#line 346 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
@@ -2410,7 +2410,7 @@ yyreduce:
#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* nonemptyidlist: nonemptyidlist ',' ID */
+ case 62: /* nonemptyidlist: nonemptyidlist ',' ID */
#line 350 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
@@ -2419,67 +2419,67 @@ yyreduce:
break;
case 72: /* proc: ID cmdargs '\n' */
-#line 372 "engines/director/lingo/lingo-gr.y"
+#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
#line 2425 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: tPUT cmdargs '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
#line 2431 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: tGO cmdargs '\n' */
-#line 374 "engines/director/lingo/lingo-gr.y"
+#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
#line 2437 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* proc: tGO frameargs '\n' */
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
#line 2443 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* proc: tPLAY cmdargs '\n' */
-#line 376 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
#line 2449 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* proc: tPLAY frameargs '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
#line 2455 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* proc: tNEXT tREPEAT '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* proc: tEXIT tREPEAT '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
#line 2467 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* proc: tEXIT '\n' */
-#line 380 "engines/director/lingo/lingo-gr.y"
+#line 381 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
#line 2473 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* proc: tASSERTERROR stmtoneliner */
-#line 381 "engines/director/lingo/lingo-gr.y"
+#line 382 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
#line 2479 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* cmdargs: %empty */
-#line 384 "engines/director/lingo/lingo-gr.y"
+#line 385 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
@@ -2487,7 +2487,7 @@ yyreduce:
break;
case 83: /* cmdargs: expr */
-#line 387 "engines/director/lingo/lingo-gr.y"
+#line 388 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
@@ -2497,7 +2497,7 @@ yyreduce:
break;
case 84: /* cmdargs: expr ',' nonemptyexprlist */
-#line 392 "engines/director/lingo/lingo-gr.y"
+#line 393 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
@@ -2506,7 +2506,7 @@ yyreduce:
break;
case 85: /* cmdargs: expr expr_nounarymath */
-#line 396 "engines/director/lingo/lingo-gr.y"
+#line 397 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
@@ -2517,7 +2517,7 @@ yyreduce:
break;
case 86: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 402 "engines/director/lingo/lingo-gr.y"
+#line 403 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
@@ -2527,7 +2527,7 @@ yyreduce:
break;
case 87: /* cmdargs: '(' ')' */
-#line 407 "engines/director/lingo/lingo-gr.y"
+#line 408 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
@@ -2535,7 +2535,7 @@ yyreduce:
break;
case 88: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 410 "engines/director/lingo/lingo-gr.y"
+#line 411 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
@@ -2544,7 +2544,7 @@ yyreduce:
break;
case 89: /* frameargs: tFRAME expr */
-#line 420 "engines/director/lingo/lingo-gr.y"
+#line 421 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
@@ -2554,7 +2554,7 @@ yyreduce:
break;
case 90: /* frameargs: tMOVIE expr */
-#line 425 "engines/director/lingo/lingo-gr.y"
+#line 426 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
@@ -2565,7 +2565,7 @@ yyreduce:
break;
case 91: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 431 "engines/director/lingo/lingo-gr.y"
+#line 432 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
@@ -2576,7 +2576,7 @@ yyreduce:
break;
case 92: /* frameargs: expr tOF tMOVIE expr */
-#line 437 "engines/director/lingo/lingo-gr.y"
+#line 438 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
@@ -2587,7 +2587,7 @@ yyreduce:
break;
case 93: /* frameargs: tFRAME expr expr_nounarymath */
-#line 443 "engines/director/lingo/lingo-gr.y"
+#line 444 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
@@ -2598,49 +2598,49 @@ yyreduce:
break;
case 94: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2604 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 452 "engines/director/lingo/lingo-gr.y"
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2610 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2616 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* asgn: tSET varorthe to expr '\n' */
-#line 454 "engines/director/lingo/lingo-gr.y"
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* definevars: tGLOBAL idlist '\n' */
-#line 459 "engines/director/lingo/lingo-gr.y"
+#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
#line 2628 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* definevars: tPROPERTY idlist '\n' */
-#line 460 "engines/director/lingo/lingo-gr.y"
+#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
#line 2634 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* definevars: tINSTANCE idlist '\n' */
-#line 461 "engines/director/lingo/lingo-gr.y"
+#line 462 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
#line 2640 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* ifstmt: tIF expr tTHEN stmt */
-#line 464 "engines/director/lingo/lingo-gr.y"
+#line 465 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
@@ -2649,14 +2649,14 @@ yyreduce:
break;
case 104: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 468 "engines/director/lingo/lingo-gr.y"
+#line 469 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
#line 2656 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 472 "engines/director/lingo/lingo-gr.y"
+#line 473 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
@@ -2667,7 +2667,7 @@ yyreduce:
break;
case 106: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 478 "engines/director/lingo/lingo-gr.y"
+#line 479 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
@@ -2676,7 +2676,7 @@ yyreduce:
break;
case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 482 "engines/director/lingo/lingo-gr.y"
+#line 483 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
@@ -2685,35 +2685,35 @@ yyreduce:
break;
case 108: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 486 "engines/director/lingo/lingo-gr.y"
+#line 487 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
#line 2692 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+#line 491 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 492 "engines/director/lingo/lingo-gr.y"
+#line 493 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 494 "engines/director/lingo/lingo-gr.y"
+#line 495 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* tell: tTELL expr tTO stmtoneliner */
-#line 498 "engines/director/lingo/lingo-gr.y"
+#line 499 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
@@ -2722,387 +2722,393 @@ yyreduce:
break;
case 113: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 502 "engines/director/lingo/lingo-gr.y"
+#line 503 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* stmtlist: %empty */
-#line 506 "engines/director/lingo/lingo-gr.y"
- { (yyval.nodelist) = new NodeList; }
+ case 114: /* when: tWHEN ID tTHEN expr */
+#line 507 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* nonemptystmtlist: stmtlistline */
-#line 511 "engines/director/lingo/lingo-gr.y"
+ case 115: /* stmtlist: %empty */
+#line 509 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 117: /* nonemptystmtlist: stmtlistline */
+#line 514 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2746 "engines/director/lingo/lingo-gr.cpp"
+#line 2752 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 517 "engines/director/lingo/lingo-gr.y"
+ case 118: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 520 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2756 "engines/director/lingo/lingo-gr.cpp"
+#line 2762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* stmtlistline: '\n' */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 119: /* stmtlistline: '\n' */
+#line 527 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* simpleexpr_noparens_nounarymath: tINT */
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 121: /* simpleexpr_noparens_nounarymath: tINT */
+#line 534 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 532 "engines/director/lingo/lingo-gr.y"
+ case 122: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 535 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 533 "engines/director/lingo/lingo-gr.y"
+ case 123: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 536 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2786 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 534 "engines/director/lingo/lingo-gr.y"
+ case 124: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 537 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 2792 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 125: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 538 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2792 "engines/director/lingo/lingo-gr.cpp"
+#line 2798 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 536 "engines/director/lingo/lingo-gr.y"
+ case 126: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2798 "engines/director/lingo/lingo-gr.cpp"
+#line 2804 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* var: ID */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 129: /* var: ID */
+#line 544 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2810 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* list: '[' exprlist ']' */
-#line 551 "engines/director/lingo/lingo-gr.y"
+ case 132: /* list: '[' exprlist ']' */
+#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 2816 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* list: '[' ':' ']' */
-#line 552 "engines/director/lingo/lingo-gr.y"
+ case 133: /* list: '[' ':' ']' */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 2822 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* list: '[' proplist ']' */
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 134: /* list: '[' proplist ']' */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2822 "engines/director/lingo/lingo-gr.cpp"
+#line 2828 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* proplist: proppair */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 135: /* proplist: proppair */
+#line 559 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* proplist: proplist ',' proppair */
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 136: /* proplist: proplist ',' proppair */
+#line 563 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2839 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 136: /* proppair: tSYMBOL ':' expr */
-#line 565 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2845 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* proppair: ID ':' expr */
-#line 566 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+ case 137: /* proppair: tSYMBOL ':' expr */
+#line 568 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2851 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* proppair: tSTRING ':' expr */
-#line 567 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
+ case 138: /* proppair: ID ':' expr */
+#line 569 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* parens: '(' expr ')' */
+ case 139: /* proppair: tSTRING ':' expr */
#line 570 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[-1].node); }
+ { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
#line 2863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* unarymath: '+' simpleexpr */
-#line 572 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[0].node); }
+ case 140: /* parens: '(' expr ')' */
+#line 573 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[-1].node); }
#line 2869 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* unarymath: '-' simpleexpr */
-#line 573 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
+ case 141: /* unarymath: '+' simpleexpr */
+#line 575 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[0].node); }
#line 2875 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* expr: expr '+' expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 142: /* unarymath: '-' simpleexpr */
+#line 576 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr '-' expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 149: /* expr: expr '+' expr */
+#line 594 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr '*' expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 150: /* expr: expr '-' expr */
+#line 595 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr '/' expr */
-#line 594 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 151: /* expr: expr '*' expr */
+#line 596 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr tMOD expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 152: /* expr: expr '/' expr */
+#line 597 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr '>' expr */
-#line 596 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 153: /* expr: expr tMOD expr */
+#line 598 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr '<' expr */
-#line 597 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 154: /* expr: expr '>' expr */
+#line 599 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr tEQ expr */
-#line 598 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 155: /* expr: expr '<' expr */
+#line 600 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr tNEQ expr */
-#line 599 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 156: /* expr: expr tEQ expr */
+#line 601 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2929 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tGE expr */
-#line 600 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 157: /* expr: expr tNEQ expr */
+#line 602 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2935 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tLE expr */
-#line 601 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 158: /* expr: expr tGE expr */
+#line 603 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2941 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tAND expr */
-#line 602 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 159: /* expr: expr tLE expr */
+#line 604 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2947 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr tOR expr */
-#line 603 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 160: /* expr: expr tAND expr */
+#line 605 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr: expr '&' expr */
-#line 604 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 161: /* expr: expr tOR expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr: expr tCONCAT expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 162: /* expr: expr '&' expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr: expr tCONTAINS expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 163: /* expr: expr tCONCAT expr */
+#line 608 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr: expr tSTARTS expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 164: /* expr: expr tCONTAINS expr */
+#line 609 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 615 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 165: /* expr: expr tSTARTS expr */
+#line 610 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 616 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 167: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 618 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 617 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 168: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 619 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 2995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 169: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 170: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 171: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 172: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 623 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 173: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 624 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 623 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 174: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 625 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 624 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 175: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 626 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 625 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 176: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 627 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 177: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 628 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 627 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 178: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 629 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 628 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 179: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 630 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 629 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 180: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 631 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3067 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 630 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 181: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 632 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3073 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 631 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+ case 182: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 633 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3079 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* exprlist: %empty */
+ case 183: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
#line 634 "engines/director/lingo/lingo-gr.y"
- { (yyval.nodelist) = new NodeList; }
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
#line 3085 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* nonemptyexprlist: expr */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 184: /* exprlist: %empty */
+#line 637 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 3091 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 186: /* nonemptyexprlist: expr */
+#line 641 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 187: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 645 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3102 "engines/director/lingo/lingo-gr.cpp"
+#line 3108 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3112 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3301,7 +3307,7 @@ yyreturn:
return yyresult;
}
-#line 647 "engines/director/lingo/lingo-gr.y"
+#line 650 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 640ab942bd..d7f080a388 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -166,7 +166,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// STATEMENT
%type<node> stmt stmtoneliner
%type<node> proc asgn definevars
-%type<node> ifstmt ifelsestmt loop tell
+%type<node> ifstmt ifelsestmt loop tell when
%type<nodelist> cmdargs frameargs stmtlist nonemptystmtlist
%type<node> stmtlistline
@@ -331,7 +331,7 @@ ID: tVARID
| tTO { $$ = new Common::String("to"); }
| tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
| tSPRITE { $$ = new Common::String("sprite"); }
- | tWHEN { $$ = new Common::String("when"); }
+ // | tWHEN { $$ = new Common::String("when"); }
| tWHILE { $$ = new Common::String("while"); }
| tWINDOW { $$ = new Common::String("window"); }
| tWITH { $$ = new Common::String("with"); }
@@ -362,6 +362,7 @@ stmt: stmtoneliner
| ifelsestmt
| loop
| tell
+ | when
;
stmtoneliner: proc
@@ -503,6 +504,8 @@ tell: tTELL expr tTO stmtoneliner {
$$ = new TellNode($expr, $stmtlist); }
;
+when: tWHEN ID tTHEN expr { $$ = new WhenNode($ID, $expr); } ;
+
stmtlist: /* empty */ { $$ = new NodeList; }
| nonemptystmtlist
;
Commit: 5915ded25be135c86d86cb9ff69dd3a45a8155a9
https://github.com/scummvm/scummvm/commit/5915ded25be135c86d86cb9ff69dd3a45a8155a9
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove outdated comment
Changed paths:
engines/director/lingo/lingo-preprocessor.cpp
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index bec5b18121..a3e6a020b6 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -169,9 +169,6 @@ Common::String LingoCompiler::codePreprocessor(const char *s, LingoArchive *arch
s = tmp.c_str();
res.clear();
- // Preprocess if statements
- // Here we add ' end if' at end of each statement, which lets us
- // make the grammar very straightforward
Common::String line, tok, res1;
int linenumber = 1;
bool defFound = false;
Commit: 744fbc8628b31f7446187d8d5bed67798dd8582f
https://github.com/scummvm/scummvm/commit/744fbc8628b31f7446187d8d5bed67798dd8582f
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement intersects/within
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index d3e639c80c..b022f82f34 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -61,6 +61,8 @@ struct UnaryOpNode;
struct BinaryOpNode;
struct FrameNode;
struct MovieNode;
+struct IntersectsNode;
+struct WithinNode;
typedef Common::Array<Node *> NodeList;
typedef Common::Array<Common::String *> IDList;
@@ -110,7 +112,9 @@ enum NodeType {
kUnaryOpNode,
kBinaryOpNode,
kFrameNode,
- kMovieNode
+ kMovieNode,
+ kIntersectsNode,
+ kWithinNode
};
/* NodeVisitor */
@@ -155,6 +159,8 @@ public:
virtual void visitBinaryOpNode(BinaryOpNode *node) = 0;
virtual void visitFrameNode(FrameNode *node) = 0;
virtual void visitMovieNode(MovieNode *node) = 0;
+ virtual void visitIntersectsNode(IntersectsNode *node) = 0;
+ virtual void visitWithinNode(WithinNode *node) = 0;
};
/* Node */
@@ -732,6 +738,40 @@ struct MovieNode : ExprNode {
}
};
+/* IntersectsNode */
+
+struct IntersectsNode : ExprNode {
+ Node *sprite1;
+ Node *sprite2;
+
+ IntersectsNode(Node *sprite1In, Node *sprite2In)
+ : ExprNode(kIntersectsNode), sprite1(sprite1In), sprite2(sprite2In) {}
+ virtual ~IntersectsNode() {
+ delete sprite1;
+ delete sprite2;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitIntersectsNode(this);
+ }
+};
+
+/* WithinNode */
+
+struct WithinNode : ExprNode {
+ Node *sprite1;
+ Node *sprite2;
+
+ WithinNode(Node *sprite1In, Node *sprite2In)
+ : ExprNode(kWithinNode), sprite1(sprite1In), sprite2(sprite2In) {}
+ virtual ~WithinNode() {
+ delete sprite1;
+ delete sprite2;
+ }
+ virtual void accept(NodeVisitor *visitor) {
+ visitor->visitWithinNode(this);
+ }
+};
+
} // End of namespace Director
#endif
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index e62d058ffe..c7c0824a87 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -862,4 +862,20 @@ void LingoCompiler::visitMovieNode(MovieNode *node) {
compile(node->arg);
}
+/* IntersectsNode */
+
+void LingoCompiler::visitIntersectsNode(IntersectsNode *node) {
+ compile(node->sprite1);
+ compile(node->sprite2);
+ code1(LC::c_intersects);
+};
+
+/* WithinNode */
+
+void LingoCompiler::visitWithinNode(WithinNode *node) {
+ compile(node->sprite1);
+ compile(node->sprite2);
+ code1(LC::c_within);
+};
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index fe43dafab3..32f4cf01d7 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -112,6 +112,8 @@ public:
virtual void visitBinaryOpNode(BinaryOpNode *node);
virtual void visitFrameNode(FrameNode *node);
virtual void visitMovieNode(MovieNode *node);
+ virtual void visitIntersectsNode(IntersectsNode *node);
+ virtual void visitWithinNode(WithinNode *node);
private:
int parse(const char *code);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index c28a7b5da5..ee0e2cd8a7 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -289,8 +289,9 @@ enum yysymbol_kind_t
YYSYMBOL_simpleexpr_nounarymath = 134, /* simpleexpr_nounarymath */
YYSYMBOL_expr = 135, /* expr */
YYSYMBOL_expr_nounarymath = 136, /* expr_nounarymath */
- YYSYMBOL_exprlist = 137, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 138 /* nonemptyexprlist */
+ YYSYMBOL_sprite = 137, /* sprite */
+ YYSYMBOL_exprlist = 138, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 139 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -610,18 +611,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 117
+#define YYFINAL 119
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2625
+#define YYLAST 2789
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 46
+#define YYNNTS 47
/* YYNRULES -- Number of rules. */
-#define YYNRULES 187
+#define YYNRULES 191
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 353
+#define YYNSTATES 361
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -694,9 +695,10 @@ static const yytype_int16 yyrline[] =
546, 550, 554, 555, 556, 559, 563, 568, 569, 570,
573, 575, 576, 579, 580, 581, 588, 589, 593, 594,
595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
- 605, 606, 607, 608, 609, 610, 617, 618, 619, 620,
+ 605, 606, 607, 608, 609, 610, 611, 618, 619, 620,
621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
- 631, 632, 633, 634, 637, 638, 641, 645
+ 631, 632, 633, 634, 635, 636, 639, 640, 643, 644,
+ 647, 651
};
#endif
@@ -735,7 +737,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"stmtlistline", "simpleexpr_noparens_nounarymath", "var", "varorchunk",
"varorthe", "list", "proplist", "proppair", "parens", "unarymath",
"simpleexpr", "simpleexpr_nounarymath", "expr", "expr_nounarymath",
- "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -759,7 +761,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-237)
+#define YYPACT_NINF (-258)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -773,42 +775,43 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1398, -237, -237, -237, -237, -237, -237, -34, -237, 2319,
- 931, 1010, -237, -237, 2319, -237, -12, -237, -237, 1089,
- -26, 2319, -237, 2319, -237, -237, 2319, -237, 931, 2319,
- -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
- -237, -237, -237, -237, 1010, 2319, 2319, 2201, -237, 12,
- 1398, -237, -237, -237, -237, 1089, -237, -237, -237, -237,
- -237, -237, -237, -237, -237, -237, -56, -237, -237, -237,
- -237, -237, -237, -237, -38, -47, -237, -237, -237, -237,
- 1010, 1010, 1010, 1010, 1010, 850, 445, -35, -10, -8,
- -237, -237, -237, -237, -237, -237, 526, 1010, 81, 2319,
- -2, -1, 607, 2319, 1010, -237, -237, -27, 33, 11,
- 19, 20, 23, 339, 24, 2319, -237, -237, -237, 26,
- 688, -237, -237, 2319, 769, 2506, -237, -237, -237, -237,
- 2340, 6, 21, 25, -64, -32, -237, 2506, 27, 3,
- 1010, -237, -237, 80, 1010, 1010, 1010, 1010, 1168, 1168,
- 1326, 1010, 1010, 1247, 1010, 1010, 1010, 1010, 1010, 1010,
- 1010, 1010, -237, -237, -237, 2393, 2353, 1957, 1010, 1010,
- 1010, 1010, 43, -237, -237, 2319, 2319, 2319, 67, 2406,
- -237, -237, 1010, 1010, -66, -237, -237, -237, 2201, 2018,
- -237, 51, -237, -237, 96, 2541, 1010, -237, 1010, 1010,
- -237, 1010, 2260, -237, -237, 1010, 50, 1010, 44, 44,
- 44, 44, -18, -18, -237, 64, 44, 44, 44, 44,
- 64, -46, -46, -237, -237, 3, 1010, 1010, 1010, 1010,
- 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
- 1010, 1010, 1010, 1010, 2018, 116, 2018, -237, 63, 65,
- 66, 1010, 2018, 2443, 2506, 2319, -237, -237, 68, -237,
- -237, -237, -237, -237, 1521, -237, -237, 2018, 1010, -31,
- 2506, 2506, 2506, 6, 21, 58, -237, 2506, -237, 2506,
- 44, 44, 44, 44, -18, -18, -237, 64, 44, 44,
- 44, 44, 64, -46, -46, -237, -237, 3, 1459, 2079,
- 2018, -237, -237, -237, 130, 1582, -237, 2319, -66, 69,
- -237, 1650, 2506, -237, 2140, 82, 2018, -237, 124, 1010,
- 83, 84, -237, -237, 2319, 2018, -237, -237, 1711, 1010,
- 2456, -237, 2018, -5, -237, 1773, 87, 2493, 2018, 2018,
- -237, 2319, 88, -237, 2018, 1835, -237, -237, 1896, 92,
- 93, -237, -237
+ 1490, -258, -258, -258, -258, -258, -258, -23, -258, 2411,
+ 944, 1023, -258, -258, 2411, -258, -12, -258, -258, 1102,
+ -6, 2411, -258, 2411, -258, -258, 2411, -258, 944, 2411,
+ -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+ -258, -258, -258, -258, 1023, 2411, 2411, 2293, -258, 11,
+ 1490, -258, -258, -258, -258, 1102, -258, -258, -258, -258,
+ -258, -258, -258, -258, -258, -258, -21, -258, -258, -258,
+ -258, -258, -258, -258, -11, -44, -258, -258, -258, -258,
+ 1023, 1023, 1181, 1023, 1181, 1181, 863, 458, -69, -10,
+ -9, -258, -258, -258, -258, -258, -258, 539, -258, 1023,
+ 348, 2411, -8, -5, 620, 2411, 1023, -258, -258, -20,
+ 26, -4, -3, -1, 2, 144, 8, 2411, -258, -258,
+ -258, 16, 701, -258, -258, 2411, 782, 2657, -258, 2622,
+ -258, -258, -258, 2432, 5, 15, -17, -68, -51, -258,
+ 2657, 1, -7, 1023, -258, -258, 69, 1023, 1023, 1023,
+ 1023, 1260, 1260, 1418, 1023, 1023, 1339, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, -258, -258, -258, 2485, -258,
+ 2445, 2049, 1023, 1023, 1023, 1023, 23, -258, -258, 2411,
+ 2411, 2411, 58, 2498, -258, -258, 1023, 1023, -58, -258,
+ -258, -258, 2293, 2110, -258, 25, -258, -258, 79, 2670,
+ 1181, 1181, 1023, -258, 1023, 1023, -258, 1023, 2352, -258,
+ -258, 1023, 27, 1023, 38, 38, 38, 38, 2705, 2705,
+ -258, 47, 38, 38, 38, 38, 47, -26, -26, -258,
+ -258, -7, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
+ 2110, 90, 2110, -258, 29, 40, 46, 1023, 2110, 2535,
+ 2657, 2411, -258, -258, 48, -258, -258, -258, -258, -258,
+ 1613, -258, -258, 2110, 1023, -258, -258, -35, 2657, 2657,
+ 2657, 5, 15, 41, -258, 2657, -258, 2657, 38, 38,
+ 38, 38, 2705, 2705, -258, 47, 38, 38, 38, 38,
+ 47, -26, -26, -258, -258, -7, 1551, 2171, 2110, -258,
+ -258, -258, 85, 1674, -258, 2411, -58, 55, -258, 1742,
+ 2657, -258, 2232, 57, 2110, -258, 102, 1023, 62, 64,
+ -258, -258, 2411, 2110, -258, -258, 1803, 1023, 2548, -258,
+ 2110, -18, -258, 1865, 65, 2585, 2110, 2110, -258, 2411,
+ 66, -258, 2110, 1927, -258, -258, 1988, 67, 68, -258,
+ -258
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -824,54 +827,55 @@ static const yytype_uint8 yydefact[] =
2, 3, 6, 7, 8, 82, 9, 63, 69, 70,
71, 64, 65, 66, 67, 68, 0, 80, 40, 46,
48, 50, 52, 61, 0, 60, 121, 122, 124, 123,
- 32, 39, 41, 0, 0, 0, 184, 129, 0, 0,
- 143, 127, 128, 144, 145, 148, 83, 0, 0, 59,
- 0, 0, 83, 0, 0, 129, 131, 0, 0, 0,
- 0, 0, 0, 0, 0, 59, 81, 1, 4, 0,
- 83, 79, 100, 0, 89, 90, 125, 141, 142, 87,
- 0, 124, 123, 0, 129, 0, 135, 186, 0, 185,
- 184, 74, 75, 42, 0, 0, 0, 0, 26, 44,
- 38, 0, 0, 49, 0, 0, 0, 0, 0, 0,
- 0, 0, 146, 147, 166, 85, 0, 0, 0, 0,
- 0, 0, 0, 78, 73, 35, 25, 27, 0, 0,
- 98, 99, 0, 0, 13, 76, 77, 102, 0, 115,
- 101, 0, 72, 62, 42, 93, 0, 140, 0, 0,
- 133, 0, 0, 134, 132, 0, 0, 0, 158, 159,
- 156, 157, 160, 161, 153, 163, 164, 165, 155, 154,
- 162, 149, 150, 151, 152, 84, 0, 0, 0, 0,
+ 32, 39, 41, 53, 0, 0, 0, 188, 129, 0,
+ 0, 143, 127, 128, 144, 145, 148, 83, 149, 0,
+ 0, 59, 0, 0, 83, 0, 0, 129, 131, 0,
+ 0, 0, 0, 0, 0, 0, 0, 59, 81, 1,
+ 4, 0, 83, 79, 100, 0, 89, 90, 125, 0,
+ 141, 142, 87, 0, 124, 123, 0, 129, 0, 135,
+ 190, 0, 189, 188, 74, 75, 42, 0, 0, 0,
+ 0, 26, 44, 38, 0, 0, 49, 0, 0, 0,
+ 0, 0, 0, 0, 0, 146, 147, 167, 85, 168,
+ 0, 0, 0, 0, 0, 0, 0, 78, 73, 35,
+ 25, 27, 0, 0, 98, 99, 0, 0, 13, 76,
+ 77, 102, 0, 115, 101, 0, 72, 62, 42, 93,
+ 0, 0, 0, 140, 0, 0, 133, 0, 0, 134,
+ 132, 0, 0, 0, 159, 160, 157, 158, 161, 162,
+ 154, 164, 165, 166, 156, 155, 163, 150, 151, 152,
+ 153, 84, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 115, 103, 115, 130, 0, 0,
- 0, 0, 115, 0, 114, 0, 17, 18, 11, 14,
- 15, 112, 119, 120, 0, 116, 117, 115, 0, 0,
- 139, 137, 138, 0, 0, 0, 136, 187, 126, 92,
- 176, 177, 174, 175, 178, 179, 171, 181, 182, 183,
- 173, 172, 180, 167, 168, 169, 170, 86, 0, 0,
- 10, 94, 95, 96, 0, 0, 97, 59, 0, 0,
- 118, 20, 91, 88, 0, 0, 115, 105, 0, 0,
- 0, 0, 16, 113, 21, 115, 107, 104, 0, 0,
- 0, 109, 115, 0, 22, 0, 0, 0, 115, 12,
- 19, 0, 0, 106, 115, 0, 23, 108, 0, 0,
- 0, 110, 111
+ 115, 103, 115, 130, 0, 0, 0, 0, 115, 0,
+ 114, 0, 17, 18, 11, 14, 15, 112, 119, 120,
+ 0, 116, 117, 115, 0, 186, 187, 0, 139, 137,
+ 138, 0, 0, 0, 136, 191, 126, 92, 178, 179,
+ 176, 177, 180, 181, 173, 183, 184, 185, 175, 174,
+ 182, 169, 170, 171, 172, 86, 0, 0, 10, 94,
+ 95, 96, 0, 0, 97, 59, 0, 0, 118, 20,
+ 91, 88, 0, 0, 115, 105, 0, 0, 0, 0,
+ 16, 113, 21, 115, 107, 104, 0, 0, 0, 109,
+ 115, 0, 22, 0, 0, 0, 115, 12, 19, 0,
+ 0, 106, 115, 0, 23, 108, 0, 0, 0, 110,
+ 111
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -237, -237, -237, 136, -237, -237, -237, -237, -237, -115,
- -237, -237, 0, -28, -237, 4, -44, -237, -6, 166,
- -237, -237, -237, -237, -237, -237, -237, -237, -236, -237,
- -228, -45, -19, -108, -237, -237, -237, -7, -29, -237,
- 10, -237, 205, 72, 57, -155
+ -258, -258, -258, 105, -258, -258, -258, -258, -258, -160,
+ -258, -258, 0, -28, -258, 3, -43, -258, 6, 129,
+ -258, -258, -258, -258, -258, -258, -258, -258, -240, -258,
+ -257, -67, -19, -109, -258, -258, -258, -50, -62, -258,
+ -77, -258, 210, 33, -56, 30, -158
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 257, 258, 259, 260,
- 54, 333, 87, 74, 75, 263, 57, 58, 88, 89,
- 59, 182, 60, 61, 62, 63, 64, 65, 264, 265,
- 266, 90, 91, 248, 107, 92, 135, 136, 93, 94,
- 95, 164, 137, 165, 138, 139
+ 0, 49, 50, 51, 52, 53, 263, 264, 265, 266,
+ 54, 341, 88, 74, 75, 269, 57, 58, 89, 90,
+ 59, 186, 60, 61, 62, 63, 64, 65, 270, 271,
+ 272, 91, 92, 254, 109, 93, 138, 139, 94, 95,
+ 96, 167, 140, 168, 98, 141, 142
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -879,371 +883,412 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 112, 106, 116, 56, 66, 225, 255, 298, 73,
- 300, 170, 117, 101, 99, 180, 305, 114, 103, 104,
- 256, 105, 110, 108, 140, 181, 109, 100, 201, 73,
- 121, 311, 144, 145, 146, 147, 310, 159, 160, 170,
- 123, 269, 151, 152, 171, 73, 115, 55, 122, 119,
- 55, 162, 67, 140, 56, 202, 205, 162, 313, 203,
- 154, 155, 156, 157, 158, 159, 160, 163, 249, 250,
- 310, 172, 310, 163, 183, 162, 141, 310, 142, 162,
- 328, 340, 341, 310, 173, 174, 134, 191, 297, 335,
- 205, 163, 126, 127, 128, 163, 339, 184, 198, 73,
- 310, 170, 345, 178, 151, 185, 186, 310, 348, 187,
- 190, 310, 192, 199, 207, 73, 200, 310, 204, 251,
- 310, 170, 167, 193, 156, 157, 158, 159, 160, 246,
- 268, 144, 145, 146, 147, 168, 169, 267, 170, 278,
- 299, 151, 152, 171, 261, 157, 158, 159, 160, 301,
- 201, 302, 303, 318, 308, 323, 247, 247, 247, 154,
- 155, 156, 157, 158, 159, 160, 329, 55, 327, 331,
- 332, 245, 319, 343, 347, 105, 105, 105, 351, 352,
- 144, 145, 146, 147, 168, 169, 118, 170, 55, 55,
- 151, 152, 171, 322, 111, 276, 195, 206, 0, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 154, 155,
- 156, 157, 158, 159, 160, 96, 98, 0, 0, 0,
- 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 55, 0, 55, 0, 0, 113,
- 0, 0, 55, 0, 0, 307, 0, 0, 0, 0,
- 120, 0, 0, 0, 55, 0, 0, 55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 0, 0, 0, 0, 0, 124, 125, 0, 0, 0,
- 130, 0, 0, 0, 0, 0, 0, 0, 55, 55,
- 55, 0, 166, 317, 0, 55, 0, 73, 0, 179,
- 0, 55, 0, 0, 55, 0, 55, 0, 326, 0,
- 0, 0, 0, 0, 334, 55, 0, 0, 55, 0,
- 0, 0, 55, 0, 0, 55, 0, 0, 55, 55,
- 0, 346, 0, 0, 55, 55, 0, 0, 55, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 0, 0, 0, 0,
- 0, 0, 0, 212, 213, 214, 217, 0, 0, 0,
- 0, 188, 0, 0, 0, 0, 0, 253, 254, 144,
- 145, 146, 147, 168, 169, 0, 170, 0, 0, 151,
- 152, 171, 0, 270, 271, 0, 272, 0, 0, 0,
- 277, 0, 279, 0, 0, 0, 0, 154, 155, 156,
- 157, 158, 159, 160, 0, 189, 0, 0, 0, 0,
- 0, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 0, 0,
- 76, 0, 0, 0, 0, 77, 304, 0, 1, 131,
- 132, 0, 0, 0, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 312, 0, 0, 12, 13, 0, 15,
- 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
- 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
- 31, 82, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 71, 0, 0, 0, 0,
- 0, 0, 72, 0, 330, 0, 83, 84, 0, 0,
- 0, 76, 0, 97, 337, 86, 77, 133, 0, 1,
- 78, 79, 0, 0, 0, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 68, 143, 18, 0, 69, 70, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 144, 145, 146, 147,
- 148, 149, 82, 150, 34, 35, 151, 152, 153, 37,
- 38, 39, 40, 41, 42, 43, 71, 0, 0, 0,
- 0, 0, 0, 72, 154, 155, 156, 157, 158, 159,
- 160, 0, 76, 161, 97, 0, 86, 77, 0, 0,
- 1, 78, 79, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 175,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 144, 145, 146,
- 147, 148, 149, 82, 150, 176, 177, 151, 152, 153,
- 37, 38, 39, 40, 41, 42, 43, 71, 0, 0,
- 0, 0, 0, 0, 72, 154, 155, 156, 157, 158,
- 159, 160, 0, 76, 161, 97, 0, 86, 77, 0,
- 0, 1, 78, 79, 0, 0, 0, 2, 3, 4,
- 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 55, 114, 108, 56, 118, 128, 231, 130, 131, 73,
+ 306, 119, 308, 318, 101, 261, 66, 116, 313, 143,
+ 143, 107, 184, 110, 207, 103, 111, 102, 262, 73,
+ 165, 174, 185, 319, 112, 166, 208, 165, 105, 106,
+ 209, 169, 166, 125, 277, 73, 117, 55, 169, 318,
+ 55, 318, 211, 56, 321, 165, 318, 162, 163, 165,
+ 166, 121, 318, 67, 166, 123, 169, 187, 348, 349,
+ 169, 255, 256, 176, 206, 124, 144, 145, 177, 318,
+ 211, 178, 188, 189, 336, 190, 318, 137, 191, 195,
+ 318, 305, 210, 343, 194, 174, 318, 204, 154, 318,
+ 347, 73, 196, 213, 174, 182, 353, 205, 326, 252,
+ 257, 273, 356, 274, 307, 309, 286, 73, 159, 160,
+ 161, 162, 163, 275, 276, 197, 310, 327, 160, 161,
+ 162, 163, 311, 207, 316, 147, 148, 149, 150, 172,
+ 173, 331, 174, 335, 337, 154, 155, 175, 339, 267,
+ 340, 351, 355, 359, 360, 120, 330, 113, 284, 199,
+ 253, 253, 253, 157, 158, 159, 160, 161, 162, 163,
+ 0, 55, 0, 212, 251, 0, 0, 0, 0, 107,
+ 107, 107, 0, 0, 0, 0, 192, 0, 0, 0,
+ 0, 0, 55, 55, 147, 148, 149, 150, 172, 173,
+ 0, 174, 0, 0, 154, 155, 175, 0, 283, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 97, 100, 157, 158, 159, 160, 161, 162, 163, 104,
+ 193, 0, 0, 0, 0, 0, 0, 0, 97, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 0, 55, 0, 115, 0, 0, 0, 55, 0,
+ 0, 315, 0, 0, 0, 122, 0, 0, 0, 0,
+ 55, 0, 0, 55, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 329, 0, 0,
+ 126, 127, 0, 129, 0, 0, 133, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 55, 55, 55, 170,
+ 325, 0, 0, 55, 0, 73, 183, 0, 0, 55,
+ 0, 0, 55, 0, 55, 334, 0, 0, 0, 0,
+ 0, 0, 342, 55, 0, 0, 55, 0, 0, 0,
+ 55, 0, 0, 55, 0, 0, 55, 55, 0, 354,
+ 0, 0, 55, 55, 0, 0, 55, 214, 215, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
+ 227, 228, 229, 230, 0, 0, 0, 0, 0, 0,
+ 0, 0, 218, 219, 220, 223, 0, 0, 0, 171,
+ 0, 0, 0, 0, 0, 0, 259, 260, 147, 148,
+ 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
+ 175, 0, 0, 0, 278, 279, 0, 280, 0, 0,
+ 0, 285, 0, 287, 0, 0, 157, 158, 159, 160,
+ 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 0,
+ 0, 0, 0, 76, 0, 0, 0, 312, 77, 0,
+ 0, 1, 134, 135, 0, 0, 0, 2, 3, 4,
+ 5, 6, 0, 0, 320, 8, 0, 0, 0, 12,
13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
- 22, 0, 24, 25, 0, 27, 0, 0, 144, 145,
- 146, 147, 148, 149, 82, 150, 34, 35, 151, 152,
- 153, 37, 38, 39, 40, 41, 42, 43, 71, 0,
- 0, 0, 0, 0, 0, 72, 154, 155, 156, 157,
- 158, 159, 160, 0, 76, 161, 97, 0, 86, 77,
- 0, 0, 1, 78, 79, 0, 0, 0, 2, 3,
+ 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 30, 31, 82, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 83, 42, 43, 71, 0,
+ 0, 0, 0, 0, 0, 72, 0, 338, 0, 84,
+ 85, 0, 0, 0, 76, 0, 99, 345, 87, 77,
+ 136, 0, 1, 78, 79, 0, 0, 0, 2, 3,
4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 68, 194, 18, 0, 69, 70,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 144,
- 145, 146, 147, 148, 149, 82, 150, 34, 35, 151,
- 152, 153, 37, 38, 39, 40, 41, 42, 43, 71,
- 0, 0, 0, 0, 0, 0, 72, 154, 155, 156,
- 157, 158, 159, 160, 0, 76, 0, 97, 0, 86,
+ 12, 13, 0, 15, 68, 146, 18, 0, 69, 70,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 147,
+ 148, 149, 150, 151, 152, 82, 153, 34, 35, 154,
+ 155, 156, 37, 38, 39, 40, 83, 42, 43, 71,
+ 0, 0, 0, 0, 0, 0, 72, 157, 158, 159,
+ 160, 161, 162, 163, 0, 76, 164, 99, 0, 87,
77, 0, 0, 1, 78, 79, 0, 0, 0, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
+ 0, 12, 179, 0, 15, 68, 17, 18, 0, 69,
70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 82, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 71, 0, 0, 0, 0, 0, 0, 72, 0, 0,
- 0, 83, 84, 0, 0, 0, 76, 0, 97, 129,
- 86, 77, 0, 0, 1, 78, 79, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 80, 0,
- 0, 0, 12, 13, 0, 81, 68, 17, 18, 0,
+ 147, 148, 149, 150, 151, 152, 82, 153, 180, 181,
+ 154, 155, 156, 37, 38, 39, 40, 83, 42, 43,
+ 71, 0, 0, 0, 0, 0, 0, 72, 157, 158,
+ 159, 160, 161, 162, 163, 0, 76, 164, 99, 0,
+ 87, 77, 0, 0, 1, 78, 79, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
+ 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 147, 148, 149, 150, 151, 152, 82, 153, 34,
+ 35, 154, 155, 156, 37, 38, 39, 40, 83, 42,
+ 43, 71, 0, 0, 0, 0, 0, 0, 72, 157,
+ 158, 159, 160, 161, 162, 163, 0, 76, 164, 99,
+ 0, 87, 77, 0, 0, 1, 78, 79, 0, 0,
+ 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 68, 198, 18,
+ 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
+ 0, 0, 147, 148, 149, 150, 151, 152, 82, 153,
+ 34, 35, 154, 155, 156, 37, 38, 39, 40, 83,
+ 42, 43, 71, 0, 0, 0, 0, 0, 0, 72,
+ 157, 158, 159, 160, 161, 162, 163, 0, 76, 0,
+ 99, 0, 87, 77, 0, 0, 1, 78, 79, 0,
+ 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 68, 17,
+ 18, 0, 69, 70, 0, 22, 0, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 82,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 83, 42, 43, 71, 0, 0, 0, 0, 0, 0,
+ 72, 0, 0, 0, 84, 85, 0, 0, 0, 76,
+ 0, 99, 132, 87, 77, 0, 0, 1, 78, 79,
+ 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
+ 0, 80, 0, 0, 0, 12, 13, 0, 81, 68,
+ 17, 18, 0, 69, 70, 0, 22, 0, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 82, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 83, 42, 43, 71, 0, 0, 0, 0, 0,
+ 0, 72, 0, 0, 0, 84, 85, 0, 76, 0,
+ 0, 0, 86, 77, 87, 0, 1, 78, 79, 0,
+ 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 68, 17,
+ 18, 0, 69, 70, 0, 22, 0, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 82,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 83, 42, 43, 71, 0, 0, 0, 0, 0, 0,
+ 72, 0, 0, 0, 84, 85, 0, 76, 0, 0,
+ 0, 99, 77, 87, 0, 1, 78, 79, 0, 0,
+ 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
+ 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 82, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 83,
+ 42, 43, 71, 0, 0, 0, 0, 0, 0, 72,
+ 0, 0, 0, 84, 85, 0, 76, 0, 0, 0,
+ 86, 77, 87, 0, 1, 78, 79, 0, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
0, 0, 0, 0, 0, 30, 31, 82, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
43, 71, 0, 0, 0, 0, 0, 0, 72, 0,
- 0, 0, 83, 84, 0, 76, 0, 0, 0, 85,
- 77, 86, 0, 1, 78, 79, 0, 0, 0, 2,
+ 0, 0, 84, 85, 0, 76, 0, 0, 0, 99,
+ 77, 87, 0, 1, 78, 79, 0, 0, 0, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 82, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 0, 0, 0, 0, 0, 0, 82, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 83, 42, 43,
71, 0, 0, 0, 0, 0, 0, 72, 0, 0,
- 0, 83, 84, 0, 76, 0, 0, 0, 97, 77,
- 86, 0, 1, 78, 79, 0, 0, 0, 2, 3,
+ 0, 84, 85, 0, 76, 0, 0, 0, 99, 77,
+ 87, 0, 1, 78, 79, 0, 0, 0, 2, 3,
4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 82, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
+ 0, 0, 0, 0, 0, 82, 33, 34, 35, 0,
+ 0, 0, 37, 38, 39, 40, 83, 42, 43, 71,
0, 0, 0, 0, 0, 0, 72, 0, 0, 0,
- 83, 84, 0, 76, 0, 0, 0, 85, 77, 86,
+ 84, 85, 0, 76, 0, 0, 0, 99, 77, 87,
0, 1, 78, 79, 0, 0, 0, 2, 3, 4,
5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 0, 0, 82, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 71, 0,
- 0, 0, 0, 0, 0, 72, 0, 0, 0, 83,
- 84, 0, 76, 0, 0, 0, 97, 77, 86, 0,
- 1, 78, 79, 0, 0, 0, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 0, 0, 82, 33, 34, 35, 0, 0, 0,
- 37, 38, 39, 40, 41, 42, 43, 71, 0, 0,
- 0, 0, 0, 0, 72, 0, 0, 0, 83, 84,
- 0, 76, 0, 0, 0, 97, 77, 86, 0, 1,
- 78, 79, 0, 0, 0, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 82, 0, 34, 35, 0, 0, 0, 37,
- 38, 39, 40, 41, 42, 43, 71, 0, 0, 0,
- 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 97, 0, 86, 2, 3, 4,
- 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 0, 1, 0, 0, 47, 0, 0, 2, 3,
- 4, 5, 6, 314, 48, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 315, 1, 0, 47, 0, 0, 0,
- 2, 3, 4, 5, 6, 262, 0, 7, 8, 9,
+ 0, 0, 0, 0, 82, 0, 34, 35, 0, 0,
+ 0, 37, 38, 39, 40, 83, 42, 43, 71, 0,
+ 0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 0, 99, 0, 87, 2,
+ 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 26, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 0, 1, 0, 0, 47, 0, 0,
+ 2, 3, 4, 5, 6, 322, 48, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 1, 0, 309, 47, 0,
- 0, 2, 3, 4, 5, 6, 0, 262, 7, 8,
+ 43, 44, 45, 0, 0, 323, 1, 0, 47, 0,
+ 0, 0, 2, 3, 4, 5, 6, 268, 0, 7,
+ 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
+ 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 0, 0, 1, 0, 317,
+ 47, 0, 0, 2, 3, 4, 5, 6, 0, 268,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 0, 328,
+ 0, 47, 0, 0, 0, 1, 0, 0, 332, 0,
+ 268, 2, 3, 4, 5, 6, 0, 0, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 0, 320, 0, 47,
- 0, 0, 0, 1, 0, 0, 324, 0, 262, 2,
- 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 262, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 336, 1, 0, 47, 0,
- 0, 0, 2, 3, 4, 5, 6, 262, 0, 7,
+ 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 0, 268, 7,
8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 342, 1, 0,
- 47, 0, 0, 0, 2, 3, 4, 5, 6, 262,
+ 41, 42, 43, 44, 45, 0, 0, 344, 1, 0,
+ 47, 0, 0, 0, 2, 3, 4, 5, 6, 268,
0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
- 349, 0, 47, 0, 0, 2, 3, 4, 5, 6,
- 0, 262, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 1, 350, 0, 47, 0, 0, 2, 3, 4, 5,
- 6, 0, 262, 7, 8, 9, 10, 11, 12, 13,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 350,
+ 1, 0, 47, 0, 0, 0, 2, 3, 4, 5,
+ 6, 268, 0, 7, 8, 9, 10, 11, 12, 13,
0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
- 5, 6, 0, 244, 7, 8, 9, 10, 11, 12,
+ 0, 1, 357, 0, 47, 0, 0, 2, 3, 4,
+ 5, 6, 0, 268, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 0, 0, 47, 0, 0, 2, 3,
- 4, 5, 6, 0, 262, 7, 8, 9, 10, 11,
+ 0, 0, 1, 358, 0, 47, 0, 0, 2, 3,
+ 4, 5, 6, 0, 268, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 316, 7, 8, 9, 10,
+ 3, 4, 5, 6, 0, 250, 7, 8, 9, 10,
11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 325, 7, 8, 9,
- 10, 0, 12, 13, 0, 15, 16, 17, 18, 19,
- 69, 21, 0, 22, 0, 24, 25, 0, 27, 28,
+ 2, 3, 4, 5, 6, 0, 268, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 71, 45, 1, 273, 274, 0, 0, 47, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
- 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 71, 0, 1, 0, 0, 0, 0, 72, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
- 144, 145, 146, 147, 168, 169, 72, 170, 0, 0,
- 151, 152, 171, 144, 145, 146, 147, 168, 169, 0,
- 170, 0, 0, 151, 152, 171, 0, 0, 154, 155,
- 156, 157, 158, 159, 160, 0, 0, 196, 0, 197,
- 0, 154, 155, 156, 157, 158, 159, 160, 0, 0,
- 0, 0, 197, 226, 227, 228, 229, 230, 231, 0,
- 232, 0, 0, 233, 234, 235, 144, 145, 146, 147,
- 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
- 0, 236, 237, 238, 239, 240, 241, 242, 0, 0,
- 243, 0, 0, 0, 154, 155, 156, 157, 158, 159,
- 160, 0, 252, 144, 145, 146, 147, 168, 169, 0,
- 170, 0, 0, 151, 152, 171, 144, 145, 146, 147,
- 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
- 0, 154, 155, 156, 157, 158, 159, 160, 0, 306,
- 0, 0, 0, 0, 154, 155, 156, 157, 158, 159,
- 160, 0, 338, 144, 145, 146, 147, 168, 169, 0,
- 170, 0, 0, 151, 152, 171, 144, 145, 146, 147,
- 168, 169, 0, 170, 0, 0, 151, 152, 171, 0,
- 0, 154, 155, 156, 157, 158, 159, 160, 0, 344,
- 0, 0, 0, 0, 154, 155, 156, 157, 158, 159,
- 160, 226, 227, 228, 229, 230, 231, 0, 232, 0,
- 0, 233, 234, 235, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 236,
- 237, 238, 239, 240, 241, 242
+ 43, 44, 45, 0, 0, 1, 0, 0, 47, 0,
+ 0, 2, 3, 4, 5, 6, 0, 324, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
+ 0, 0, 2, 3, 4, 5, 6, 0, 333, 7,
+ 8, 9, 10, 0, 12, 13, 0, 15, 16, 17,
+ 18, 19, 69, 21, 0, 22, 0, 24, 25, 0,
+ 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 71, 45, 1, 281, 282, 0, 0,
+ 47, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
+ 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 71, 0, 1, 0, 0, 0, 0, 72,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
+ 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 71, 147, 148, 149, 150, 172, 173, 72, 174,
+ 0, 0, 154, 155, 175, 147, 148, 149, 150, 172,
+ 173, 0, 174, 0, 0, 154, 155, 175, 0, 0,
+ 157, 158, 159, 160, 161, 162, 163, 0, 0, 202,
+ 0, 203, 0, 157, 158, 159, 160, 161, 162, 163,
+ 0, 0, 0, 0, 203, 232, 233, 234, 235, 236,
+ 237, 0, 238, 0, 0, 239, 240, 241, 147, 148,
+ 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
+ 175, 0, 0, 242, 243, 244, 245, 246, 247, 248,
+ 0, 0, 249, 0, 0, 0, 157, 158, 159, 160,
+ 161, 162, 163, 0, 258, 147, 148, 149, 150, 172,
+ 173, 0, 174, 0, 0, 154, 155, 175, 147, 148,
+ 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
+ 175, 0, 0, 157, 158, 159, 160, 161, 162, 163,
+ 0, 314, 0, 0, 0, 0, 157, 158, 159, 160,
+ 161, 162, 163, 0, 346, 147, 148, 149, 150, 172,
+ 173, 0, 174, 0, 0, 154, 155, 175, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
+ 0, 352, 147, 148, 149, 150, 172, 173, 0, 174,
+ 0, 0, 154, 155, 175, 0, 0, 0, 0, 0,
+ 200, 201, 0, 0, 0, 0, 0, 0, 0, 0,
+ 157, 158, 159, 160, 161, 162, 163, 147, 148, 149,
+ 150, 172, 173, 0, 174, 0, 0, 154, 155, 175,
+ 232, 233, 234, 235, 236, 237, 0, 238, 0, 0,
+ 239, 240, 241, 0, 0, 157, 158, 159, 160, 161,
+ 162, 163, 0, 0, 0, 0, 0, 0, 242, 243,
+ 244, 245, 246, 247, 248, 147, 148, 149, 150, 0,
+ 0, 0, 174, 0, 0, 154, 155, 175, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 157, 158, 159, 160, 161, 162, 163
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 47, 0, 39, 161, 73, 244, 9,
- 246, 57, 0, 19, 14, 42, 252, 45, 44, 45,
- 86, 21, 28, 23, 88, 52, 26, 39, 92, 29,
- 86, 267, 50, 51, 52, 53, 264, 83, 84, 57,
- 87, 196, 60, 61, 62, 45, 46, 47, 86, 55,
- 50, 96, 86, 88, 50, 87, 87, 102, 89, 91,
- 78, 79, 80, 81, 82, 83, 84, 96, 176, 177,
- 298, 99, 300, 102, 41, 120, 86, 305, 86, 124,
- 316, 86, 87, 311, 86, 86, 86, 115, 243, 325,
- 87, 120, 82, 83, 84, 124, 332, 86, 92, 99,
- 328, 57, 338, 103, 60, 86, 86, 335, 344, 86,
- 86, 339, 86, 92, 34, 115, 91, 345, 91, 52,
- 348, 57, 41, 123, 80, 81, 82, 83, 84, 86,
- 34, 50, 51, 52, 53, 54, 55, 86, 57, 89,
- 24, 60, 61, 62, 188, 81, 82, 83, 84, 86,
- 92, 86, 86, 23, 86, 86, 175, 176, 177, 78,
- 79, 80, 81, 82, 83, 84, 42, 167, 86, 86,
- 86, 167, 42, 86, 86, 175, 176, 177, 86, 86,
- 50, 51, 52, 53, 54, 55, 50, 57, 188, 189,
- 60, 61, 62, 308, 28, 202, 124, 140, -1, -1,
- -1, -1, 202, -1, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 10, 11, -1, -1, -1,
- -1, -1, -1, -1, 19, -1, -1, -1, -1, -1,
- -1, -1, -1, 28, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 244, -1, 246, -1, -1, 44,
- -1, -1, 252, -1, -1, 255, -1, -1, -1, -1,
- 55, -1, -1, -1, 264, -1, -1, 267, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 307,
- -1, -1, -1, -1, -1, 80, 81, -1, -1, -1,
- 85, -1, -1, -1, -1, -1, -1, -1, 298, 299,
- 300, -1, 97, 299, -1, 305, -1, 307, -1, 104,
- -1, 311, -1, -1, 314, -1, 316, -1, 314, -1,
- -1, -1, -1, -1, 324, 325, -1, -1, 328, -1,
- -1, -1, 332, -1, -1, 335, -1, -1, 338, 339,
- -1, 341, -1, -1, 344, 345, -1, -1, 348, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, -1, -1, -1, -1,
- -1, -1, -1, 168, 169, 170, 171, -1, -1, -1,
- -1, 42, -1, -1, -1, -1, -1, 182, 183, 50,
- 51, 52, 53, 54, 55, -1, 57, -1, -1, 60,
- 61, 62, -1, 198, 199, -1, 201, -1, -1, -1,
- 205, -1, 207, -1, -1, -1, -1, 78, 79, 80,
- 81, 82, 83, 84, -1, 86, -1, -1, -1, -1,
- -1, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, -1, -1,
- 5, -1, -1, -1, -1, 10, 251, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, 268, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, 319, -1, 81, 82, -1, -1,
- -1, 5, -1, 88, 329, 90, 10, 92, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
- 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, 5, 87, 88, -1, 90, 10, -1, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, 5, 87, 88, -1, 90, 10, -1,
+ 0, 29, 21, 0, 47, 82, 164, 84, 85, 9,
+ 250, 0, 252, 270, 14, 73, 39, 45, 258, 88,
+ 88, 21, 42, 23, 92, 19, 26, 39, 86, 29,
+ 97, 57, 52, 273, 28, 97, 87, 104, 44, 45,
+ 91, 97, 104, 87, 202, 45, 46, 47, 104, 306,
+ 50, 308, 87, 50, 89, 122, 313, 83, 84, 126,
+ 122, 55, 319, 86, 126, 86, 122, 41, 86, 87,
+ 126, 180, 181, 101, 91, 86, 86, 86, 86, 336,
+ 87, 86, 86, 86, 324, 86, 343, 87, 86, 117,
+ 347, 249, 91, 333, 86, 57, 353, 92, 60, 356,
+ 340, 101, 86, 34, 57, 105, 346, 92, 23, 86,
+ 52, 86, 352, 34, 24, 86, 89, 117, 80, 81,
+ 82, 83, 84, 200, 201, 125, 86, 42, 81, 82,
+ 83, 84, 86, 92, 86, 50, 51, 52, 53, 54,
+ 55, 86, 57, 86, 42, 60, 61, 62, 86, 192,
+ 86, 86, 86, 86, 86, 50, 316, 28, 208, 126,
+ 179, 180, 181, 78, 79, 80, 81, 82, 83, 84,
+ -1, 171, -1, 143, 171, -1, -1, -1, -1, 179,
+ 180, 181, -1, -1, -1, -1, 42, -1, -1, -1,
+ -1, -1, 192, 193, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, 208, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 10, 11, 78, 79, 80, 81, 82, 83, 84, 19,
+ 86, -1, -1, -1, -1, -1, -1, -1, 28, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 250, -1, 252, -1, 44, -1, -1, -1, 258, -1,
+ -1, 261, -1, -1, -1, 55, -1, -1, -1, -1,
+ 270, -1, -1, 273, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 315, -1, -1,
+ 80, 81, -1, 83, -1, -1, 86, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 306, 307, 308, 99,
+ 307, -1, -1, 313, -1, 315, 106, -1, -1, 319,
+ -1, -1, 322, -1, 324, 322, -1, -1, -1, -1,
+ -1, -1, 332, 333, -1, -1, 336, -1, -1, -1,
+ 340, -1, -1, 343, -1, -1, 346, 347, -1, 349,
+ -1, -1, 352, 353, -1, -1, 356, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, -1, -1, -1, -1, -1, -1,
+ -1, -1, 172, 173, 174, 175, -1, -1, -1, 41,
+ -1, -1, -1, -1, -1, -1, 186, 187, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, -1, 204, 205, -1, 207, -1, -1,
+ -1, 211, -1, 213, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, -1,
+ -1, -1, -1, 5, -1, -1, -1, 257, 10, -1,
-1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
+ 22, 23, -1, -1, 274, 27, -1, -1, -1, 31,
32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, -1, 44, 45, -1, 47, -1, -1, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, 5, 87, 88, -1, 90, 10,
- -1, -1, 13, 14, 15, -1, -1, -1, 19, 20,
+ -1, -1, -1, -1, -1, 77, -1, 327, -1, 81,
+ 82, -1, -1, -1, 5, -1, 88, 337, 90, 10,
+ 92, -1, 13, 14, 15, -1, -1, -1, 19, 20,
21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
-1, 42, -1, 44, 45, -1, 47, -1, -1, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 5, -1, 88, -1, 90,
+ 81, 82, 83, 84, -1, 5, 87, 88, -1, 90,
10, -1, -1, 13, 14, 15, -1, -1, -1, 19,
20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
-1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, 81, 82, -1, -1, -1, 5, -1, 88, 89,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, -1, -1, -1, -1, -1, -1, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, 5, 87, 88, -1,
90, 10, -1, -1, 13, 14, 15, -1, -1, -1,
19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
-1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
+ -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, -1, -1, -1, -1, -1, -1, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 5, 87, 88,
+ -1, 90, 10, -1, -1, 13, 14, 15, -1, -1,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
+ -1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, 5, -1,
+ 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
+ -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, -1, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, 81, 82, -1, -1, -1, 5,
+ -1, 88, 89, 90, 10, -1, -1, 13, 14, 15,
+ -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, -1, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
+ -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
+ -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
+ 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, -1, 42, -1, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
+ 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
+ -1, 88, 10, 90, -1, 13, 14, 15, -1, -1,
+ -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
+ -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
+ 88, 10, 90, -1, 13, 14, 15, -1, -1, -1,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
-1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
@@ -1252,7 +1297,7 @@ static const yytype_int16 yycheck[] =
20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
-1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
-1, 81, 82, -1, 5, -1, -1, -1, 88, 10,
@@ -1260,66 +1305,25 @@ static const yytype_int16 yycheck[] =
21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
-1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, -1, -1, -1, -1, 56, 57, 58, 59, -1,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
-1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
81, 82, -1, 5, -1, -1, -1, 88, 10, 90,
-1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, -1, -1, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
- 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, -1, -1, 56, 57, 58, 59, -1, -1, -1,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- -1, -1, 56, -1, 58, 59, -1, -1, -1, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
- -1, 13, -1, -1, 88, -1, 90, 19, 20, 21,
- 22, 23, -1, -1, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, 46, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, -1, 13, -1, -1, 77, -1, -1, 19, 20,
- 21, 22, 23, 24, 86, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 74, 13, -1, 77, -1, -1, -1,
- 19, 20, 21, 22, 23, 86, -1, 26, 27, 28,
- 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, 76, 77, -1,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, -1, 75, -1, 77,
- -1, -1, -1, 13, -1, -1, 16, -1, 86, 19,
+ -1, -1, -1, -1, 56, -1, 58, 59, -1, -1,
+ -1, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
+ -1, -1, -1, 13, -1, -1, 88, -1, 90, 19,
20, 21, 22, 23, -1, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, 46, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
- 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
+ 70, 71, 72, -1, 13, -1, -1, 77, -1, -1,
+ 19, 20, 21, 22, 23, 24, 86, 26, 27, 28,
29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
@@ -1330,32 +1334,45 @@ static const yytype_int16 yycheck[] =
37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, -1, -1, 13, -1, 76,
+ 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, -1, 75,
+ -1, 77, -1, -1, -1, 13, -1, -1, 16, -1,
+ 86, 19, 20, 21, 22, 23, -1, -1, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, -1, -1, 74, 13, -1,
77, -1, -1, -1, 19, 20, 21, 22, 23, 86,
-1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- 75, -1, 77, -1, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, 75, -1, 77, -1, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
+ 13, -1, 77, -1, -1, -1, 19, 20, 21, 22,
+ 23, 86, -1, 26, 27, 28, 29, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
+ -1, 13, 75, -1, 77, -1, -1, 19, 20, 21,
22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 13, -1, -1, 77, -1, -1, 19, 20,
+ -1, -1, 13, 75, -1, 77, -1, -1, 19, 20,
21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
@@ -1369,46 +1386,65 @@ static const yytype_int16 yycheck[] =
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
- 29, -1, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, -1, 44, 45, -1, 47, 48,
+ 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
+ 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 13, 14, 15, -1, -1, 77, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, 13, -1, -1, -1, -1, 77, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 50, 51, 52, 53, 54, 55, 77, 57, -1, -1,
- 60, 61, 62, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, 87, -1, 89,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, 89, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- 87, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, -1, 86, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, 86,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
- 79, 80, 81, 82, 83, 84
+ 69, 70, 71, -1, -1, 13, -1, -1, 77, -1,
+ -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
+ 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
+ 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
+ -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
+ 27, 28, 29, -1, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, -1, 42, -1, 44, 45, -1,
+ 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
+ 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 13, 14, 15, -1, -1,
+ 77, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
+ -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, -1, 13, -1, -1, -1, -1, 77,
+ 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
+ -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
+ 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
+ -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
+ 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 50, 51, 52, 53, 54, 55, 77, 57,
+ -1, -1, 60, 61, 62, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
+ -1, 89, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, 89, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, 87, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
+ 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
+ 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
+ -1, 86, 50, 51, 52, 53, 54, 55, -1, 57,
+ -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
+ 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
+ 78, 79, 80, 81, 82, 83, 84, 50, 51, 52,
+ 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
+ 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
+ 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, -1, -1, -1, 78, 79,
+ 80, 81, 82, 83, 84, 50, 51, 52, 53, -1,
+ -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1423,34 +1459,35 @@ static const yytype_uint8 yystos[] =
95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
115, 116, 117, 118, 119, 120, 39, 86, 35, 39,
40, 70, 77, 105, 106, 107, 5, 10, 14, 15,
- 27, 34, 56, 81, 82, 88, 90, 105, 111, 112,
- 124, 125, 128, 131, 132, 133, 135, 88, 135, 105,
- 39, 111, 135, 44, 45, 105, 125, 127, 105, 105,
- 111, 112, 106, 135, 106, 105, 109, 0, 96, 111,
- 135, 86, 86, 87, 135, 135, 133, 133, 133, 89,
- 135, 14, 15, 92, 105, 129, 130, 135, 137, 138,
- 88, 86, 86, 36, 50, 51, 52, 53, 54, 55,
- 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
- 84, 87, 124, 131, 134, 136, 135, 41, 54, 55,
- 57, 62, 106, 86, 86, 32, 58, 59, 105, 135,
- 42, 52, 114, 41, 86, 86, 86, 86, 42, 86,
- 86, 106, 86, 105, 36, 136, 87, 89, 92, 92,
- 91, 92, 87, 91, 91, 87, 137, 34, 135, 135,
+ 27, 34, 56, 67, 81, 82, 88, 90, 105, 111,
+ 112, 124, 125, 128, 131, 132, 133, 135, 137, 88,
+ 135, 105, 39, 111, 135, 44, 45, 105, 125, 127,
+ 105, 105, 111, 112, 106, 135, 106, 105, 109, 0,
+ 96, 111, 135, 86, 86, 87, 135, 135, 133, 135,
+ 133, 133, 89, 135, 14, 15, 92, 105, 129, 130,
+ 135, 138, 139, 88, 86, 86, 36, 50, 51, 52,
+ 53, 54, 55, 57, 60, 61, 62, 78, 79, 80,
+ 81, 82, 83, 84, 87, 124, 131, 134, 136, 137,
+ 135, 41, 54, 55, 57, 62, 106, 86, 86, 32,
+ 58, 59, 105, 135, 42, 52, 114, 41, 86, 86,
+ 86, 86, 42, 86, 86, 106, 86, 105, 36, 136,
+ 68, 69, 87, 89, 92, 92, 91, 92, 87, 91,
+ 91, 87, 138, 34, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 138, 50, 51, 52, 53,
- 54, 55, 57, 60, 61, 62, 78, 79, 80, 81,
- 82, 83, 84, 87, 86, 108, 86, 125, 126, 126,
- 126, 52, 86, 135, 135, 73, 86, 99, 100, 101,
- 102, 109, 86, 108, 121, 122, 123, 86, 34, 138,
- 135, 135, 135, 14, 15, 105, 130, 135, 89, 135,
+ 135, 139, 50, 51, 52, 53, 54, 55, 57, 60,
+ 61, 62, 78, 79, 80, 81, 82, 83, 84, 87,
+ 86, 108, 86, 125, 126, 126, 126, 52, 86, 135,
+ 135, 73, 86, 99, 100, 101, 102, 109, 86, 108,
+ 121, 122, 123, 86, 34, 133, 133, 139, 135, 135,
+ 135, 14, 15, 105, 130, 135, 89, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 138, 121, 24,
- 121, 86, 86, 86, 135, 121, 86, 105, 86, 76,
- 123, 121, 135, 89, 24, 74, 86, 108, 23, 42,
- 75, 106, 102, 86, 16, 86, 108, 86, 121, 42,
- 135, 86, 86, 104, 105, 121, 74, 135, 86, 121,
- 86, 87, 74, 86, 86, 121, 105, 86, 121, 75,
- 75, 86, 86
+ 135, 135, 135, 135, 135, 139, 121, 24, 121, 86,
+ 86, 86, 135, 121, 86, 105, 86, 76, 123, 121,
+ 135, 89, 24, 74, 86, 108, 23, 42, 75, 106,
+ 102, 86, 16, 86, 108, 86, 121, 42, 135, 86,
+ 86, 104, 105, 121, 74, 135, 86, 121, 86, 87,
+ 74, 86, 86, 121, 105, 86, 121, 75, 75, 86,
+ 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1472,9 +1509,10 @@ static const yytype_uint8 yyr1[] =
126, 127, 128, 128, 128, 129, 129, 130, 130, 130,
131, 132, 132, 133, 133, 133, 134, 134, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 136, 136, 136, 136,
+ 135, 135, 135, 135, 135, 135, 135, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 137, 137, 138, 138
+ 136, 136, 136, 136, 136, 136, 137, 137, 138, 138,
+ 139, 139
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1494,11 +1532,12 @@ static const yytype_int8 yyr2[] =
11, 12, 4, 6, 4, 0, 1, 1, 2, 1,
1, 1, 1, 1, 1, 2, 4, 1, 1, 1,
1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
- 3, 2, 2, 1, 1, 1, 1, 1, 1, 3,
+ 3, 2, 2, 1, 1, 1, 1, 1, 1, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 1, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 0, 1, 1, 3
+ 3, 3, 3, 3, 3, 3, 4, 4, 0, 1,
+ 1, 3
};
@@ -1772,49 +1811,49 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1776 "engines/director/lingo/lingo-gr.cpp"
+#line 1815 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1782 "engines/director/lingo/lingo-gr.cpp"
+#line 1821 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1788 "engines/director/lingo/lingo-gr.cpp"
+#line 1827 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1794 "engines/director/lingo/lingo-gr.cpp"
+#line 1833 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1800 "engines/director/lingo/lingo-gr.cpp"
+#line 1839 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1806 "engines/director/lingo/lingo-gr.cpp"
+#line 1845 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1812 "engines/director/lingo/lingo-gr.cpp"
+#line 1851 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1818 "engines/director/lingo/lingo-gr.cpp"
+#line 1857 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2082,7 +2121,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2086 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2093,7 +2132,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2097 "engines/director/lingo/lingo-gr.cpp"
+#line 2136 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2103,37 +2142,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2107 "engines/director/lingo/lingo-gr.cpp"
+#line 2146 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2113 "engines/director/lingo/lingo-gr.cpp"
+#line 2152 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2119 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2125 "engines/director/lingo/lingo-gr.cpp"
+#line 2164 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2131 "engines/director/lingo/lingo-gr.cpp"
+#line 2170 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2137 "engines/director/lingo/lingo-gr.cpp"
+#line 2176 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2144,7 +2183,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2148 "engines/director/lingo/lingo-gr.cpp"
+#line 2187 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2154,13 +2193,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
+#line 2197 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2164 "engines/director/lingo/lingo-gr.cpp"
+#line 2203 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2169,236 +2208,236 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2173 "engines/director/lingo/lingo-gr.cpp"
+#line 2212 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2180 "engines/director/lingo/lingo-gr.cpp"
+#line 2219 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2192 "engines/director/lingo/lingo-gr.cpp"
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2204 "engines/director/lingo/lingo-gr.cpp"
+#line 2243 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2210 "engines/director/lingo/lingo-gr.cpp"
+#line 2249 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2216 "engines/director/lingo/lingo-gr.cpp"
+#line 2255 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2222 "engines/director/lingo/lingo-gr.cpp"
+#line 2261 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2228 "engines/director/lingo/lingo-gr.cpp"
+#line 2267 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2234 "engines/director/lingo/lingo-gr.cpp"
+#line 2273 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2240 "engines/director/lingo/lingo-gr.cpp"
+#line 2279 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2246 "engines/director/lingo/lingo-gr.cpp"
+#line 2285 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2252 "engines/director/lingo/lingo-gr.cpp"
+#line 2291 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2258 "engines/director/lingo/lingo-gr.cpp"
+#line 2297 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2303 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 2309 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2315 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2282 "engines/director/lingo/lingo-gr.cpp"
+#line 2321 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2327 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2294 "engines/director/lingo/lingo-gr.cpp"
+#line 2333 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2300 "engines/director/lingo/lingo-gr.cpp"
+#line 2339 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2306 "engines/director/lingo/lingo-gr.cpp"
+#line 2345 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2312 "engines/director/lingo/lingo-gr.cpp"
+#line 2351 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2318 "engines/director/lingo/lingo-gr.cpp"
+#line 2357 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2324 "engines/director/lingo/lingo-gr.cpp"
+#line 2363 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2330 "engines/director/lingo/lingo-gr.cpp"
+#line 2369 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2336 "engines/director/lingo/lingo-gr.cpp"
+#line 2375 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2381 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2348 "engines/director/lingo/lingo-gr.cpp"
+#line 2387 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2354 "engines/director/lingo/lingo-gr.cpp"
+#line 2393 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2360 "engines/director/lingo/lingo-gr.cpp"
+#line 2399 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2366 "engines/director/lingo/lingo-gr.cpp"
+#line 2405 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tWHILE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2372 "engines/director/lingo/lingo-gr.cpp"
+#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWINDOW */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2417 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWITH */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2384 "engines/director/lingo/lingo-gr.cpp"
+#line 2423 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWITHIN */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2390 "engines/director/lingo/lingo-gr.cpp"
+#line 2429 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWORD */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2396 "engines/director/lingo/lingo-gr.cpp"
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* idlist: %empty */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2402 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* nonemptyidlist: ID */
@@ -2407,7 +2446,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2411 "engines/director/lingo/lingo-gr.cpp"
+#line 2450 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2415,67 +2454,67 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2419 "engines/director/lingo/lingo-gr.cpp"
+#line 2458 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* proc: ID cmdargs '\n' */
#line 373 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2425 "engines/director/lingo/lingo-gr.cpp"
+#line 2464 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: tPUT cmdargs '\n' */
#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2431 "engines/director/lingo/lingo-gr.cpp"
+#line 2470 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: tGO cmdargs '\n' */
#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2437 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* proc: tGO frameargs '\n' */
#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2443 "engines/director/lingo/lingo-gr.cpp"
+#line 2482 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* proc: tPLAY cmdargs '\n' */
#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2449 "engines/director/lingo/lingo-gr.cpp"
+#line 2488 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* proc: tPLAY frameargs '\n' */
#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2455 "engines/director/lingo/lingo-gr.cpp"
+#line 2494 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* proc: tNEXT tREPEAT '\n' */
#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2500 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* proc: tEXIT tREPEAT '\n' */
#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2467 "engines/director/lingo/lingo-gr.cpp"
+#line 2506 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* proc: tEXIT '\n' */
#line 381 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2512 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* proc: tASSERTERROR stmtoneliner */
#line 382 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2479 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* cmdargs: %empty */
@@ -2483,7 +2522,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2487 "engines/director/lingo/lingo-gr.cpp"
+#line 2526 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* cmdargs: expr */
@@ -2493,7 +2532,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* cmdargs: expr ',' nonemptyexprlist */
@@ -2502,7 +2541,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2506 "engines/director/lingo/lingo-gr.cpp"
+#line 2545 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* cmdargs: expr expr_nounarymath */
@@ -2513,7 +2552,7 @@ yyreduce:
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+#line 2556 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
@@ -2523,7 +2562,7 @@ yyreduce:
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2527 "engines/director/lingo/lingo-gr.cpp"
+#line 2566 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* cmdargs: '(' ')' */
@@ -2531,7 +2570,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2574 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -2540,7 +2579,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2544 "engines/director/lingo/lingo-gr.cpp"
+#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* frameargs: tFRAME expr */
@@ -2550,7 +2589,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2554 "engines/director/lingo/lingo-gr.cpp"
+#line 2593 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* frameargs: tMOVIE expr */
@@ -2561,7 +2600,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -2572,7 +2611,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* frameargs: expr tOF tMOVIE expr */
@@ -2583,7 +2622,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2587 "engines/director/lingo/lingo-gr.cpp"
+#line 2626 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* frameargs: tFRAME expr expr_nounarymath */
@@ -2594,49 +2633,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2598 "engines/director/lingo/lingo-gr.cpp"
+#line 2637 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 452 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2604 "engines/director/lingo/lingo-gr.cpp"
+#line 2643 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2616 "engines/director/lingo/lingo-gr.cpp"
+#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* asgn: tSET varorthe to expr '\n' */
#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2622 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* definevars: tGLOBAL idlist '\n' */
#line 460 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2628 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* definevars: tPROPERTY idlist '\n' */
#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2634 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* definevars: tINSTANCE idlist '\n' */
#line 462 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2640 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* ifstmt: tIF expr tTHEN stmt */
@@ -2645,14 +2684,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2688 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
#line 469 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2656 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -2663,7 +2702,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
@@ -2672,7 +2711,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2676 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
@@ -2681,35 +2720,35 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2724 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
#line 487 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2692 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2738 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 493 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2706 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 495 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2752 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* tell: tTELL expr tTO stmtoneliner */
@@ -2718,26 +2757,26 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 2722 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 503 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* when: tWHEN ID tTHEN expr */
#line 507 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* stmtlist: %empty */
#line 509 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* nonemptystmtlist: stmtlistline */
@@ -2748,7 +2787,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2752 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* nonemptystmtlist: stmtlist stmtlistline */
@@ -2758,73 +2797,73 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* stmtlistline: '\n' */
#line 527 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* simpleexpr_noparens_nounarymath: tINT */
#line 534 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* simpleexpr_noparens_nounarymath: tFLOAT */
#line 535 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* simpleexpr_noparens_nounarymath: tSYMBOL */
#line 536 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* simpleexpr_noparens_nounarymath: tSTRING */
#line 537 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2792 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
#line 538 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2798 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* var: ID */
#line 544 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* list: '[' exprlist ']' */
#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* list: '[' ':' ']' */
#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2822 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* list: '[' proplist ']' */
#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2828 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* proplist: proppair */
@@ -2833,7 +2872,7 @@ yyreduce:
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2876 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* proplist: proplist ',' proppair */
@@ -2841,274 +2880,286 @@ yyreduce:
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2845 "engines/director/lingo/lingo-gr.cpp"
+#line 2884 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* proppair: tSYMBOL ':' expr */
#line 568 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2851 "engines/director/lingo/lingo-gr.cpp"
+#line 2890 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* proppair: ID ':' expr */
#line 569 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2896 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* proppair: tSTRING ':' expr */
#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2863 "engines/director/lingo/lingo-gr.cpp"
+#line 2902 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* parens: '(' expr ')' */
#line 573 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2869 "engines/director/lingo/lingo-gr.cpp"
+#line 2908 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* unarymath: '+' simpleexpr */
#line 575 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2875 "engines/director/lingo/lingo-gr.cpp"
+#line 2914 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* unarymath: '-' simpleexpr */
#line 576 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2920 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* expr: expr '+' expr */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 150: /* expr: expr '+' expr */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 2926 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr '-' expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 151: /* expr: expr '-' expr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2893 "engines/director/lingo/lingo-gr.cpp"
+#line 2932 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr '*' expr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 152: /* expr: expr '*' expr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2899 "engines/director/lingo/lingo-gr.cpp"
+#line 2938 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr '/' expr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 153: /* expr: expr '/' expr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2905 "engines/director/lingo/lingo-gr.cpp"
+#line 2944 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr tMOD expr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 154: /* expr: expr tMOD expr */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2911 "engines/director/lingo/lingo-gr.cpp"
+#line 2950 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr '>' expr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 155: /* expr: expr '>' expr */
+#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2917 "engines/director/lingo/lingo-gr.cpp"
+#line 2956 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr '<' expr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 156: /* expr: expr '<' expr */
+#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2923 "engines/director/lingo/lingo-gr.cpp"
+#line 2962 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr tEQ expr */
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 157: /* expr: expr tEQ expr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2929 "engines/director/lingo/lingo-gr.cpp"
+#line 2968 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tNEQ expr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 158: /* expr: expr tNEQ expr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2935 "engines/director/lingo/lingo-gr.cpp"
+#line 2974 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tGE expr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr tGE expr */
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2941 "engines/director/lingo/lingo-gr.cpp"
+#line 2980 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tLE expr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 160: /* expr: expr tLE expr */
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2947 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr tAND expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 161: /* expr: expr tAND expr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2953 "engines/director/lingo/lingo-gr.cpp"
+#line 2992 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr: expr tOR expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 162: /* expr: expr tOR expr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2959 "engines/director/lingo/lingo-gr.cpp"
+#line 2998 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr: expr '&' expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr: expr '&' expr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2965 "engines/director/lingo/lingo-gr.cpp"
+#line 3004 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr: expr tCONCAT expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr: expr tCONCAT expr */
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2971 "engines/director/lingo/lingo-gr.cpp"
+#line 3010 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr: expr tCONTAINS expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 165: /* expr: expr tCONTAINS expr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2977 "engines/director/lingo/lingo-gr.cpp"
+#line 3016 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr: expr tSTARTS expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr: expr tSTARTS expr */
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2983 "engines/director/lingo/lingo-gr.cpp"
+#line 3022 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 3028 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 3034 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3001 "engines/director/lingo/lingo-gr.cpp"
+#line 3040 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 3046 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 624 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 3052 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 625 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3058 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3064 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 176: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3070 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 3076 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 179: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3088 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 180: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 631 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 181: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 182: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 633 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3067 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 183: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3073 "engines/director/lingo/lingo-gr.cpp"
+#line 3112 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 184: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 635 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3118 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 185: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3085 "engines/director/lingo/lingo-gr.cpp"
+#line 3124 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 186: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 639 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3130 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* exprlist: %empty */
-#line 637 "engines/director/lingo/lingo-gr.y"
+ case 187: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 640 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3136 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 188: /* exprlist: %empty */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3091 "engines/director/lingo/lingo-gr.cpp"
+#line 3142 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* nonemptyexprlist: expr */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 190: /* nonemptyexprlist: expr */
+#line 647 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3100 "engines/director/lingo/lingo-gr.cpp"
+#line 3151 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 191: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 651 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3108 "engines/director/lingo/lingo-gr.cpp"
+#line 3159 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3112 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3307,7 +3358,7 @@ yyreturn:
return yyresult;
}
-#line 650 "engines/director/lingo/lingo-gr.y"
+#line 656 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index d7f080a388..f57b4b4f4b 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -173,7 +173,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// EXPRESSION
%type<node> simpleexpr_noparens_nounarymath simpleexpr simpleexpr_noparens simpleexpr_nounarymath
%type<node> parens unarymath
-%type<node> expr expr_nounarymath
+%type<node> expr expr_nounarymath sprite
%type<node> var varorchunk varorthe
%type<node> list proppair
%type<nodelist> proplist exprlist nonemptyexprlist
@@ -591,6 +591,7 @@ simpleexpr_nounarymath: simpleexpr_noparens_nounarymath
// REMEMBER TO SYNC THIS WITH expr_nounarymath!
expr: simpleexpr
+ | sprite
| expr[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
| expr[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
| expr[a] '*' expr[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
@@ -615,6 +616,7 @@ expr: simpleexpr
// Without this, `cmd 1 + 1` could be interpreted as either `cmd(1 + 1)` or `cmd(1, +1)`.
// We only want to allow the first interpretation, so we must exclude unary math from the second expression.
expr_nounarymath: simpleexpr_nounarymath
+ | sprite
| expr_nounarymath[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
| expr_nounarymath[a] '-' expr[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
| expr_nounarymath[a] '*' expr[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
@@ -634,6 +636,10 @@ expr_nounarymath: simpleexpr_nounarymath
| expr_nounarymath[a] tSTARTS expr[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
;
+sprite: tSPRITE expr tINTERSECTS simpleexpr { $$ = new IntersectsNode($expr, $simpleexpr); }
+ | tSPRITE expr tWITHIN simpleexpr { $$ = new WithinNode($expr, $simpleexpr); }
+ ;
+
exprlist: /* empty */ { $$ = new NodeList; }
| nonemptyexprlist
;
Commit: 089cd9bb36e69fd60c3f3d1b9fd8065e2438fca4
https://github.com/scummvm/scummvm/commit/089cd9bb36e69fd60c3f3d1b9fd8065e2438fca4
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add error handling to LingoCompiler
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index b022f82f34..f9c698a826 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -124,43 +124,43 @@ public:
NodeVisitor() {}
virtual ~NodeVisitor() {}
- virtual void visitScriptNode(ScriptNode *node) = 0;
- virtual void visitFactoryNode(FactoryNode *node) = 0;
- virtual void visitHandlerNode(HandlerNode *node) = 0;
- virtual void visitCmdNode(CmdNode *node) = 0;
- virtual void visitPutIntoNode(PutIntoNode *node) = 0;
- virtual void visitPutAfterNode(PutAfterNode *node) = 0;
- virtual void visitPutBeforeNode(PutBeforeNode *node) = 0;
- virtual void visitSetNode(SetNode *node) = 0;
- virtual void visitGlobalNode(GlobalNode *node) = 0;
- virtual void visitPropertyNode(PropertyNode *node) = 0;
- virtual void visitInstanceNode(InstanceNode *node) = 0;
- virtual void visitIfStmtNode(IfStmtNode *node) = 0;
- virtual void visitIfElseStmtNode(IfElseStmtNode *node) = 0;
- virtual void visitRepeatWhileNode(RepeatWhileNode *node) = 0;
- virtual void visitRepeatWithToNode(RepeatWithToNode *node) = 0;
- virtual void visitNextRepeatNode(NextRepeatNode *node) = 0;
- virtual void visitExitRepeatNode(ExitRepeatNode *node) = 0;
- virtual void visitExitNode(ExitNode *node) = 0;
- virtual void visitTellNode(TellNode *node) = 0;
- virtual void visitWhenNode(WhenNode *node) = 0;
- virtual void visitAssertErrorNode(AssertErrorNode *node) = 0;
- virtual void visitIntNode(IntNode *node) = 0;
- virtual void visitFloatNode(FloatNode *node) = 0;
- virtual void visitSymbolNode(SymbolNode *node) = 0;
- virtual void visitStringNode(StringNode *node) = 0;
- virtual void visitListNode(ListNode *node) = 0;
- virtual void visitPropListNode(PropListNode *node) = 0;
- virtual void visitPropPairNode(PropPairNode *node) = 0;
- virtual void visitFuncNode(FuncNode *node) = 0;
- virtual void visitVarNode(VarNode *node) = 0;
- virtual void visitParensNode(ParensNode *node) = 0;
- virtual void visitUnaryOpNode(UnaryOpNode *node) = 0;
- virtual void visitBinaryOpNode(BinaryOpNode *node) = 0;
- virtual void visitFrameNode(FrameNode *node) = 0;
- virtual void visitMovieNode(MovieNode *node) = 0;
- virtual void visitIntersectsNode(IntersectsNode *node) = 0;
- virtual void visitWithinNode(WithinNode *node) = 0;
+ virtual bool visitScriptNode(ScriptNode *node) = 0;
+ virtual bool visitFactoryNode(FactoryNode *node) = 0;
+ virtual bool visitHandlerNode(HandlerNode *node) = 0;
+ virtual bool visitCmdNode(CmdNode *node) = 0;
+ virtual bool visitPutIntoNode(PutIntoNode *node) = 0;
+ virtual bool visitPutAfterNode(PutAfterNode *node) = 0;
+ virtual bool visitPutBeforeNode(PutBeforeNode *node) = 0;
+ virtual bool visitSetNode(SetNode *node) = 0;
+ virtual bool visitGlobalNode(GlobalNode *node) = 0;
+ virtual bool visitPropertyNode(PropertyNode *node) = 0;
+ virtual bool visitInstanceNode(InstanceNode *node) = 0;
+ virtual bool visitIfStmtNode(IfStmtNode *node) = 0;
+ virtual bool visitIfElseStmtNode(IfElseStmtNode *node) = 0;
+ virtual bool visitRepeatWhileNode(RepeatWhileNode *node) = 0;
+ virtual bool visitRepeatWithToNode(RepeatWithToNode *node) = 0;
+ virtual bool visitNextRepeatNode(NextRepeatNode *node) = 0;
+ virtual bool visitExitRepeatNode(ExitRepeatNode *node) = 0;
+ virtual bool visitExitNode(ExitNode *node) = 0;
+ virtual bool visitTellNode(TellNode *node) = 0;
+ virtual bool visitWhenNode(WhenNode *node) = 0;
+ virtual bool visitAssertErrorNode(AssertErrorNode *node) = 0;
+ virtual bool visitIntNode(IntNode *node) = 0;
+ virtual bool visitFloatNode(FloatNode *node) = 0;
+ virtual bool visitSymbolNode(SymbolNode *node) = 0;
+ virtual bool visitStringNode(StringNode *node) = 0;
+ virtual bool visitListNode(ListNode *node) = 0;
+ virtual bool visitPropListNode(PropListNode *node) = 0;
+ virtual bool visitPropPairNode(PropPairNode *node) = 0;
+ virtual bool visitFuncNode(FuncNode *node) = 0;
+ virtual bool visitVarNode(VarNode *node) = 0;
+ virtual bool visitParensNode(ParensNode *node) = 0;
+ virtual bool visitUnaryOpNode(UnaryOpNode *node) = 0;
+ virtual bool visitBinaryOpNode(BinaryOpNode *node) = 0;
+ virtual bool visitFrameNode(FrameNode *node) = 0;
+ virtual bool visitMovieNode(MovieNode *node) = 0;
+ virtual bool visitIntersectsNode(IntersectsNode *node) = 0;
+ virtual bool visitWithinNode(WithinNode *node) = 0;
};
/* Node */
@@ -173,7 +173,7 @@ struct Node {
Node(NodeType t) : type(t), isExpression(false), isStatement(false), isLoop(false) {}
virtual ~Node() {}
- virtual void accept(NodeVisitor *visitor) = 0;
+ virtual bool accept(NodeVisitor *visitor) = 0;
};
/* ExprNode */
@@ -215,8 +215,8 @@ struct ScriptNode : Node {
virtual ~ScriptNode() {
deleteList(children);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitScriptNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitScriptNode(this);
}
};
@@ -232,8 +232,8 @@ struct FactoryNode : Node {
delete name;
deleteList(methods);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitFactoryNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitFactoryNode(this);
}
};
@@ -251,8 +251,8 @@ struct HandlerNode : Node {
deleteList(args);
deleteList(stmts);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitHandlerNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitHandlerNode(this);
}
};
@@ -268,8 +268,8 @@ struct CmdNode : StmtNode {
delete name;
deleteList(args);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitCmdNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitCmdNode(this);
}
};
@@ -285,8 +285,8 @@ struct PutIntoNode : StmtNode {
delete val;
delete var;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPutIntoNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPutIntoNode(this);
}
};
@@ -302,8 +302,8 @@ struct PutAfterNode : StmtNode {
delete val;
delete var;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPutAfterNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPutAfterNode(this);
}
};
@@ -319,8 +319,8 @@ struct PutBeforeNode : StmtNode {
delete val;
delete var;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPutBeforeNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPutBeforeNode(this);
}
};
@@ -336,8 +336,8 @@ struct SetNode : StmtNode {
delete var;
delete val;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitSetNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitSetNode(this);
}
};
@@ -350,8 +350,8 @@ struct GlobalNode : StmtNode {
virtual ~GlobalNode() {
delete names;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitGlobalNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitGlobalNode(this);
}
};
@@ -364,8 +364,8 @@ struct PropertyNode : StmtNode {
virtual ~PropertyNode() {
delete names;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPropertyNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPropertyNode(this);
}
};
@@ -378,8 +378,8 @@ struct InstanceNode : StmtNode {
virtual ~InstanceNode() {
delete names;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitInstanceNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitInstanceNode(this);
}
};
@@ -395,8 +395,8 @@ struct IfStmtNode : StmtNode {
delete cond;
deleteList(stmts);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitIfStmtNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitIfStmtNode(this);
}
};
@@ -414,8 +414,8 @@ struct IfElseStmtNode : StmtNode {
deleteList(stmts1);
deleteList(stmts2);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitIfElseStmtNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitIfElseStmtNode(this);
}
};
@@ -431,8 +431,8 @@ struct RepeatWhileNode : LoopNode {
delete cond;
deleteList(stmts);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitRepeatWhileNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitRepeatWhileNode(this);
}
};
@@ -453,8 +453,8 @@ struct RepeatWithToNode : LoopNode {
delete end;
deleteList(stmts);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitRepeatWithToNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitRepeatWithToNode(this);
}
};
@@ -463,8 +463,8 @@ struct RepeatWithToNode : LoopNode {
struct NextRepeatNode : StmtNode {
NextRepeatNode() : StmtNode(kNextRepeatNode) {}
virtual ~NextRepeatNode() {}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitNextRepeatNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitNextRepeatNode(this);
}
};
@@ -473,8 +473,8 @@ struct NextRepeatNode : StmtNode {
struct ExitRepeatNode : StmtNode {
ExitRepeatNode() : StmtNode(kExitRepeatNode) {}
virtual ~ExitRepeatNode() {}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitExitRepeatNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitExitRepeatNode(this);
}
};
@@ -483,8 +483,8 @@ struct ExitRepeatNode : StmtNode {
struct ExitNode : StmtNode {
ExitNode() : StmtNode(kExitNode) {}
virtual ~ExitNode() {}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitExitNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitExitNode(this);
}
};
@@ -500,8 +500,8 @@ struct TellNode : StmtNode {
delete target;
deleteList(stmts);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitTellNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTellNode(this);
}
};
@@ -517,8 +517,8 @@ struct WhenNode : StmtNode {
delete event;
delete code;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitWhenNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitWhenNode(this);
}
};
@@ -531,8 +531,8 @@ struct AssertErrorNode : StmtNode {
virtual ~AssertErrorNode() {
delete stmt;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitAssertErrorNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitAssertErrorNode(this);
}
};
@@ -543,8 +543,8 @@ struct IntNode : ExprNode {
IntNode(int valIn) : ExprNode(kIntNode), val(valIn) {}
virtual ~IntNode() = default;
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitIntNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitIntNode(this);
}
};
@@ -555,8 +555,8 @@ struct FloatNode : ExprNode {
FloatNode(double valIn) : ExprNode(kFloatNode), val(valIn) {}
virtual ~FloatNode() = default;
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitFloatNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitFloatNode(this);
}
};
@@ -569,8 +569,8 @@ struct SymbolNode : ExprNode {
virtual ~SymbolNode() {
delete val;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitSymbolNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitSymbolNode(this);
}
};
@@ -583,8 +583,8 @@ struct StringNode : ExprNode {
virtual ~StringNode() {
delete val;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitStringNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitStringNode(this);
}
};
@@ -597,8 +597,8 @@ struct ListNode : ExprNode {
virtual ~ListNode() {
deleteList(items);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitListNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitListNode(this);
}
};
@@ -611,8 +611,8 @@ struct PropListNode : ExprNode {
virtual ~PropListNode() {
deleteList(items);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPropListNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPropListNode(this);
}
};
@@ -628,8 +628,8 @@ struct PropPairNode : ExprNode {
delete key;
delete val;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitPropPairNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitPropPairNode(this);
}
};
@@ -645,8 +645,8 @@ struct FuncNode : ExprNode {
delete name;
deleteList(args);
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitFuncNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitFuncNode(this);
}
};
@@ -659,8 +659,8 @@ struct VarNode : ExprNode {
virtual ~VarNode() {
delete name;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitVarNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitVarNode(this);
}
};
@@ -673,8 +673,8 @@ struct ParensNode : ExprNode {
virtual ~ParensNode() {
delete expr;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitParensNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitParensNode(this);
}
};
@@ -688,8 +688,8 @@ struct UnaryOpNode : ExprNode {
virtual ~UnaryOpNode() {
delete arg;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitUnaryOpNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitUnaryOpNode(this);
}
};
@@ -705,8 +705,8 @@ struct BinaryOpNode : ExprNode {
delete a;
delete b;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitBinaryOpNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitBinaryOpNode(this);
}
};
@@ -719,8 +719,8 @@ struct FrameNode : ExprNode {
virtual ~FrameNode() {
delete arg;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitFrameNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitFrameNode(this);
}
};
@@ -733,8 +733,8 @@ struct MovieNode : ExprNode {
virtual ~MovieNode() {
delete arg;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitMovieNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitMovieNode(this);
}
};
@@ -750,8 +750,8 @@ struct IntersectsNode : ExprNode {
delete sprite1;
delete sprite2;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitIntersectsNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitIntersectsNode(this);
}
};
@@ -767,8 +767,8 @@ struct WithinNode : ExprNode {
delete sprite1;
delete sprite2;
}
- virtual void accept(NodeVisitor *visitor) {
- visitor->visitWithinNode(this);
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitWithinNode(this);
}
};
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index c7c0824a87..a84ee236a9 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -55,6 +55,24 @@
namespace Director {
+#define COMPILE(node) \
+ if (!(node)->accept(this)) \
+ return false; \
+
+#define COMPILE_REF(node) \
+ _refMode = true; \
+ if (!(node)->accept(this)) { \
+ _refMode = false; \
+ return false; \
+ } \
+ _refMode = false;
+
+#define COMPILE_LIST(list) \
+ for (uint i = 0; i < (list)->size(); i++) { \
+ if (!(*(list))[i]->accept(this)) \
+ return false; \
+ }
+
LingoCompiler::LingoCompiler() {
_assemblyAST = nullptr;
_assemblyArchive = nullptr;
@@ -103,10 +121,21 @@ ScriptContext *LingoCompiler::compileLingo(const char *code, LingoArchive *archi
// Parse the Lingo and build an AST
parse(code);
+ if (!_assemblyAST) {
+ delete _assemblyContext;
+ delete _currentAssembly;
+ delete _methodVars;
+ return nullptr;
+ }
// Generate bytecode
- if (_assemblyAST) {
- compile(_assemblyAST);
+ if (!_assemblyAST->accept(this)) {
+ _hadError = true;
+ delete _assemblyContext;
+ delete _currentAssembly;
+ delete _methodVars;
+ delete _assemblyAST;
+ return nullptr;
}
// for D4 and above, there usually won't be any code left.
@@ -362,45 +391,31 @@ void LingoCompiler::parseMenu(const char *code) {
warning("STUB: parseMenu");
}
-void LingoCompiler::compile(Node *node) {
- node->accept(this);
-}
-
-void LingoCompiler::compileRef(Node *node) {
- _refMode = true;
- node->accept(this);
- _refMode = false;
-}
-
-void LingoCompiler::compileList(NodeList *nodes) {
- for (uint i = 0; i < nodes->size(); i++) {
- compile((*nodes)[i]);
- }
-}
-
/* ScriptNode */
-void LingoCompiler::visitScriptNode(ScriptNode *node) {
- compileList(node->children);
+bool LingoCompiler::visitScriptNode(ScriptNode *node) {
+ COMPILE_LIST(node->children);
+ return true;
}
/* FactoryNode */
-void LingoCompiler::visitFactoryNode(FactoryNode *node) {
+bool LingoCompiler::visitFactoryNode(FactoryNode *node) {
_inFactory = true;
ScriptContext *mainContext = _assemblyContext;
_assemblyContext = new ScriptContext(mainContext->getName(), mainContext->_archive, mainContext->_scriptType, mainContext->_id);
- compileList(node->methods);
+ COMPILE_LIST(node->methods);
registerFactory(*node->name);
_inFactory = false;
_assemblyContext = mainContext;
+ return true;
}
/* HandlerNode */
-void LingoCompiler::visitHandlerNode(HandlerNode *node) {
+bool LingoCompiler::visitHandlerNode(HandlerNode *node) {
_indef = true;
ScriptData *mainAssembly = _currentAssembly;
_currentAssembly = new ScriptData;
@@ -417,7 +432,7 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
}
}
- compileList(node->stmts);
+ COMPILE_LIST(node->stmts);
code1(LC::c_procret);
if (debugChannelSet(-1, kDebugFewFramesOnly) || debugChannelSet(1, kDebugCompile))
@@ -453,11 +468,12 @@ void LingoCompiler::visitHandlerNode(HandlerNode *node) {
_currentAssembly = mainAssembly;
delete _methodVars;
_methodVars = mainMethodVars;
+ return true;
}
/* CmdNode */
-void LingoCompiler::visitCmdNode(CmdNode *node) {
+bool LingoCompiler::visitCmdNode(CmdNode *node) {
if (node->name->equalsIgnoreCase("go") && node->args->size() == 1 && (*node->args)[0]->type == kVarNode){
VarNode *var = static_cast<VarNode *>((*node->args)[0]);
if (var->name->equalsIgnoreCase("loop") ||
@@ -466,7 +482,7 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
code1(LC::c_symbolpush);
codeString(var->name->c_str());
codeCmd(node->name, 1);
- return;
+ return true;
}
}
@@ -475,7 +491,7 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
VarNode *var = static_cast<VarNode *>((*node->args)[0]);
if (var->name->equalsIgnoreCase("done")) {
codeCmd(node->name, 0);
- return;
+ return true;
}
}
@@ -486,11 +502,11 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
code1(LC::c_symbolpush);
codeString(static_cast<VarNode *>(arg)->name->c_str());
} else {
- compile(arg);
+ COMPILE(arg);
}
}
codeCmd(node->name, node->args->size());
- return;
+ return true;
}
if (node->name->equalsIgnoreCase("sound") && node->args->size() >= 1 && (*node->args)[0]->type == kVarNode) {
@@ -503,111 +519,121 @@ void LingoCompiler::visitCmdNode(CmdNode *node) {
code1(LC::c_symbolpush);
codeString(var->name->c_str());
for (uint i = 1; i < node->args->size(); i++) {
- compile((*node->args)[i]);
+ COMPILE((*node->args)[i]);
}
codeCmd(node->name, node->args->size());
- return;
+ return true;
}
}
- compileList(node->args);
+ COMPILE_LIST(node->args);
codeCmd(node->name, node->args->size());
+ return true;
}
/* PutIntoNode */
-void LingoCompiler::visitPutIntoNode(PutIntoNode *node) {
+bool LingoCompiler::visitPutIntoNode(PutIntoNode *node) {
if (node->var->type == kVarNode) {
registerMethodVar(*static_cast<VarNode *>(node->var)->name);
}
- compile(node->val);
- compileRef(node->var);
+ COMPILE(node->val);
+ COMPILE_REF(node->var);
code1(LC::c_assign);
+ return true;
}
/* PutAfterNode */
-void LingoCompiler::visitPutAfterNode(PutAfterNode *node) {
+bool LingoCompiler::visitPutAfterNode(PutAfterNode *node) {
if (node->var->type == kVarNode) {
registerMethodVar(*static_cast<VarNode *>(node->var)->name);
}
- compile(node->val);
- compileRef(node->var);
+ COMPILE(node->val);
+ COMPILE_REF(node->var);
code1(LC::c_putafter);
+ return true;
}
/* PutBeforeNode */
-void LingoCompiler::visitPutBeforeNode(PutBeforeNode *node) {
+bool LingoCompiler::visitPutBeforeNode(PutBeforeNode *node) {
if (node->var->type == kVarNode) {
registerMethodVar(*static_cast<VarNode *>(node->var)->name);
}
- compile(node->val);
- compileRef(node->var);
+ COMPILE(node->val);
+ COMPILE_REF(node->var);
code1(LC::c_putbefore);
+ return true;
}
/* SetNode */
-void LingoCompiler::visitSetNode(SetNode *node) {
+bool LingoCompiler::visitSetNode(SetNode *node) {
if (node->var->type == kVarNode) {
registerMethodVar(*static_cast<VarNode *>(node->var)->name);
}
- compile(node->val);
- compileRef(node->var);
+ COMPILE(node->val);
+ COMPILE_REF(node->var);
code1(LC::c_assign);
+ return true;
}
/* GlobalNode */
-void LingoCompiler::visitGlobalNode(GlobalNode *node) {
+bool LingoCompiler::visitGlobalNode(GlobalNode *node) {
for (uint i = 0; i < node->names->size(); i++) {
registerMethodVar(*(*node->names)[i], kVarGlobal);
}
+ return true;
}
/* PropertyNode */
-void LingoCompiler::visitPropertyNode(PropertyNode *node) {
+bool LingoCompiler::visitPropertyNode(PropertyNode *node) {
for (uint i = 0; i < node->names->size(); i++) {
registerMethodVar(*(*node->names)[i], kVarProperty);
}
+ return true;
}
/* InstanceNode */
-void LingoCompiler::visitInstanceNode(InstanceNode *node) {
+bool LingoCompiler::visitInstanceNode(InstanceNode *node) {
for (uint i = 0; i < node->names->size(); i++) {
registerMethodVar(*(*node->names)[i], kVarInstance);
}
+ return true;
}
/* IfStmtNode */
-void LingoCompiler::visitIfStmtNode(IfStmtNode *node) {
- compile(node->cond);
+bool LingoCompiler::visitIfStmtNode(IfStmtNode *node) {
+ COMPILE(node->cond);
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- compileList(node->stmts);
+ COMPILE_LIST(node->stmts);
uint endPos = _currentAssembly->size();
inst jzOffset = 0;
WRITE_UINT32(&jzOffset, endPos - jzPos);
(*_currentAssembly)[jzPos + 1] = jzOffset;
+
+ return true;
}
/* IfElseStmtNode */
-void LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
- compile(node->cond);
+bool LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
+ COMPILE(node->cond);
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- compileList(node->stmts1);
+ COMPILE_LIST(node->stmts1);
uint jmpPos = _currentAssembly->size();
code2(LC::c_jump, 0);
uint block2StartPos = _currentAssembly->size();
- compileList(node->stmts2);
+ COMPILE_LIST(node->stmts2);
uint endPos = _currentAssembly->size();
inst jzOffset = 0;
@@ -617,19 +643,21 @@ void LingoCompiler::visitIfElseStmtNode(IfElseStmtNode *node) {
inst jmpOffset = 0;
WRITE_UINT32(&jmpOffset, endPos - jmpPos);
(*_currentAssembly)[jmpPos + 1] = jmpOffset;
+
+ return true;
}
/* RepeatWhileNode */
-void LingoCompiler::visitRepeatWhileNode(RepeatWhileNode *node) {
+bool LingoCompiler::visitRepeatWhileNode(RepeatWhileNode *node) {
LoopNode *prevLoop = _currentLoop;
_currentLoop = node;
uint startPos = _currentAssembly->size();
- compile(node->cond);
+ COMPILE(node->cond);
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- compileList(node->stmts);
+ COMPILE_LIST(node->stmts);
uint jmpPos = _currentAssembly->size();
code2(LC::c_jump, 0);
uint endPos = _currentAssembly->size();
@@ -644,20 +672,22 @@ void LingoCompiler::visitRepeatWhileNode(RepeatWhileNode *node) {
updateLoopJumps(jmpPos, endPos);
_currentLoop = prevLoop;
+
+ return true;
}
/* RepeatWithToNode */
-void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
+bool LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
LoopNode *prevLoop = _currentLoop;
_currentLoop = node;
- compile(node->start);
+ COMPILE(node->start);
codeVarSet(*node->var);
uint startPos = _currentAssembly->size();
codeVarGet(*node->var);
- compile(node->end);
+ COMPILE(node->end);
if (node->down) {
code1(LC::c_ge);
} else {
@@ -666,7 +696,7 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
uint jzPos = _currentAssembly->size();
code2(LC::c_jumpifz, 0);
- compileList(node->stmts);
+ COMPILE_LIST(node->stmts);
uint incrementPos = _currentAssembly->size();
codeVarGet(*node->var);
@@ -693,189 +723,213 @@ void LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
updateLoopJumps(incrementPos, endPos);
_currentLoop = prevLoop;
+
+ return true;
}
/* NextRepeatNode */
-void LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
- if (_currentLoop) {
- _currentLoop->nextRepeats.push_back(_currentAssembly->size());
- code2(LC::c_jump, 0);
- } else {
- warning("# LINGO: next repeat not inside repeat loop");
+bool LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
+ if (!_currentLoop) {
+ warning("LingoCompiler::visitNextRepeatNode: next repeat not inside repeat loop");
+ return false;
}
+ _currentLoop->nextRepeats.push_back(_currentAssembly->size());
+ code2(LC::c_jump, 0);
+ return true;
}
/* ExitRepeatNode */
-void LingoCompiler::visitExitRepeatNode(ExitRepeatNode *node) {
- if (_currentLoop) {
- _currentLoop->exitRepeats.push_back(_currentAssembly->size());
- code2(LC::c_jump, 0);
- } else {
- warning("# LINGO: exit repeat not inside repeat loop");
+bool LingoCompiler::visitExitRepeatNode(ExitRepeatNode *node) {
+ if (!_currentLoop) {
+ warning("LingoCompiler::visitExitRepeatLoop: exit repeat not inside repeat loop");
+ return false;
}
+ _currentLoop->exitRepeats.push_back(_currentAssembly->size());
+ code2(LC::c_jump, 0);
+ return true;
}
/* ExitNode */
-void LingoCompiler::visitExitNode(ExitNode *node) {
+bool LingoCompiler::visitExitNode(ExitNode *node) {
code1(LC::c_procret);
+ return true;
}
/* TellNode */
-void LingoCompiler::visitTellNode(TellNode *node) {
- compile(node->target);
+bool LingoCompiler::visitTellNode(TellNode *node) {
+ COMPILE(node->target);
code1(LC::c_tell);
- compileList(node->stmts);
+ COMPILE_LIST(node->stmts);
code1(LC::c_telldone);
+ return true;
}
/* WhenNode */
-void LingoCompiler::visitWhenNode(WhenNode *node) {
- compile(node->code);
+bool LingoCompiler::visitWhenNode(WhenNode *node) {
+ COMPILE(node->code);
code1(LC::c_whencode);
codeString(node->event->c_str());
+ return true;
}
/* AssertErrorNode */
-void LingoCompiler::visitAssertErrorNode(AssertErrorNode *node) {
+bool LingoCompiler::visitAssertErrorNode(AssertErrorNode *node) {
code1(LC::c_asserterror);
- compile(node->stmt);
+ COMPILE(node->stmt);
code1(LC::c_asserterrordone);
+ return true;
}
/* IntNode */
-void LingoCompiler::visitIntNode(IntNode *node) {
+bool LingoCompiler::visitIntNode(IntNode *node) {
code1(LC::c_intpush);
codeInt(node->val);
+ return true;
}
/* FloatNode */
-void LingoCompiler::visitFloatNode(FloatNode *node) {
+bool LingoCompiler::visitFloatNode(FloatNode *node) {
code1(LC::c_floatpush);
codeFloat(node->val);
+ return true;
}
/* SymbolNode */
-void LingoCompiler::visitSymbolNode(SymbolNode *node) {
+bool LingoCompiler::visitSymbolNode(SymbolNode *node) {
code1(LC::c_symbolpush);
codeString(node->val->c_str());
+ return true;
}
/* StringNode */
-void LingoCompiler::visitStringNode(StringNode *node) {
+bool LingoCompiler::visitStringNode(StringNode *node) {
code1(LC::c_stringpush);
codeString(node->val->c_str());
+ return true;
}
/* ListNode */
-void LingoCompiler::visitListNode(ListNode *node) {
- compileList(node->items);
+bool LingoCompiler::visitListNode(ListNode *node) {
+ COMPILE_LIST(node->items);
code1(LC::c_arraypush);
codeInt(node->items->size());
+ return true;
}
/* PropListNode */
-void LingoCompiler::visitPropListNode(PropListNode *node) {
- compileList(node->items);
+bool LingoCompiler::visitPropListNode(PropListNode *node) {
+ COMPILE_LIST(node->items);
code1(LC::c_proparraypush);
codeInt(node->items->size());
+ return true;
}
/* PropPairNode */
-void LingoCompiler::visitPropPairNode(PropPairNode *node) {
- compile(node->key);
- compile(node->val);
+bool LingoCompiler::visitPropPairNode(PropPairNode *node) {
+ COMPILE(node->key);
+ COMPILE(node->val);
+ return true;
}
/* FuncNode */
-void LingoCompiler::visitFuncNode(FuncNode *node) {
- compileList(node->args);
+bool LingoCompiler::visitFuncNode(FuncNode *node) {
+ COMPILE_LIST(node->args);
codeFunc(node->name, node->args->size());
+ return true;
}
/* VarNode */
-void LingoCompiler::visitVarNode(VarNode *node) {
+bool LingoCompiler::visitVarNode(VarNode *node) {
if (_refMode) {
codeVarRef(*node->name);
- return;
+ return true;
}
if (g_lingo->_builtinConsts.contains(*node->name)) {
code1(LC::c_constpush);
codeString(node->name->c_str());
- return;
+ return true;
}
if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
int val = castNumToNum(node->name->c_str());
if (val != -1) {
code1(LC::c_intpush);
codeInt(val);
- return;
+ return true;
}
}
codeVarGet(*node->name);
+ return true;
}
/* ParensNode */
-void LingoCompiler::visitParensNode(ParensNode *node) {
- compile(node->expr);
+bool LingoCompiler::visitParensNode(ParensNode *node) {
+ COMPILE(node->expr);
+ return true;
}
/* UnaryOpNode */
-void LingoCompiler::visitUnaryOpNode(UnaryOpNode *node) {
- compile(node->arg);
+bool LingoCompiler::visitUnaryOpNode(UnaryOpNode *node) {
+ COMPILE(node->arg);
code1(node->op);
+ return true;
}
/* BinaryOpNode */
-void LingoCompiler::visitBinaryOpNode(BinaryOpNode *node) {
- compile(node->a);
- compile(node->b);
+bool LingoCompiler::visitBinaryOpNode(BinaryOpNode *node) {
+ COMPILE(node->a);
+ COMPILE(node->b);
code1(node->op);
+ return true;
}
/* FrameNode */
-void LingoCompiler::visitFrameNode(FrameNode *node) {
- compile(node->arg);
+bool LingoCompiler::visitFrameNode(FrameNode *node) {
+ COMPILE(node->arg);
+ return true;
}
/* MovieNode */
-void LingoCompiler::visitMovieNode(MovieNode *node) {
- compile(node->arg);
+bool LingoCompiler::visitMovieNode(MovieNode *node) {
+ COMPILE(node->arg);
+ return true;
}
/* IntersectsNode */
-void LingoCompiler::visitIntersectsNode(IntersectsNode *node) {
- compile(node->sprite1);
- compile(node->sprite2);
+bool LingoCompiler::visitIntersectsNode(IntersectsNode *node) {
+ COMPILE(node->sprite1);
+ COMPILE(node->sprite2);
code1(LC::c_intersects);
+ return true;
};
/* WithinNode */
-void LingoCompiler::visitWithinNode(WithinNode *node) {
- compile(node->sprite1);
- compile(node->sprite2);
+bool LingoCompiler::visitWithinNode(WithinNode *node) {
+ COMPILE(node->sprite1);
+ COMPILE(node->sprite2);
code1(LC::c_within);
+ return true;
};
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 32f4cf01d7..a37424354f 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -73,47 +73,43 @@ public:
bool _hadError;
public:
- void compile(Node *node);
- void compileRef(Node *node);
- void compileList(NodeList *nodes);
-
- virtual void visitScriptNode(ScriptNode *node);
- virtual void visitFactoryNode(FactoryNode *node);
- virtual void visitHandlerNode(HandlerNode *node);
- virtual void visitCmdNode(CmdNode *node);
- virtual void visitPutIntoNode(PutIntoNode *node);
- virtual void visitPutAfterNode(PutAfterNode *node);
- virtual void visitPutBeforeNode(PutBeforeNode *node);
- virtual void visitSetNode(SetNode *node);
- virtual void visitGlobalNode(GlobalNode *node);
- virtual void visitPropertyNode(PropertyNode *node);
- virtual void visitInstanceNode(InstanceNode *node);
- virtual void visitIfStmtNode(IfStmtNode *node);
- virtual void visitIfElseStmtNode(IfElseStmtNode *node);
- virtual void visitRepeatWhileNode(RepeatWhileNode *node);
- virtual void visitRepeatWithToNode(RepeatWithToNode *node);
- virtual void visitNextRepeatNode(NextRepeatNode *node);
- virtual void visitExitRepeatNode(ExitRepeatNode *node);
- virtual void visitExitNode(ExitNode *node);
- virtual void visitTellNode(TellNode *node);
- virtual void visitWhenNode(WhenNode *node);
- virtual void visitAssertErrorNode(AssertErrorNode *node);
- virtual void visitIntNode(IntNode *node);
- virtual void visitFloatNode(FloatNode *node);
- virtual void visitSymbolNode(SymbolNode *node);
- virtual void visitStringNode(StringNode *node);
- virtual void visitListNode(ListNode *node);
- virtual void visitPropListNode(PropListNode *node);
- virtual void visitPropPairNode(PropPairNode *node);
- virtual void visitFuncNode(FuncNode *node);
- virtual void visitVarNode(VarNode *node);
- virtual void visitParensNode(ParensNode *node);
- virtual void visitUnaryOpNode(UnaryOpNode *node);
- virtual void visitBinaryOpNode(BinaryOpNode *node);
- virtual void visitFrameNode(FrameNode *node);
- virtual void visitMovieNode(MovieNode *node);
- virtual void visitIntersectsNode(IntersectsNode *node);
- virtual void visitWithinNode(WithinNode *node);
+ virtual bool visitScriptNode(ScriptNode *node);
+ virtual bool visitFactoryNode(FactoryNode *node);
+ virtual bool visitHandlerNode(HandlerNode *node);
+ virtual bool visitCmdNode(CmdNode *node);
+ virtual bool visitPutIntoNode(PutIntoNode *node);
+ virtual bool visitPutAfterNode(PutAfterNode *node);
+ virtual bool visitPutBeforeNode(PutBeforeNode *node);
+ virtual bool visitSetNode(SetNode *node);
+ virtual bool visitGlobalNode(GlobalNode *node);
+ virtual bool visitPropertyNode(PropertyNode *node);
+ virtual bool visitInstanceNode(InstanceNode *node);
+ virtual bool visitIfStmtNode(IfStmtNode *node);
+ virtual bool visitIfElseStmtNode(IfElseStmtNode *node);
+ virtual bool visitRepeatWhileNode(RepeatWhileNode *node);
+ virtual bool visitRepeatWithToNode(RepeatWithToNode *node);
+ virtual bool visitNextRepeatNode(NextRepeatNode *node);
+ virtual bool visitExitRepeatNode(ExitRepeatNode *node);
+ virtual bool visitExitNode(ExitNode *node);
+ virtual bool visitTellNode(TellNode *node);
+ virtual bool visitWhenNode(WhenNode *node);
+ virtual bool visitAssertErrorNode(AssertErrorNode *node);
+ virtual bool visitIntNode(IntNode *node);
+ virtual bool visitFloatNode(FloatNode *node);
+ virtual bool visitSymbolNode(SymbolNode *node);
+ virtual bool visitStringNode(StringNode *node);
+ virtual bool visitListNode(ListNode *node);
+ virtual bool visitPropListNode(PropListNode *node);
+ virtual bool visitPropPairNode(PropPairNode *node);
+ virtual bool visitFuncNode(FuncNode *node);
+ virtual bool visitVarNode(VarNode *node);
+ virtual bool visitParensNode(ParensNode *node);
+ virtual bool visitUnaryOpNode(UnaryOpNode *node);
+ virtual bool visitBinaryOpNode(BinaryOpNode *node);
+ virtual bool visitFrameNode(FrameNode *node);
+ virtual bool visitMovieNode(MovieNode *node);
+ virtual bool visitIntersectsNode(IntersectsNode *node);
+ virtual bool visitWithinNode(WithinNode *node);
private:
int parse(const char *code);
Commit: 0980939740d0a8cb98b87dda5131b6fce7eacd42
https://github.com/scummvm/scummvm/commit/0980939740d0a8cb98b87dda5131b6fce7eacd42
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement cast/object refs
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index ee0e2cd8a7..3fca98cda1 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -280,18 +280,21 @@ enum yysymbol_kind_t
YYSYMBOL_var = 125, /* var */
YYSYMBOL_varorchunk = 126, /* varorchunk */
YYSYMBOL_varorthe = 127, /* varorthe */
- YYSYMBOL_list = 128, /* list */
- YYSYMBOL_proplist = 129, /* proplist */
- YYSYMBOL_proppair = 130, /* proppair */
- YYSYMBOL_parens = 131, /* parens */
- YYSYMBOL_unarymath = 132, /* unarymath */
- YYSYMBOL_simpleexpr = 133, /* simpleexpr */
- YYSYMBOL_simpleexpr_nounarymath = 134, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 135, /* expr */
- YYSYMBOL_expr_nounarymath = 136, /* expr_nounarymath */
- YYSYMBOL_sprite = 137, /* sprite */
- YYSYMBOL_exprlist = 138, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 139 /* nonemptyexprlist */
+ YYSYMBOL_chunk = 128, /* chunk */
+ YYSYMBOL_object = 129, /* object */
+ YYSYMBOL_list = 130, /* list */
+ YYSYMBOL_proplist = 131, /* proplist */
+ YYSYMBOL_proppair = 132, /* proppair */
+ YYSYMBOL_parens = 133, /* parens */
+ YYSYMBOL_unarymath = 134, /* unarymath */
+ YYSYMBOL_simpleexpr = 135, /* simpleexpr */
+ YYSYMBOL_simpleexpr_noparens = 136, /* simpleexpr_noparens */
+ YYSYMBOL_simpleexpr_nounarymath = 137, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 138, /* expr */
+ YYSYMBOL_expr_nounarymath = 139, /* expr_nounarymath */
+ YYSYMBOL_sprite = 140, /* sprite */
+ YYSYMBOL_exprlist = 141, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 142 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -611,18 +614,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 119
+#define YYFINAL 125
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2789
+#define YYLAST 2900
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 93
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 47
+#define YYNNTS 50
/* YYNRULES -- Number of rules. */
-#define YYNRULES 191
+#define YYNRULES 200
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 361
+#define YYNSTATES 374
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 332
@@ -679,26 +682,27 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 196, 196, 198, 204, 211, 212, 213, 214, 215,
- 244, 248, 250, 252, 253, 256, 262, 269, 270, 275,
- 279, 283, 284, 285, 290, 291, 292, 293, 294, 295,
- 296, 301, 302, 305, 307, 308, 309, 310, 313, 314,
- 315, 316, 317, 319, 320, 322, 325, 326, 327, 328,
- 329, 331, 332, 333, 335, 336, 337, 338, 339, 342,
- 343, 346, 350, 360, 361, 362, 363, 364, 365, 368,
- 369, 370, 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 385, 388, 393, 397, 403, 408, 411, 421,
- 426, 432, 438, 444, 452, 453, 454, 455, 458, 458,
- 460, 461, 462, 465, 469, 473, 479, 483, 487, 491,
- 493, 495, 499, 503, 507, 509, 510, 514, 520, 527,
- 528, 534, 535, 536, 537, 538, 539, 540, 541, 544,
- 546, 550, 554, 555, 556, 559, 563, 568, 569, 570,
- 573, 575, 576, 579, 580, 581, 588, 589, 593, 594,
- 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
- 605, 606, 607, 608, 609, 610, 611, 618, 619, 620,
- 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
- 631, 632, 633, 634, 635, 636, 639, 640, 643, 644,
- 647, 651
+ 0, 197, 197, 199, 205, 212, 213, 214, 215, 216,
+ 245, 249, 251, 253, 254, 257, 263, 270, 271, 276,
+ 280, 284, 285, 286, 291, 292, 293, 294, 295, 296,
+ 297, 302, 303, 306, 308, 309, 310, 311, 314, 315,
+ 316, 317, 318, 320, 321, 323, 326, 327, 328, 329,
+ 330, 332, 333, 334, 336, 337, 338, 339, 340, 343,
+ 344, 347, 351, 361, 362, 363, 364, 365, 366, 369,
+ 370, 371, 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 386, 389, 394, 398, 404, 409, 412, 422,
+ 427, 433, 439, 445, 453, 454, 455, 456, 459, 459,
+ 461, 462, 463, 466, 470, 474, 480, 484, 488, 492,
+ 494, 496, 500, 504, 508, 510, 511, 515, 521, 528,
+ 529, 535, 536, 537, 538, 539, 540, 541, 542, 543,
+ 544, 547, 549, 550, 553, 557, 561, 567, 571, 577,
+ 578, 579, 582, 586, 591, 592, 593, 596, 598, 599,
+ 602, 603, 604, 607, 608, 611, 612, 616, 617, 618,
+ 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
+ 629, 630, 631, 632, 633, 634, 641, 642, 643, 644,
+ 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
+ 655, 656, 657, 658, 659, 662, 663, 666, 667, 670,
+ 674
};
#endif
@@ -735,9 +739,10 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"proc", "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
"ifelsestmt", "loop", "tell", "when", "stmtlist", "nonemptystmtlist",
"stmtlistline", "simpleexpr_noparens_nounarymath", "var", "varorchunk",
- "varorthe", "list", "proplist", "proppair", "parens", "unarymath",
- "simpleexpr", "simpleexpr_nounarymath", "expr", "expr_nounarymath",
- "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "varorthe", "chunk", "object", "list", "proplist", "proppair", "parens",
+ "unarymath", "simpleexpr", "simpleexpr_noparens",
+ "simpleexpr_nounarymath", "expr", "expr_nounarymath", "sprite",
+ "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -761,7 +766,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-258)
+#define YYPACT_NINF (-265)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -775,43 +780,44 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1490, -258, -258, -258, -258, -258, -258, -23, -258, 2411,
- 944, 1023, -258, -258, 2411, -258, -12, -258, -258, 1102,
- -6, 2411, -258, 2411, -258, -258, 2411, -258, 944, 2411,
- -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
- -258, -258, -258, -258, 1023, 2411, 2411, 2293, -258, 11,
- 1490, -258, -258, -258, -258, 1102, -258, -258, -258, -258,
- -258, -258, -258, -258, -258, -258, -21, -258, -258, -258,
- -258, -258, -258, -258, -11, -44, -258, -258, -258, -258,
- 1023, 1023, 1181, 1023, 1181, 1181, 863, 458, -69, -10,
- -9, -258, -258, -258, -258, -258, -258, 539, -258, 1023,
- 348, 2411, -8, -5, 620, 2411, 1023, -258, -258, -20,
- 26, -4, -3, -1, 2, 144, 8, 2411, -258, -258,
- -258, 16, 701, -258, -258, 2411, 782, 2657, -258, 2622,
- -258, -258, -258, 2432, 5, 15, -17, -68, -51, -258,
- 2657, 1, -7, 1023, -258, -258, 69, 1023, 1023, 1023,
- 1023, 1260, 1260, 1418, 1023, 1023, 1339, 1023, 1023, 1023,
- 1023, 1023, 1023, 1023, 1023, -258, -258, -258, 2485, -258,
- 2445, 2049, 1023, 1023, 1023, 1023, 23, -258, -258, 2411,
- 2411, 2411, 58, 2498, -258, -258, 1023, 1023, -58, -258,
- -258, -258, 2293, 2110, -258, 25, -258, -258, 79, 2670,
- 1181, 1181, 1023, -258, 1023, 1023, -258, 1023, 2352, -258,
- -258, 1023, 27, 1023, 38, 38, 38, 38, 2705, 2705,
- -258, 47, 38, 38, 38, 38, 47, -26, -26, -258,
- -258, -7, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 2110, 90, 2110, -258, 29, 40, 46, 1023, 2110, 2535,
- 2657, 2411, -258, -258, 48, -258, -258, -258, -258, -258,
- 1613, -258, -258, 2110, 1023, -258, -258, -35, 2657, 2657,
- 2657, 5, 15, 41, -258, 2657, -258, 2657, 38, 38,
- 38, 38, 2705, 2705, -258, 47, 38, 38, 38, 38,
- 47, -26, -26, -258, -258, -7, 1551, 2171, 2110, -258,
- -258, -258, 85, 1674, -258, 2411, -58, 55, -258, 1742,
- 2657, -258, 2232, 57, 2110, -258, 102, 1023, 62, 64,
- -258, -258, 2411, 2110, -258, -258, 1803, 1023, 2548, -258,
- 2110, -18, -258, 1865, 65, 2585, 2110, 2110, -258, 2411,
- 66, -258, 2110, 1927, -258, -258, 1988, 67, 68, -258,
- -258
+ 1577, -265, -265, -265, -265, -265, -265, -33, -265, 2498,
+ 958, 1037, -265, -265, 2498, -265, -27, -265, -265, 1116,
+ 73, 2498, -265, 2498, -265, -265, 2498, -265, 958, 2498,
+ -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+ -265, -265, -265, -265, 1037, 2498, 2498, 2380, -265, 20,
+ 1577, -265, -265, -265, -265, 1116, -265, -265, -265, -265,
+ -265, -265, -265, -265, -265, -265, -42, -265, -265, -265,
+ -265, -265, -265, -265, -25, -57, -265, -265, -265, -265,
+ 1274, 1274, 1274, 1274, 1037, 1037, 1195, 1037, 1195, 1195,
+ 877, 472, -30, -23, -17, -265, -265, -265, -265, -265,
+ -265, -265, -265, 553, -265, 1037, 361, 2498, -2, 17,
+ 634, 2498, 1037, -265, -265, -24, 45, 22, 35, 38,
+ 41, 227, 43, 2498, -265, -265, -265, 44, 715, -265,
+ -265, 2498, -265, -265, -265, -265, -265, -265, 796, 2803,
+ -265, 2768, -265, -265, -265, 2578, -54, 14, 42, -56,
+ 2, -265, 2803, 51, 57, 1037, -265, -265, 98, 1037,
+ 1037, 1037, 1037, 1347, 1347, 1505, 1037, 1037, 1426, 1037,
+ 1037, 1037, 1037, 1037, 1037, 1037, 1037, -265, -265, -265,
+ 2631, -265, 2591, 2136, 1037, 1037, 1037, 1037, 59, -265,
+ -265, 2557, 2557, 2557, 97, 2644, -265, -265, 1037, 1037,
+ -46, -265, -265, -265, 2380, 2197, -265, 64, -265, -265,
+ 117, 2816, 1195, 1195, 1037, -265, 1037, 1037, -265, 1037,
+ 2439, -265, -265, 1037, 63, 1037, -9, -9, -9, -9,
+ 128, 128, -265, -1, -9, -9, -9, -9, -1, -50,
+ -50, -265, -265, 57, 1037, 1037, 1037, 1037, 1037, 1037,
+ 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
+ 1037, 1037, 2197, 129, 2197, -265, 68, -265, 69, 70,
+ 1037, 2197, 2681, 2803, 2498, -265, -265, 71, -265, -265,
+ -265, -265, -265, 1700, -265, -265, 2197, 1037, -265, -265,
+ -48, 2803, 2803, 2803, -54, 14, 66, -265, 2803, -265,
+ 2803, -9, -9, -9, -9, 128, 128, -265, -1, -9,
+ -9, -9, -9, -1, -50, -50, -265, -265, 57, 1638,
+ 2258, 2197, -265, -265, -265, 86, 1761, -265, 2498, -46,
+ 75, -265, 1829, 2803, -265, 2319, 76, 2197, -265, 121,
+ 1037, 85, 89, -265, -265, 2498, 2197, -265, -265, 1890,
+ 1037, 2694, -265, 2197, 33, -265, 1952, 90, 2731, 2197,
+ 2197, -265, 2498, 91, -265, 2197, 2014, -265, -265, 2075,
+ 96, 100, -265, -265
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -827,55 +833,56 @@ static const yytype_uint8 yydefact[] =
2, 3, 6, 7, 8, 82, 9, 63, 69, 70,
71, 64, 65, 66, 67, 68, 0, 80, 40, 46,
48, 50, 52, 61, 0, 60, 121, 122, 124, 123,
- 32, 39, 41, 53, 0, 0, 0, 188, 129, 0,
- 0, 143, 127, 128, 144, 145, 148, 83, 149, 0,
- 0, 59, 0, 0, 83, 0, 0, 129, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 59, 81, 1,
- 4, 0, 83, 79, 100, 0, 89, 90, 125, 0,
- 141, 142, 87, 0, 124, 123, 0, 129, 0, 135,
- 190, 0, 189, 188, 74, 75, 42, 0, 0, 0,
- 0, 26, 44, 38, 0, 0, 49, 0, 0, 0,
- 0, 0, 0, 0, 0, 146, 147, 167, 85, 168,
- 0, 0, 0, 0, 0, 0, 0, 78, 73, 35,
- 25, 27, 0, 0, 98, 99, 0, 0, 13, 76,
- 77, 102, 0, 115, 101, 0, 72, 62, 42, 93,
- 0, 0, 0, 140, 0, 0, 133, 0, 0, 134,
- 132, 0, 0, 0, 159, 160, 157, 158, 161, 162,
- 154, 164, 165, 166, 156, 155, 163, 150, 151, 152,
- 153, 84, 0, 0, 0, 0, 0, 0, 0, 0,
+ 28, 31, 47, 55, 32, 39, 41, 53, 0, 0,
+ 0, 197, 131, 0, 0, 150, 127, 128, 129, 130,
+ 151, 152, 157, 83, 158, 0, 0, 59, 0, 0,
+ 83, 0, 0, 131, 134, 0, 0, 0, 0, 0,
+ 0, 0, 0, 59, 81, 1, 4, 0, 83, 79,
+ 100, 0, 153, 154, 136, 135, 137, 138, 89, 90,
+ 125, 0, 148, 149, 87, 0, 124, 123, 0, 131,
+ 0, 142, 199, 0, 198, 197, 74, 75, 42, 0,
+ 0, 0, 0, 26, 44, 38, 0, 0, 49, 0,
+ 0, 0, 0, 0, 0, 0, 0, 155, 156, 176,
+ 85, 177, 0, 0, 0, 0, 0, 0, 0, 78,
+ 73, 35, 25, 27, 0, 0, 98, 99, 0, 0,
+ 13, 76, 77, 102, 0, 115, 101, 0, 72, 62,
+ 42, 93, 0, 0, 0, 147, 0, 0, 140, 0,
+ 0, 141, 139, 0, 0, 0, 168, 169, 166, 167,
+ 170, 171, 163, 173, 174, 175, 165, 164, 172, 159,
+ 160, 161, 162, 84, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 115, 103, 115, 130, 0, 0, 0, 0, 115, 0,
- 114, 0, 17, 18, 11, 14, 15, 112, 119, 120,
- 0, 116, 117, 115, 0, 186, 187, 0, 139, 137,
- 138, 0, 0, 0, 136, 191, 126, 92, 178, 179,
- 176, 177, 180, 181, 173, 183, 184, 185, 175, 174,
- 182, 169, 170, 171, 172, 86, 0, 0, 10, 94,
- 95, 96, 0, 0, 97, 59, 0, 0, 118, 20,
- 91, 88, 0, 0, 115, 105, 0, 0, 0, 0,
- 16, 113, 21, 115, 107, 104, 0, 0, 0, 109,
- 115, 0, 22, 0, 0, 0, 115, 12, 19, 0,
- 0, 106, 115, 0, 23, 108, 0, 0, 0, 110,
- 111
+ 0, 0, 115, 103, 115, 132, 0, 133, 0, 0,
+ 0, 115, 0, 114, 0, 17, 18, 11, 14, 15,
+ 112, 119, 120, 0, 116, 117, 115, 0, 195, 196,
+ 0, 146, 144, 145, 0, 0, 0, 143, 200, 126,
+ 92, 187, 188, 185, 186, 189, 190, 182, 192, 193,
+ 194, 184, 183, 191, 178, 179, 180, 181, 86, 0,
+ 0, 10, 94, 95, 96, 0, 0, 97, 59, 0,
+ 0, 118, 20, 91, 88, 0, 0, 115, 105, 0,
+ 0, 0, 0, 16, 113, 21, 115, 107, 104, 0,
+ 0, 0, 109, 115, 0, 22, 0, 0, 0, 115,
+ 12, 19, 0, 0, 106, 115, 0, 23, 108, 0,
+ 0, 0, 110, 111
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -258, -258, -258, 105, -258, -258, -258, -258, -258, -160,
- -258, -258, 0, -28, -258, 3, -43, -258, 6, 129,
- -258, -258, -258, -258, -258, -258, -258, -258, -240, -258,
- -257, -67, -19, -109, -258, -258, -258, -50, -62, -258,
- -77, -258, 210, 33, -56, 30, -158
+ -265, -265, -265, 109, -265, -265, -265, -265, -265, -145,
+ -265, -265, 0, -28, -265, 4, -44, -265, -3, 166,
+ -265, -265, -265, -265, -265, -265, -265, -265, -249, -265,
+ -264, -16, -19, -67, -265, -115, -265, -265, -265, -22,
+ -79, 18, -78, 32, -265, 211, 58, -68, 40, -171
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 263, 264, 265, 266,
- 54, 341, 88, 74, 75, 269, 57, 58, 89, 90,
- 59, 186, 60, 61, 62, 63, 64, 65, 270, 271,
- 272, 91, 92, 254, 109, 93, 138, 139, 94, 95,
- 96, 167, 140, 168, 98, 141, 142
+ 0, 49, 50, 51, 52, 53, 276, 277, 278, 279,
+ 54, 354, 92, 74, 75, 282, 57, 58, 93, 94,
+ 59, 198, 60, 61, 62, 63, 64, 65, 283, 284,
+ 285, 95, 96, 266, 115, 97, 98, 99, 150, 151,
+ 100, 101, 102, 134, 179, 152, 180, 104, 153, 154
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -883,496 +890,535 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 114, 108, 56, 118, 128, 231, 130, 131, 73,
- 306, 119, 308, 318, 101, 261, 66, 116, 313, 143,
- 143, 107, 184, 110, 207, 103, 111, 102, 262, 73,
- 165, 174, 185, 319, 112, 166, 208, 165, 105, 106,
- 209, 169, 166, 125, 277, 73, 117, 55, 169, 318,
- 55, 318, 211, 56, 321, 165, 318, 162, 163, 165,
- 166, 121, 318, 67, 166, 123, 169, 187, 348, 349,
- 169, 255, 256, 176, 206, 124, 144, 145, 177, 318,
- 211, 178, 188, 189, 336, 190, 318, 137, 191, 195,
- 318, 305, 210, 343, 194, 174, 318, 204, 154, 318,
- 347, 73, 196, 213, 174, 182, 353, 205, 326, 252,
- 257, 273, 356, 274, 307, 309, 286, 73, 159, 160,
- 161, 162, 163, 275, 276, 197, 310, 327, 160, 161,
- 162, 163, 311, 207, 316, 147, 148, 149, 150, 172,
- 173, 331, 174, 335, 337, 154, 155, 175, 339, 267,
- 340, 351, 355, 359, 360, 120, 330, 113, 284, 199,
- 253, 253, 253, 157, 158, 159, 160, 161, 162, 163,
- 0, 55, 0, 212, 251, 0, 0, 0, 0, 107,
- 107, 107, 0, 0, 0, 0, 192, 0, 0, 0,
- 0, 0, 55, 55, 147, 148, 149, 150, 172, 173,
- 0, 174, 0, 0, 154, 155, 175, 0, 283, 0,
+ 55, 120, 114, 124, 56, 243, 66, 186, 140, 73,
+ 142, 143, 108, 319, 107, 321, 109, 122, 196, 331,
+ 125, 113, 326, 116, 178, 118, 117, 274, 197, 73,
+ 131, 178, 155, 174, 175, 181, 219, 332, 216, 223,
+ 275, 334, 181, 290, 129, 73, 123, 55, 186, 178,
+ 55, 166, 127, 67, 56, 331, 186, 331, 155, 178,
+ 181, 130, 331, 156, 132, 132, 132, 132, 331, 157,
+ 181, 171, 172, 173, 174, 175, 267, 267, 267, 188,
+ 172, 173, 174, 175, 189, 331, 199, 177, 349, 220,
+ 318, 149, 331, 221, 177, 207, 331, 356, 133, 133,
+ 133, 133, 331, 190, 360, 331, 217, 73, 200, 339,
+ 366, 194, 177, 135, 136, 137, 369, 111, 112, 361,
+ 362, 201, 177, 73, 202, 268, 269, 203, 340, 206,
+ 208, 209, 225, 218, 288, 289, 159, 160, 161, 162,
+ 184, 185, 222, 186, 223, 264, 166, 167, 187, 270,
+ 286, 287, 299, 320, 322, 323, 324, 329, 219, 126,
+ 280, 344, 348, 350, 169, 170, 171, 172, 173, 174,
+ 175, 352, 265, 265, 265, 353, 364, 368, 159, 160,
+ 161, 162, 372, 55, 343, 186, 373, 263, 166, 167,
+ 187, 113, 113, 113, 119, 224, 211, 0, 297, 0,
+ 0, 0, 0, 0, 55, 55, 169, 170, 171, 172,
+ 173, 174, 175, 0, 0, 0, 0, 0, 0, 0,
+ 296, 103, 106, 0, 0, 0, 0, 0, 0, 0,
+ 110, 0, 0, 0, 0, 0, 0, 0, 0, 103,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 97, 100, 157, 158, 159, 160, 161, 162, 163, 104,
- 193, 0, 0, 0, 0, 0, 0, 0, 97, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 0, 55, 0, 115, 0, 0, 0, 55, 0,
- 0, 315, 0, 0, 0, 122, 0, 0, 0, 0,
- 55, 0, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 329, 0, 0,
- 126, 127, 0, 129, 0, 0, 133, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 55, 55, 55, 170,
- 325, 0, 0, 55, 0, 73, 183, 0, 0, 55,
- 0, 0, 55, 0, 55, 334, 0, 0, 0, 0,
- 0, 0, 342, 55, 0, 0, 55, 0, 0, 0,
- 55, 0, 0, 55, 0, 0, 55, 55, 0, 354,
- 0, 0, 55, 55, 0, 0, 55, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 0, 0, 0, 0, 0, 0,
- 0, 0, 218, 219, 220, 223, 0, 0, 0, 171,
- 0, 0, 0, 0, 0, 0, 259, 260, 147, 148,
- 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
- 175, 0, 0, 0, 278, 279, 0, 280, 0, 0,
- 0, 285, 0, 287, 0, 0, 157, 158, 159, 160,
- 161, 162, 163, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 0,
- 0, 0, 0, 76, 0, 0, 0, 312, 77, 0,
- 0, 1, 134, 135, 0, 0, 0, 2, 3, 4,
- 5, 6, 0, 0, 320, 8, 0, 0, 0, 12,
- 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
- 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 82, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 83, 42, 43, 71, 0,
- 0, 0, 0, 0, 0, 72, 0, 338, 0, 84,
- 85, 0, 0, 0, 76, 0, 99, 345, 87, 77,
- 136, 0, 1, 78, 79, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 68, 146, 18, 0, 69, 70,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 147,
- 148, 149, 150, 151, 152, 82, 153, 34, 35, 154,
- 155, 156, 37, 38, 39, 40, 83, 42, 43, 71,
- 0, 0, 0, 0, 0, 0, 72, 157, 158, 159,
- 160, 161, 162, 163, 0, 76, 164, 99, 0, 87,
- 77, 0, 0, 1, 78, 79, 0, 0, 0, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 179, 0, 15, 68, 17, 18, 0, 69,
- 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 147, 148, 149, 150, 151, 152, 82, 153, 180, 181,
- 154, 155, 156, 37, 38, 39, 40, 83, 42, 43,
- 71, 0, 0, 0, 0, 0, 0, 72, 157, 158,
- 159, 160, 161, 162, 163, 0, 76, 164, 99, 0,
- 87, 77, 0, 0, 1, 78, 79, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
- 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 147, 148, 149, 150, 151, 152, 82, 153, 34,
- 35, 154, 155, 156, 37, 38, 39, 40, 83, 42,
- 43, 71, 0, 0, 0, 0, 0, 0, 72, 157,
- 158, 159, 160, 161, 162, 163, 0, 76, 164, 99,
- 0, 87, 77, 0, 0, 1, 78, 79, 0, 0,
- 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 68, 198, 18,
+ 0, 0, 0, 0, 0, 121, 0, 0, 0, 0,
+ 0, 0, 55, 0, 55, 0, 128, 0, 0, 204,
+ 0, 55, 0, 0, 328, 0, 0, 159, 160, 161,
+ 162, 184, 185, 55, 186, 0, 55, 166, 167, 187,
+ 0, 0, 0, 0, 0, 138, 139, 0, 141, 0,
+ 342, 145, 0, 0, 0, 169, 170, 171, 172, 173,
+ 174, 175, 0, 205, 0, 0, 182, 0, 0, 55,
+ 55, 55, 0, 195, 338, 0, 55, 0, 73, 0,
+ 0, 0, 55, 0, 0, 55, 0, 55, 0, 347,
+ 0, 0, 0, 0, 0, 355, 55, 0, 0, 55,
+ 0, 0, 0, 55, 0, 0, 55, 0, 0, 55,
+ 55, 0, 367, 0, 0, 55, 55, 0, 0, 55,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 0, 0, 0,
+ 0, 0, 0, 0, 0, 230, 231, 232, 235, 0,
+ 0, 0, 183, 0, 0, 0, 0, 0, 0, 272,
+ 273, 159, 160, 161, 162, 184, 185, 0, 186, 0,
+ 0, 166, 167, 187, 0, 0, 0, 291, 292, 0,
+ 293, 0, 0, 0, 298, 0, 300, 0, 0, 169,
+ 170, 171, 172, 173, 174, 175, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
+ 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
+ 316, 317, 0, 0, 0, 0, 0, 76, 0, 0,
+ 0, 325, 77, 0, 0, 1, 146, 147, 0, 0,
+ 0, 80, 81, 82, 83, 6, 0, 0, 333, 8,
+ 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
- 0, 0, 147, 148, 149, 150, 151, 152, 82, 153,
- 34, 35, 154, 155, 156, 37, 38, 39, 40, 83,
+ 0, 0, 0, 0, 0, 0, 30, 31, 86, 33,
+ 34, 35, 0, 0, 36, 37, 38, 39, 40, 87,
42, 43, 71, 0, 0, 0, 0, 0, 0, 72,
- 157, 158, 159, 160, 161, 162, 163, 0, 76, 0,
- 99, 0, 87, 77, 0, 0, 1, 78, 79, 0,
- 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 68, 17,
+ 0, 351, 0, 88, 89, 0, 0, 0, 76, 0,
+ 105, 358, 91, 77, 148, 0, 1, 78, 79, 0,
+ 0, 0, 80, 81, 82, 83, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 68, 158,
18, 0, 69, 70, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 82,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 83, 42, 43, 71, 0, 0, 0, 0, 0, 0,
- 72, 0, 0, 0, 84, 85, 0, 0, 0, 76,
- 0, 99, 132, 87, 77, 0, 0, 1, 78, 79,
- 0, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 80, 0, 0, 0, 12, 13, 0, 81, 68,
+ 27, 0, 0, 159, 160, 161, 162, 163, 164, 86,
+ 165, 34, 35, 166, 167, 168, 37, 38, 39, 40,
+ 87, 42, 43, 71, 0, 0, 0, 0, 0, 0,
+ 72, 169, 170, 171, 172, 173, 174, 175, 0, 76,
+ 176, 105, 0, 91, 77, 0, 0, 1, 78, 79,
+ 0, 0, 0, 80, 81, 82, 83, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 191, 0, 15, 68,
17, 18, 0, 69, 70, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 82, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 83, 42, 43, 71, 0, 0, 0, 0, 0,
- 0, 72, 0, 0, 0, 84, 85, 0, 76, 0,
- 0, 0, 86, 77, 87, 0, 1, 78, 79, 0,
- 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 68, 17,
- 18, 0, 69, 70, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 82,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 83, 42, 43, 71, 0, 0, 0, 0, 0, 0,
- 72, 0, 0, 0, 84, 85, 0, 76, 0, 0,
- 0, 99, 77, 87, 0, 1, 78, 79, 0, 0,
- 0, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
- 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 82, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 83,
- 42, 43, 71, 0, 0, 0, 0, 0, 0, 72,
- 0, 0, 0, 84, 85, 0, 76, 0, 0, 0,
- 86, 77, 87, 0, 1, 78, 79, 0, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
- 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 82, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 71, 0, 0, 0, 0, 0, 0, 72, 0,
- 0, 0, 84, 85, 0, 76, 0, 0, 0, 99,
- 77, 87, 0, 1, 78, 79, 0, 0, 0, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 68, 17, 18, 0, 69,
- 70, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 82, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 83, 42, 43,
- 71, 0, 0, 0, 0, 0, 0, 72, 0, 0,
- 0, 84, 85, 0, 76, 0, 0, 0, 99, 77,
- 87, 0, 1, 78, 79, 0, 0, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 0, 0, 82, 33, 34, 35, 0,
- 0, 0, 37, 38, 39, 40, 83, 42, 43, 71,
- 0, 0, 0, 0, 0, 0, 72, 0, 0, 0,
- 84, 85, 0, 76, 0, 0, 0, 99, 77, 87,
- 0, 1, 78, 79, 0, 0, 0, 2, 3, 4,
- 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
+ 0, 27, 0, 0, 159, 160, 161, 162, 163, 164,
+ 86, 165, 192, 193, 166, 167, 168, 37, 38, 39,
+ 40, 87, 42, 43, 71, 0, 0, 0, 0, 0,
+ 0, 72, 169, 170, 171, 172, 173, 174, 175, 0,
+ 76, 176, 105, 0, 91, 77, 0, 0, 1, 78,
+ 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
+ 25, 0, 27, 0, 0, 159, 160, 161, 162, 163,
+ 164, 86, 165, 34, 35, 166, 167, 168, 37, 38,
+ 39, 40, 87, 42, 43, 71, 0, 0, 0, 0,
+ 0, 0, 72, 169, 170, 171, 172, 173, 174, 175,
+ 0, 76, 176, 105, 0, 91, 77, 0, 0, 1,
+ 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 68, 210, 18, 0, 69, 70, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 159, 160, 161, 162,
+ 163, 164, 86, 165, 34, 35, 166, 167, 168, 37,
+ 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
+ 0, 0, 0, 72, 169, 170, 171, 172, 173, 174,
+ 175, 0, 76, 0, 105, 0, 91, 77, 0, 0,
+ 1, 78, 79, 0, 0, 0, 80, 81, 82, 83,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 86, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
+ 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
+ 0, 0, 0, 76, 0, 105, 144, 91, 77, 0,
+ 0, 1, 78, 79, 0, 0, 0, 80, 81, 82,
+ 83, 6, 0, 0, 0, 84, 0, 0, 0, 12,
+ 13, 0, 85, 68, 17, 18, 0, 69, 70, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 0, 0, 82, 0, 34, 35, 0, 0,
- 0, 37, 38, 39, 40, 83, 42, 43, 71, 0,
- 0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 99, 0, 87, 2,
- 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 26, 27, 28, 29,
+ 0, 0, 30, 31, 86, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 87, 42, 43, 71, 0,
+ 0, 0, 0, 0, 0, 72, 0, 0, 0, 88,
+ 89, 0, 76, 0, 0, 0, 90, 77, 91, 0,
+ 1, 78, 79, 0, 0, 0, 80, 81, 82, 83,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 86, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
+ 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
+ 0, 76, 0, 0, 0, 105, 77, 91, 0, 1,
+ 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 30, 31, 86, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
+ 0, 0, 0, 72, 0, 0, 0, 88, 89, 0,
+ 76, 0, 0, 0, 90, 77, 91, 0, 1, 78,
+ 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
+ 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
+ 31, 86, 33, 34, 35, 0, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 71, 0, 0, 0, 0,
+ 0, 0, 72, 0, 0, 0, 88, 89, 0, 76,
+ 0, 0, 0, 105, 77, 91, 0, 1, 78, 79,
+ 0, 0, 0, 80, 81, 82, 83, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 68,
+ 17, 18, 0, 69, 70, 0, 22, 0, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 86, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 71, 0, 0, 0, 0, 0,
+ 0, 72, 76, 0, 0, 88, 89, 77, 0, 0,
+ 1, 78, 79, 0, 91, 0, 80, 81, 82, 83,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 86, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
+ 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
+ 0, 76, 0, 0, 0, 105, 77, 91, 0, 1,
+ 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 86, 33, 34, 35, 0, 0, 0, 37,
+ 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
+ 0, 0, 0, 72, 0, 0, 0, 88, 89, 0,
+ 76, 0, 0, 0, 105, 77, 91, 0, 1, 78,
+ 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
+ 25, 0, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 86, 0, 34, 35, 0, 0, 0, 37, 38,
+ 39, 40, 87, 42, 43, 71, 0, 0, 0, 0,
+ 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 105, 0, 91, 2, 3, 4, 5,
+ 6, 0, 0, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
+ 5, 6, 335, 48, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 0, 0, 336, 1, 0, 47, 0, 0, 0, 2,
+ 3, 4, 5, 6, 281, 0, 7, 8, 9, 10,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 0, 1, 0, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 322, 48, 7, 8, 9,
+ 44, 45, 0, 0, 1, 0, 330, 47, 0, 0,
+ 2, 3, 4, 5, 6, 0, 281, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 323, 1, 0, 47, 0,
- 0, 0, 2, 3, 4, 5, 6, 268, 0, 7,
- 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
- 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
- 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 1, 0, 317,
- 47, 0, 0, 2, 3, 4, 5, 6, 0, 268,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 0, 328,
- 0, 47, 0, 0, 0, 1, 0, 0, 332, 0,
- 268, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 43, 44, 45, 0, 0, 0, 341, 0, 47, 0,
+ 0, 0, 1, 0, 0, 345, 0, 281, 2, 3,
+ 4, 5, 6, 0, 0, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
+ 3, 4, 5, 6, 0, 281, 7, 8, 9, 10,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 0, 0, 357, 1, 0, 47, 0, 0,
+ 0, 2, 3, 4, 5, 6, 281, 0, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 268, 7,
- 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
- 18, 19, 20, 21, 0, 22, 23, 24, 25, 0,
- 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 0, 0, 344, 1, 0,
- 47, 0, 0, 0, 2, 3, 4, 5, 6, 268,
- 0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 42, 43, 44, 45, 0, 0, 363, 1, 0, 47,
+ 0, 0, 0, 2, 3, 4, 5, 6, 281, 0,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
+ 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 0, 0, 1, 370,
+ 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
+ 281, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 350,
- 1, 0, 47, 0, 0, 0, 2, 3, 4, 5,
- 6, 268, 0, 7, 8, 9, 10, 11, 12, 13,
+ 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
+ 371, 0, 47, 0, 0, 2, 3, 4, 5, 6,
+ 0, 281, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
+ 1, 0, 0, 47, 0, 0, 2, 3, 4, 5,
+ 6, 0, 262, 7, 8, 9, 10, 11, 12, 13,
0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 1, 357, 0, 47, 0, 0, 2, 3, 4,
- 5, 6, 0, 268, 7, 8, 9, 10, 11, 12,
+ 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
+ 5, 6, 0, 281, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 358, 0, 47, 0, 0, 2, 3,
- 4, 5, 6, 0, 268, 7, 8, 9, 10, 11,
+ 0, 0, 1, 0, 0, 47, 0, 0, 2, 3,
+ 4, 5, 6, 0, 337, 7, 8, 9, 10, 11,
12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 250, 7, 8, 9, 10,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
+ 3, 4, 5, 6, 0, 346, 7, 8, 9, 10,
+ 0, 12, 13, 0, 15, 16, 17, 18, 19, 69,
+ 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 0, 0, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 268, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 1, 0, 0, 47, 0,
- 0, 2, 3, 4, 5, 6, 0, 324, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 1, 0, 0, 47,
- 0, 0, 2, 3, 4, 5, 6, 0, 333, 7,
- 8, 9, 10, 0, 12, 13, 0, 15, 16, 17,
- 18, 19, 69, 21, 0, 22, 0, 24, 25, 0,
- 27, 28, 29, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 71, 45, 1, 281, 282, 0, 0,
- 47, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
- 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 71, 0, 1, 0, 0, 0, 0, 72,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 68, 17, 18, 0,
- 69, 70, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 71, 147, 148, 149, 150, 172, 173, 72, 174,
- 0, 0, 154, 155, 175, 147, 148, 149, 150, 172,
- 173, 0, 174, 0, 0, 154, 155, 175, 0, 0,
- 157, 158, 159, 160, 161, 162, 163, 0, 0, 202,
- 0, 203, 0, 157, 158, 159, 160, 161, 162, 163,
- 0, 0, 0, 0, 203, 232, 233, 234, 235, 236,
- 237, 0, 238, 0, 0, 239, 240, 241, 147, 148,
- 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
- 175, 0, 0, 242, 243, 244, 245, 246, 247, 248,
- 0, 0, 249, 0, 0, 0, 157, 158, 159, 160,
- 161, 162, 163, 0, 258, 147, 148, 149, 150, 172,
- 173, 0, 174, 0, 0, 154, 155, 175, 147, 148,
- 149, 150, 172, 173, 0, 174, 0, 0, 154, 155,
- 175, 0, 0, 157, 158, 159, 160, 161, 162, 163,
- 0, 314, 0, 0, 0, 0, 157, 158, 159, 160,
- 161, 162, 163, 0, 346, 147, 148, 149, 150, 172,
- 173, 0, 174, 0, 0, 154, 155, 175, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
- 0, 352, 147, 148, 149, 150, 172, 173, 0, 174,
- 0, 0, 154, 155, 175, 0, 0, 0, 0, 0,
- 200, 201, 0, 0, 0, 0, 0, 0, 0, 0,
- 157, 158, 159, 160, 161, 162, 163, 147, 148, 149,
- 150, 172, 173, 0, 174, 0, 0, 154, 155, 175,
- 232, 233, 234, 235, 236, 237, 0, 238, 0, 0,
- 239, 240, 241, 0, 0, 157, 158, 159, 160, 161,
- 162, 163, 0, 0, 0, 0, 0, 0, 242, 243,
- 244, 245, 246, 247, 248, 147, 148, 149, 150, 0,
- 0, 0, 174, 0, 0, 154, 155, 175, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 157, 158, 159, 160, 161, 162, 163
+ 71, 45, 1, 294, 295, 0, 0, 47, 2, 3,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
+ 0, 1, 0, 0, 0, 0, 72, 2, 3, 4,
+ 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
+ 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 71, 0,
+ 1, 0, 0, 0, 0, 72, 80, 81, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 71, 159, 160,
+ 161, 162, 184, 185, 72, 186, 0, 0, 166, 167,
+ 187, 159, 160, 161, 162, 184, 185, 0, 186, 0,
+ 0, 166, 167, 187, 0, 0, 169, 170, 171, 172,
+ 173, 174, 175, 0, 0, 214, 0, 215, 0, 169,
+ 170, 171, 172, 173, 174, 175, 0, 0, 0, 0,
+ 215, 244, 245, 246, 247, 248, 249, 0, 250, 0,
+ 0, 251, 252, 253, 159, 160, 161, 162, 184, 185,
+ 0, 186, 0, 0, 166, 167, 187, 0, 0, 254,
+ 255, 256, 257, 258, 259, 260, 0, 0, 261, 0,
+ 0, 0, 169, 170, 171, 172, 173, 174, 175, 0,
+ 271, 159, 160, 161, 162, 184, 185, 0, 186, 0,
+ 0, 166, 167, 187, 159, 160, 161, 162, 184, 185,
+ 0, 186, 0, 0, 166, 167, 187, 0, 0, 169,
+ 170, 171, 172, 173, 174, 175, 0, 327, 0, 0,
+ 0, 0, 169, 170, 171, 172, 173, 174, 175, 0,
+ 359, 159, 160, 161, 162, 184, 185, 0, 186, 0,
+ 0, 166, 167, 187, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 169,
+ 170, 171, 172, 173, 174, 175, 0, 365, 159, 160,
+ 161, 162, 184, 185, 0, 186, 0, 0, 166, 167,
+ 187, 0, 0, 0, 0, 0, 212, 213, 0, 0,
+ 0, 0, 0, 0, 0, 0, 169, 170, 171, 172,
+ 173, 174, 175, 159, 160, 161, 162, 184, 185, 0,
+ 186, 0, 0, 166, 167, 187, 244, 245, 246, 247,
+ 248, 249, 0, 250, 0, 0, 251, 252, 253, 0,
+ 0, 169, 170, 171, 172, 173, 174, 175, 0, 0,
+ 0, 0, 0, 0, 254, 255, 256, 257, 258, 259,
+ 260
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 0, 47, 82, 164, 84, 85, 9,
- 250, 0, 252, 270, 14, 73, 39, 45, 258, 88,
- 88, 21, 42, 23, 92, 19, 26, 39, 86, 29,
- 97, 57, 52, 273, 28, 97, 87, 104, 44, 45,
- 91, 97, 104, 87, 202, 45, 46, 47, 104, 306,
- 50, 308, 87, 50, 89, 122, 313, 83, 84, 126,
- 122, 55, 319, 86, 126, 86, 122, 41, 86, 87,
- 126, 180, 181, 101, 91, 86, 86, 86, 86, 336,
- 87, 86, 86, 86, 324, 86, 343, 87, 86, 117,
- 347, 249, 91, 333, 86, 57, 353, 92, 60, 356,
- 340, 101, 86, 34, 57, 105, 346, 92, 23, 86,
- 52, 86, 352, 34, 24, 86, 89, 117, 80, 81,
- 82, 83, 84, 200, 201, 125, 86, 42, 81, 82,
- 83, 84, 86, 92, 86, 50, 51, 52, 53, 54,
- 55, 86, 57, 86, 42, 60, 61, 62, 86, 192,
- 86, 86, 86, 86, 86, 50, 316, 28, 208, 126,
- 179, 180, 181, 78, 79, 80, 81, 82, 83, 84,
- -1, 171, -1, 143, 171, -1, -1, -1, -1, 179,
- 180, 181, -1, -1, -1, -1, 42, -1, -1, -1,
- -1, -1, 192, 193, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, 208, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 10, 11, 78, 79, 80, 81, 82, 83, 84, 19,
- 86, -1, -1, -1, -1, -1, -1, -1, 28, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 250, -1, 252, -1, 44, -1, -1, -1, 258, -1,
- -1, 261, -1, -1, -1, 55, -1, -1, -1, -1,
- 270, -1, -1, 273, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 315, -1, -1,
- 80, 81, -1, 83, -1, -1, 86, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 306, 307, 308, 99,
- 307, -1, -1, 313, -1, 315, 106, -1, -1, 319,
- -1, -1, 322, -1, 324, 322, -1, -1, -1, -1,
- -1, -1, 332, 333, -1, -1, 336, -1, -1, -1,
- 340, -1, -1, 343, -1, -1, 346, 347, -1, 349,
- -1, -1, 352, 353, -1, -1, 356, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, -1, -1, -1, -1, -1, -1,
- -1, -1, 172, 173, 174, 175, -1, -1, -1, 41,
- -1, -1, -1, -1, -1, -1, 186, 187, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, -1, 204, 205, -1, 207, -1, -1,
- -1, 211, -1, 213, -1, -1, 78, 79, 80, 81,
+ 0, 29, 21, 47, 0, 176, 39, 57, 86, 9,
+ 88, 89, 39, 262, 14, 264, 19, 45, 42, 283,
+ 0, 21, 271, 23, 103, 28, 26, 73, 52, 29,
+ 87, 110, 88, 83, 84, 103, 92, 286, 92, 87,
+ 86, 89, 110, 214, 86, 45, 46, 47, 57, 128,
+ 50, 60, 55, 86, 50, 319, 57, 321, 88, 138,
+ 128, 86, 326, 86, 80, 81, 82, 83, 332, 86,
+ 138, 80, 81, 82, 83, 84, 191, 192, 193, 107,
+ 81, 82, 83, 84, 86, 349, 41, 103, 337, 87,
+ 261, 91, 356, 91, 110, 123, 360, 346, 80, 81,
+ 82, 83, 366, 86, 353, 369, 92, 107, 86, 23,
+ 359, 111, 128, 81, 82, 83, 365, 44, 45, 86,
+ 87, 86, 138, 123, 86, 192, 193, 86, 42, 86,
+ 86, 131, 34, 91, 212, 213, 50, 51, 52, 53,
+ 54, 55, 91, 57, 87, 86, 60, 61, 62, 52,
+ 86, 34, 89, 24, 86, 86, 86, 86, 92, 50,
+ 204, 86, 86, 42, 78, 79, 80, 81, 82, 83,
+ 84, 86, 191, 192, 193, 86, 86, 86, 50, 51,
+ 52, 53, 86, 183, 329, 57, 86, 183, 60, 61,
+ 62, 191, 192, 193, 28, 155, 138, -1, 220, -1,
+ -1, -1, -1, -1, 204, 205, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, -1,
- -1, -1, -1, 5, -1, -1, -1, 257, 10, -1,
- -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
- 22, 23, -1, -1, 274, 27, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, 327, -1, 81,
- 82, -1, -1, -1, 5, -1, 88, 337, 90, 10,
- 92, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, -1, 44, 45, -1, 47, -1, -1, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, -1, -1, -1, -1, -1, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 5, 87, 88, -1, 90,
- 10, -1, -1, 13, 14, 15, -1, -1, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, -1, -1, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 5, 87, 88, -1,
- 90, 10, -1, -1, 13, 14, 15, -1, -1, -1,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
- -1, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, -1, -1, -1, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, 5, 87, 88,
- -1, 90, 10, -1, -1, 13, 14, 15, -1, -1,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
+ 220, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ 19, -1, -1, -1, -1, -1, -1, -1, -1, 28,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
+ -1, -1, 262, -1, 264, -1, 55, -1, -1, 42,
+ -1, 271, -1, -1, 274, -1, -1, 50, 51, 52,
+ 53, 54, 55, 283, 57, -1, 286, 60, 61, 62,
+ -1, -1, -1, -1, -1, 84, 85, -1, 87, -1,
+ 328, 90, -1, -1, -1, 78, 79, 80, 81, 82,
+ 83, 84, -1, 86, -1, -1, 105, -1, -1, 319,
+ 320, 321, -1, 112, 320, -1, 326, -1, 328, -1,
+ -1, -1, 332, -1, -1, 335, -1, 337, -1, 335,
+ -1, -1, -1, -1, -1, 345, 346, -1, -1, 349,
+ -1, -1, -1, 353, -1, -1, 356, -1, -1, 359,
+ 360, -1, 362, -1, -1, 365, 366, -1, -1, 369,
+ 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, -1, -1, -1,
+ -1, -1, -1, -1, -1, 184, 185, 186, 187, -1,
+ -1, -1, 41, -1, -1, -1, -1, -1, -1, 198,
+ 199, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, -1, -1, -1, 216, 217, -1,
+ 219, -1, -1, -1, 223, -1, 225, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 244, 245, 246, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
+ 259, 260, -1, -1, -1, -1, -1, 5, -1, -1,
+ -1, 270, 10, -1, -1, 13, 14, 15, -1, -1,
+ -1, 19, 20, 21, 22, 23, -1, -1, 287, 27,
-1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
-1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
- -1, -1, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
+ 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 5, -1,
- 88, -1, 90, 10, -1, -1, 13, 14, 15, -1,
+ -1, 340, -1, 81, 82, -1, -1, -1, 5, -1,
+ 88, 350, 90, 10, 92, -1, 13, 14, 15, -1,
-1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
37, -1, 39, 40, -1, 42, -1, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
+ 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, -1, -1, -1, 5,
- -1, 88, 89, 90, 10, -1, -1, 13, 14, 15,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
+ 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
-1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
-1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
36, 37, -1, 39, 40, -1, 42, -1, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ -1, 47, -1, -1, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, 81, 82, -1, 5, -1,
- -1, -1, 88, 10, 90, -1, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, -1, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, 81, 82, -1, 5, -1, -1,
- -1, 88, 10, 90, -1, 13, 14, 15, -1, -1,
- -1, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, 81, 82, -1, 5, -1, -1, -1,
- 88, 10, 90, -1, 13, 14, 15, -1, -1, -1,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, 81, 82, -1, 5, -1, -1, -1, 88,
- 10, 90, -1, 13, 14, 15, -1, -1, -1, 19,
- 20, 21, 22, 23, -1, -1, -1, 27, -1, -1,
- -1, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, -1, 42, -1, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, 81, 82, -1, 5, -1, -1, -1, 88, 10,
- 90, -1, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, -1, -1, 56, 57, 58, 59, -1,
- -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
- 81, 82, -1, 5, -1, -1, -1, 88, 10, 90,
+ -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ 5, 87, 88, -1, 90, 10, -1, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
+ 45, -1, 47, -1, -1, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, 5, 87, 88, -1, 90, 10, -1, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
+ 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, 5, -1, 88, -1, 90, 10, -1, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, -1, -1, 5, -1, 88, 89, 90, 10, -1,
-1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, -1, -1, 56, -1, 58, 59, -1, -1,
- -1, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
- -1, -1, -1, 13, -1, -1, 88, -1, 90, 19,
- 20, 21, 22, 23, -1, -1, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, 46, 47, 48, 49,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
+ 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
+ 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
+ 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
+ 45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
+ 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
+ -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
+ -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
+ -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, -1, 42, -1, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
+ -1, 77, 5, -1, -1, 81, 82, 10, -1, -1,
+ 13, 14, 15, -1, 90, -1, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, -1, -1, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
+ -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
+ -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
+ 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
+ -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
+ 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
+ -1, -1, 56, 57, 58, 59, -1, -1, -1, 63,
+ 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
+ -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
+ 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
+ 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
+ -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
+ 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
+ -1, 56, -1, 58, 59, -1, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
+ -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
+ 13, -1, -1, 88, -1, 90, 19, 20, 21, 22,
+ 23, -1, -1, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, -1, 42,
+ 43, 44, 45, 46, 47, 48, 49, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
+ 22, 23, 24, 86, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
+ 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ -1, -1, 74, 13, -1, 77, -1, -1, -1, 19,
+ 20, 21, 22, 23, 86, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, -1, 13, -1, -1, 77, -1, -1,
- 19, 20, 21, 22, 23, 24, 86, 26, 27, 28,
+ 70, 71, -1, -1, 13, -1, 76, 77, -1, -1,
+ 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 74, 13, -1, 77, -1,
- -1, -1, 19, 20, 21, 22, 23, 86, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 13, -1, 76,
- 77, -1, -1, 19, 20, 21, 22, 23, -1, 86,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, -1, 75,
- -1, 77, -1, -1, -1, 13, -1, -1, 16, -1,
- 86, 19, 20, 21, 22, 23, -1, -1, 26, 27,
+ 69, 70, 71, -1, -1, -1, 75, -1, 77, -1,
+ -1, -1, 13, -1, -1, 16, -1, 86, 19, 20,
+ 21, 22, 23, -1, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
+ 20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
+ -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, -1, -1, 74, 13, -1, 77, -1, -1,
+ -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, 43, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, -1, -1, 74, 13, -1,
- 77, -1, -1, -1, 19, 20, 21, 22, 23, 86,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
+ -1, -1, -1, 19, 20, 21, 22, 23, 86, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
+ -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
+ 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, -1, -1, 13, 75,
+ -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
+ 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 74,
- 13, -1, 77, -1, -1, -1, 19, 20, 21, 22,
- 23, 86, -1, 26, 27, 28, 29, 30, 31, 32,
+ 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
+ 75, -1, 77, -1, -1, 19, 20, 21, 22, 23,
+ -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
+ 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
+ 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
+ 13, -1, -1, 77, -1, -1, 19, 20, 21, 22,
+ 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
-1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, 75, -1, 77, -1, -1, 19, 20, 21,
+ -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 13, 75, -1, 77, -1, -1, 19, 20,
+ -1, -1, 13, -1, -1, 77, -1, -1, 19, 20,
21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
-1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
@@ -1380,71 +1426,56 @@ static const yytype_int16 yycheck[] =
-1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
+ -1, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, -1, 42, -1, 44, 45, -1, 47, 48, 49,
-1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, -1, -1, 77, -1, -1,
- 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
- 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, 13, -1, -1, 77, -1,
- -1, 19, 20, 21, 22, 23, -1, 86, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 13, -1, -1, 77,
- -1, -1, 19, 20, 21, 22, 23, -1, 86, 26,
- 27, 28, 29, -1, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, -1, 42, -1, 44, 45, -1,
- 47, 48, 49, -1, -1, -1, -1, 54, 55, 56,
- 57, 58, 59, -1, -1, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 13, 14, 15, -1, -1,
- 77, 19, 20, 21, 22, 23, -1, -1, -1, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, 13, -1, -1, -1, -1, 77,
- 19, 20, 21, 22, 23, -1, -1, -1, 27, -1,
- -1, -1, 31, 32, -1, 34, 35, 36, 37, -1,
- 39, 40, -1, 42, -1, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 50, 51, 52, 53, 54, 55, 77, 57,
- -1, -1, 60, 61, 62, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
- 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
- -1, 89, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, -1, 89, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, 87, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, 50, 51,
+ 70, 71, 13, 14, 15, -1, -1, 77, 19, 20,
+ 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ -1, 13, -1, -1, -1, -1, 77, 19, 20, 21,
+ 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
+ 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
+ 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
+ 13, -1, -1, -1, -1, 77, 19, 20, 21, 22,
+ 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
+ -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 50, 51,
+ 52, 53, 54, 55, 77, 57, -1, -1, 60, 61,
+ 62, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, 87, -1, 89, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
+ 89, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, 87, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
+ -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
+ -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
+ 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
+ -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, -1, 86, 50, 51,
52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 86, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, 86, 50, 51, 52, 53, 54,
- 55, -1, 57, -1, -1, 60, 61, 62, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84,
- -1, 86, 50, 51, 52, 53, 54, 55, -1, 57,
- -1, -1, 60, 61, 62, -1, -1, -1, -1, -1,
- 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
- 78, 79, 80, 81, 82, 83, 84, 50, 51, 52,
- 53, 54, 55, -1, 57, -1, -1, 60, 61, 62,
- 50, 51, 52, 53, 54, 55, -1, 57, -1, -1,
- 60, 61, 62, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, 81, 82, 83, 84, 50, 51, 52, 53, -1,
- -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, 81, 82, 83, 84
+ 62, -1, -1, -1, -1, -1, 68, 69, -1, -1,
+ -1, -1, -1, -1, -1, -1, 78, 79, 80, 81,
+ 82, 83, 84, 50, 51, 52, 53, 54, 55, -1,
+ 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
+ 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
+ -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
+ 84
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1459,35 +1490,36 @@ static const yytype_uint8 yystos[] =
95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
115, 116, 117, 118, 119, 120, 39, 86, 35, 39,
40, 70, 77, 105, 106, 107, 5, 10, 14, 15,
- 27, 34, 56, 67, 81, 82, 88, 90, 105, 111,
- 112, 124, 125, 128, 131, 132, 133, 135, 137, 88,
- 135, 105, 39, 111, 135, 44, 45, 105, 125, 127,
- 105, 105, 111, 112, 106, 135, 106, 105, 109, 0,
- 96, 111, 135, 86, 86, 87, 135, 135, 133, 135,
- 133, 133, 89, 135, 14, 15, 92, 105, 129, 130,
- 135, 138, 139, 88, 86, 86, 36, 50, 51, 52,
- 53, 54, 55, 57, 60, 61, 62, 78, 79, 80,
- 81, 82, 83, 84, 87, 124, 131, 134, 136, 137,
- 135, 41, 54, 55, 57, 62, 106, 86, 86, 32,
- 58, 59, 105, 135, 42, 52, 114, 41, 86, 86,
- 86, 86, 42, 86, 86, 106, 86, 105, 36, 136,
- 68, 69, 87, 89, 92, 92, 91, 92, 87, 91,
- 91, 87, 138, 34, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 139, 50, 51, 52, 53, 54, 55, 57, 60,
- 61, 62, 78, 79, 80, 81, 82, 83, 84, 87,
- 86, 108, 86, 125, 126, 126, 126, 52, 86, 135,
- 135, 73, 86, 99, 100, 101, 102, 109, 86, 108,
- 121, 122, 123, 86, 34, 133, 133, 139, 135, 135,
- 135, 14, 15, 105, 130, 135, 89, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 139, 121, 24, 121, 86,
- 86, 86, 135, 121, 86, 105, 86, 76, 123, 121,
- 135, 89, 24, 74, 86, 108, 23, 42, 75, 106,
- 102, 86, 16, 86, 108, 86, 121, 42, 135, 86,
- 86, 104, 105, 121, 74, 135, 86, 121, 86, 87,
- 74, 86, 86, 121, 105, 86, 121, 75, 75, 86,
- 86
+ 19, 20, 21, 22, 27, 34, 56, 67, 81, 82,
+ 88, 90, 105, 111, 112, 124, 125, 128, 129, 130,
+ 133, 134, 135, 138, 140, 88, 138, 105, 39, 111,
+ 138, 44, 45, 105, 125, 127, 105, 105, 111, 112,
+ 106, 138, 106, 105, 109, 0, 96, 111, 138, 86,
+ 86, 87, 124, 134, 136, 136, 136, 136, 138, 138,
+ 135, 138, 135, 135, 89, 138, 14, 15, 92, 105,
+ 131, 132, 138, 141, 142, 88, 86, 86, 36, 50,
+ 51, 52, 53, 54, 55, 57, 60, 61, 62, 78,
+ 79, 80, 81, 82, 83, 84, 87, 124, 133, 137,
+ 139, 140, 138, 41, 54, 55, 57, 62, 106, 86,
+ 86, 32, 58, 59, 105, 138, 42, 52, 114, 41,
+ 86, 86, 86, 86, 42, 86, 86, 106, 86, 105,
+ 36, 139, 68, 69, 87, 89, 92, 92, 91, 92,
+ 87, 91, 91, 87, 141, 34, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 142, 50, 51, 52, 53, 54, 55,
+ 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
+ 84, 87, 86, 108, 86, 125, 126, 128, 126, 126,
+ 52, 86, 138, 138, 73, 86, 99, 100, 101, 102,
+ 109, 86, 108, 121, 122, 123, 86, 34, 135, 135,
+ 142, 138, 138, 138, 14, 15, 105, 132, 138, 89,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 142, 121,
+ 24, 121, 86, 86, 86, 138, 121, 86, 105, 86,
+ 76, 123, 121, 138, 89, 24, 74, 86, 108, 23,
+ 42, 75, 106, 102, 86, 16, 86, 108, 86, 121,
+ 42, 138, 86, 86, 104, 105, 121, 74, 138, 86,
+ 121, 86, 87, 74, 86, 86, 121, 105, 86, 121,
+ 75, 75, 86, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1505,14 +1537,15 @@ static const yytype_uint8 yyr1[] =
112, 112, 112, 112, 113, 113, 113, 113, 114, 114,
115, 115, 115, 116, 116, 117, 117, 117, 117, 118,
118, 118, 119, 119, 120, 121, 121, 122, 122, 123,
- 123, 124, 124, 124, 124, 124, 124, 124, 124, 125,
- 126, 127, 128, 128, 128, 129, 129, 130, 130, 130,
- 131, 132, 132, 133, 133, 133, 134, 134, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 137, 137, 138, 138,
- 139, 139
+ 123, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 125, 126, 126, 127, 128, 128, 129, 129, 130,
+ 130, 130, 131, 131, 132, 132, 132, 133, 134, 134,
+ 135, 135, 135, 136, 136, 137, 137, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 140, 140, 141, 141, 142,
+ 142
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1531,13 +1564,14 @@ static const yytype_int8 yyr2[] =
3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
11, 12, 4, 6, 4, 0, 1, 1, 2, 1,
1, 1, 1, 1, 1, 2, 4, 1, 1, 1,
- 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
- 3, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 2, 2, 3,
+ 3, 3, 1, 3, 3, 3, 3, 3, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 1, 1, 3,
+ 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 4, 4, 0, 1,
- 1, 3
+ 3, 3, 3, 3, 3, 4, 4, 0, 1, 1,
+ 3
};
@@ -1809,51 +1843,51 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1815 "engines/director/lingo/lingo-gr.cpp"
+#line 1849 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1821 "engines/director/lingo/lingo-gr.cpp"
+#line 1855 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tVARID: /* tVARID */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1827 "engines/director/lingo/lingo-gr.cpp"
+#line 1861 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1833 "engines/director/lingo/lingo-gr.cpp"
+#line 1867 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1839 "engines/director/lingo/lingo-gr.cpp"
+#line 1873 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1845 "engines/director/lingo/lingo-gr.cpp"
+#line 1879 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1851 "engines/director/lingo/lingo-gr.cpp"
+#line 1885 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 190 "engines/director/lingo/lingo-gr.y"
+#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1857 "engines/director/lingo/lingo-gr.cpp"
+#line 1891 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2119,1047 +2153,1083 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 196 "engines/director/lingo/lingo-gr.y"
+#line 197 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2125 "engines/director/lingo/lingo-gr.cpp"
+#line 2159 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 198 "engines/director/lingo/lingo-gr.y"
+#line 199 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2136 "engines/director/lingo/lingo-gr.cpp"
+#line 2170 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 204 "engines/director/lingo/lingo-gr.y"
+#line 205 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2146 "engines/director/lingo/lingo-gr.cpp"
+#line 2180 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 211 "engines/director/lingo/lingo-gr.y"
+#line 212 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2152 "engines/director/lingo/lingo-gr.cpp"
+#line 2186 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 244 "engines/director/lingo/lingo-gr.y"
+#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2158 "engines/director/lingo/lingo-gr.cpp"
+#line 2192 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 248 "engines/director/lingo/lingo-gr.y"
+#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2164 "engines/director/lingo/lingo-gr.cpp"
+#line 2198 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 250 "engines/director/lingo/lingo-gr.y"
+#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2170 "engines/director/lingo/lingo-gr.cpp"
+#line 2204 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 252 "engines/director/lingo/lingo-gr.y"
+#line 253 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2176 "engines/director/lingo/lingo-gr.cpp"
+#line 2210 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 256 "engines/director/lingo/lingo-gr.y"
+#line 257 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2187 "engines/director/lingo/lingo-gr.cpp"
+#line 2221 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 262 "engines/director/lingo/lingo-gr.y"
+#line 263 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2197 "engines/director/lingo/lingo-gr.cpp"
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 269 "engines/director/lingo/lingo-gr.y"
+#line 270 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2203 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 275 "engines/director/lingo/lingo-gr.y"
+#line 276 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2212 "engines/director/lingo/lingo-gr.cpp"
+#line 2246 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 279 "engines/director/lingo/lingo-gr.y"
+#line 280 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2219 "engines/director/lingo/lingo-gr.cpp"
+#line 2253 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 284 "engines/director/lingo/lingo-gr.y"
+#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2225 "engines/director/lingo/lingo-gr.cpp"
+#line 2259 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 285 "engines/director/lingo/lingo-gr.y"
+#line 286 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2231 "engines/director/lingo/lingo-gr.cpp"
+#line 2265 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tAFTER */
-#line 291 "engines/director/lingo/lingo-gr.y"
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
+#line 2271 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tAND */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2243 "engines/director/lingo/lingo-gr.cpp"
+#line 2277 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tBEFORE */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2249 "engines/director/lingo/lingo-gr.cpp"
+#line 2283 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tCAST */
-#line 294 "engines/director/lingo/lingo-gr.y"
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2255 "engines/director/lingo/lingo-gr.cpp"
+#line 2289 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tCHAR */
-#line 295 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2261 "engines/director/lingo/lingo-gr.cpp"
+#line 2295 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tDOWN */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2267 "engines/director/lingo/lingo-gr.cpp"
+#line 2301 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tFIELD */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2273 "engines/director/lingo/lingo-gr.cpp"
+#line 2307 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tFRAME */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2279 "engines/director/lingo/lingo-gr.cpp"
+#line 2313 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tIN */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2285 "engines/director/lingo/lingo-gr.cpp"
+#line 2319 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tINTERSECTS */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2291 "engines/director/lingo/lingo-gr.cpp"
+#line 2325 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tINTO */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2297 "engines/director/lingo/lingo-gr.cpp"
+#line 2331 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tITEM */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2303 "engines/director/lingo/lingo-gr.cpp"
+#line 2337 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tLINE */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2343 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tMOD */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2315 "engines/director/lingo/lingo-gr.cpp"
+#line 2349 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tMOVIE */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2321 "engines/director/lingo/lingo-gr.cpp"
+#line 2355 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tNEXT */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2327 "engines/director/lingo/lingo-gr.cpp"
+#line 2361 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tNOT */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2333 "engines/director/lingo/lingo-gr.cpp"
+#line 2367 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tOF */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2339 "engines/director/lingo/lingo-gr.cpp"
+#line 2373 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tOPEN */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2345 "engines/director/lingo/lingo-gr.cpp"
+#line 2379 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tOR */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2351 "engines/director/lingo/lingo-gr.cpp"
+#line 2385 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tPREVIOUS */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2357 "engines/director/lingo/lingo-gr.cpp"
+#line 2391 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tREPEAT */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2363 "engines/director/lingo/lingo-gr.cpp"
+#line 2397 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tSCRIPT */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tSET */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2375 "engines/director/lingo/lingo-gr.cpp"
+#line 2409 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tSTARTS */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2381 "engines/director/lingo/lingo-gr.cpp"
+#line 2415 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tTELL */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2387 "engines/director/lingo/lingo-gr.cpp"
+#line 2421 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tTO */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2393 "engines/director/lingo/lingo-gr.cpp"
+#line 2427 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tASSERTERROR */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2399 "engines/director/lingo/lingo-gr.cpp"
+#line 2433 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tSPRITE */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2405 "engines/director/lingo/lingo-gr.cpp"
+#line 2439 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tWHILE */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2411 "engines/director/lingo/lingo-gr.cpp"
+#line 2445 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tWINDOW */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2417 "engines/director/lingo/lingo-gr.cpp"
+#line 2451 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tWITH */
-#line 337 "engines/director/lingo/lingo-gr.y"
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2423 "engines/director/lingo/lingo-gr.cpp"
+#line 2457 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tWITHIN */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2429 "engines/director/lingo/lingo-gr.cpp"
+#line 2463 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tWORD */
-#line 339 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2435 "engines/director/lingo/lingo-gr.cpp"
+#line 2469 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* idlist: %empty */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2475 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* nonemptyidlist: ID */
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 347 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2450 "engines/director/lingo/lingo-gr.cpp"
+#line 2484 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 350 "engines/director/lingo/lingo-gr.y"
+#line 351 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2458 "engines/director/lingo/lingo-gr.cpp"
+#line 2492 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* proc: ID cmdargs '\n' */
-#line 373 "engines/director/lingo/lingo-gr.y"
+#line 374 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2464 "engines/director/lingo/lingo-gr.cpp"
+#line 2498 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* proc: tPUT cmdargs '\n' */
-#line 374 "engines/director/lingo/lingo-gr.y"
+#line 375 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2470 "engines/director/lingo/lingo-gr.cpp"
+#line 2504 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* proc: tGO cmdargs '\n' */
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 376 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2476 "engines/director/lingo/lingo-gr.cpp"
+#line 2510 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* proc: tGO frameargs '\n' */
-#line 376 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2482 "engines/director/lingo/lingo-gr.cpp"
+#line 2516 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* proc: tPLAY cmdargs '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2488 "engines/director/lingo/lingo-gr.cpp"
+#line 2522 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* proc: tPLAY frameargs '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2494 "engines/director/lingo/lingo-gr.cpp"
+#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* proc: tNEXT tREPEAT '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2500 "engines/director/lingo/lingo-gr.cpp"
+#line 2534 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* proc: tEXIT tREPEAT '\n' */
-#line 380 "engines/director/lingo/lingo-gr.y"
+#line 381 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2506 "engines/director/lingo/lingo-gr.cpp"
+#line 2540 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* proc: tEXIT '\n' */
-#line 381 "engines/director/lingo/lingo-gr.y"
+#line 382 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2512 "engines/director/lingo/lingo-gr.cpp"
+#line 2546 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* proc: tASSERTERROR stmtoneliner */
-#line 382 "engines/director/lingo/lingo-gr.y"
+#line 383 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2518 "engines/director/lingo/lingo-gr.cpp"
+#line 2552 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* cmdargs: %empty */
-#line 385 "engines/director/lingo/lingo-gr.y"
+#line 386 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2526 "engines/director/lingo/lingo-gr.cpp"
+#line 2560 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* cmdargs: expr */
-#line 388 "engines/director/lingo/lingo-gr.y"
+#line 389 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2536 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* cmdargs: expr ',' nonemptyexprlist */
-#line 393 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2545 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* cmdargs: expr expr_nounarymath */
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+#line 2590 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 404 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2566 "engines/director/lingo/lingo-gr.cpp"
+#line 2600 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* cmdargs: '(' ')' */
-#line 408 "engines/director/lingo/lingo-gr.y"
+#line 409 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2574 "engines/director/lingo/lingo-gr.cpp"
+#line 2608 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 411 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 2617 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* frameargs: tFRAME expr */
-#line 421 "engines/director/lingo/lingo-gr.y"
+#line 422 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2593 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* frameargs: tMOVIE expr */
-#line 426 "engines/director/lingo/lingo-gr.y"
+#line 427 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2604 "engines/director/lingo/lingo-gr.cpp"
+#line 2638 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 432 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* frameargs: expr tOF tMOVIE expr */
-#line 438 "engines/director/lingo/lingo-gr.y"
+#line 439 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2626 "engines/director/lingo/lingo-gr.cpp"
+#line 2660 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* frameargs: tFRAME expr expr_nounarymath */
-#line 444 "engines/director/lingo/lingo-gr.y"
+#line 445 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+#line 2671 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 452 "engines/director/lingo/lingo-gr.y"
+#line 453 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2643 "engines/director/lingo/lingo-gr.cpp"
+#line 2677 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 454 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2683 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 454 "engines/director/lingo/lingo-gr.y"
+#line 455 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2655 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* asgn: tSET varorthe to expr '\n' */
-#line 455 "engines/director/lingo/lingo-gr.y"
+#line 456 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2661 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* definevars: tGLOBAL idlist '\n' */
-#line 460 "engines/director/lingo/lingo-gr.y"
+#line 461 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* definevars: tPROPERTY idlist '\n' */
-#line 461 "engines/director/lingo/lingo-gr.y"
+#line 462 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* definevars: tINSTANCE idlist '\n' */
-#line 462 "engines/director/lingo/lingo-gr.y"
+#line 463 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* ifstmt: tIF expr tTHEN stmt */
-#line 465 "engines/director/lingo/lingo-gr.y"
+#line 466 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2688 "engines/director/lingo/lingo-gr.cpp"
+#line 2722 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 469 "engines/director/lingo/lingo-gr.y"
+#line 470 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 473 "engines/director/lingo/lingo-gr.y"
+#line 474 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2706 "engines/director/lingo/lingo-gr.cpp"
+#line 2740 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 479 "engines/director/lingo/lingo-gr.y"
+#line 480 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 483 "engines/director/lingo/lingo-gr.y"
+#line 484 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2724 "engines/director/lingo/lingo-gr.cpp"
+#line 2758 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 487 "engines/director/lingo/lingo-gr.y"
+#line 488 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 491 "engines/director/lingo/lingo-gr.y"
+#line 492 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2772 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 493 "engines/director/lingo/lingo-gr.y"
+#line 494 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2779 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 495 "engines/director/lingo/lingo-gr.y"
+#line 496 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2752 "engines/director/lingo/lingo-gr.cpp"
+#line 2786 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* tell: tTELL expr tTO stmtoneliner */
-#line 499 "engines/director/lingo/lingo-gr.y"
+#line 500 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 503 "engines/director/lingo/lingo-gr.y"
+#line 504 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2802 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* when: tWHEN ID tTHEN expr */
-#line 507 "engines/director/lingo/lingo-gr.y"
+#line 508 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2808 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* stmtlist: %empty */
-#line 509 "engines/director/lingo/lingo-gr.y"
+#line 510 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2814 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* nonemptystmtlist: stmtlistline */
-#line 514 "engines/director/lingo/lingo-gr.y"
+#line 515 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 520 "engines/director/lingo/lingo-gr.y"
+#line 521 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* stmtlistline: '\n' */
-#line 527 "engines/director/lingo/lingo-gr.y"
+#line 528 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* simpleexpr_noparens_nounarymath: tINT */
-#line 534 "engines/director/lingo/lingo-gr.y"
+#line 535 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 535 "engines/director/lingo/lingo-gr.y"
+#line 536 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 536 "engines/director/lingo/lingo-gr.y"
+#line 537 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 537 "engines/director/lingo/lingo-gr.y"
+#line 538 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 538 "engines/director/lingo/lingo-gr.y"
+#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 539 "engines/director/lingo/lingo-gr.y"
+#line 540 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* var: ID */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 131: /* var: ID */
+#line 547 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* list: '[' exprlist ']' */
-#line 554 "engines/director/lingo/lingo-gr.y"
+ case 135: /* chunk: tFIELD simpleexpr_noparens */
+#line 557 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.node) = new FuncNode(new Common::String("field"), args); }
+#line 2892 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 136: /* chunk: tCAST simpleexpr_noparens */
+#line 561 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.node) = new FuncNode(new Common::String("cast"), args); }
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 137: /* object: tSCRIPT simpleexpr_noparens */
+#line 567 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.node) = new FuncNode(new Common::String("script"), args); }
+#line 2910 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 138: /* object: tWINDOW simpleexpr_noparens */
+#line 571 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[0].node));
+ (yyval.node) = new FuncNode(new Common::String("window"), args); }
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 139: /* list: '[' exprlist ']' */
+#line 577 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* list: '[' ':' ']' */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 140: /* list: '[' ':' ']' */
+#line 578 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* list: '[' proplist ']' */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 141: /* list: '[' proplist ']' */
+#line 579 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* proplist: proppair */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 142: /* proplist: proppair */
+#line 582 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2876 "engines/director/lingo/lingo-gr.cpp"
+#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* proplist: proplist ',' proppair */
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 143: /* proplist: proplist ',' proppair */
+#line 586 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2884 "engines/director/lingo/lingo-gr.cpp"
+#line 2954 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* proppair: tSYMBOL ':' expr */
-#line 568 "engines/director/lingo/lingo-gr.y"
+ case 144: /* proppair: tSYMBOL ':' expr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 2960 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* proppair: ID ':' expr */
-#line 569 "engines/director/lingo/lingo-gr.y"
+ case 145: /* proppair: ID ':' expr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2966 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* proppair: tSTRING ':' expr */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 146: /* proppair: tSTRING ':' expr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 2972 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* parens: '(' expr ')' */
-#line 573 "engines/director/lingo/lingo-gr.y"
+ case 147: /* parens: '(' expr ')' */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2908 "engines/director/lingo/lingo-gr.cpp"
+#line 2978 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* unarymath: '+' simpleexpr */
-#line 575 "engines/director/lingo/lingo-gr.y"
+ case 148: /* unarymath: '+' simpleexpr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2914 "engines/director/lingo/lingo-gr.cpp"
+#line 2984 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* unarymath: '-' simpleexpr */
-#line 576 "engines/director/lingo/lingo-gr.y"
+ case 149: /* unarymath: '-' simpleexpr */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2920 "engines/director/lingo/lingo-gr.cpp"
+#line 2990 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* expr: expr '+' expr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 159: /* expr: expr '+' expr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 2996 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* expr: expr '-' expr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 160: /* expr: expr '-' expr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2932 "engines/director/lingo/lingo-gr.cpp"
+#line 3002 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* expr: expr '*' expr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 161: /* expr: expr '*' expr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2938 "engines/director/lingo/lingo-gr.cpp"
+#line 3008 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* expr: expr '/' expr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 162: /* expr: expr '/' expr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2944 "engines/director/lingo/lingo-gr.cpp"
+#line 3014 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* expr: expr tMOD expr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 163: /* expr: expr tMOD expr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2950 "engines/director/lingo/lingo-gr.cpp"
+#line 3020 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* expr: expr '>' expr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 164: /* expr: expr '>' expr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2956 "engines/director/lingo/lingo-gr.cpp"
+#line 3026 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* expr: expr '<' expr */
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 165: /* expr: expr '<' expr */
+#line 624 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2962 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* expr: expr tEQ expr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 166: /* expr: expr tEQ expr */
+#line 625 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2968 "engines/director/lingo/lingo-gr.cpp"
+#line 3038 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* expr: expr tNEQ expr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+ case 167: /* expr: expr tNEQ expr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2974 "engines/director/lingo/lingo-gr.cpp"
+#line 3044 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr tGE expr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 168: /* expr: expr tGE expr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2980 "engines/director/lingo/lingo-gr.cpp"
+#line 3050 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr tLE expr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 169: /* expr: expr tLE expr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 3056 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr: expr tAND expr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 170: /* expr: expr tAND expr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2992 "engines/director/lingo/lingo-gr.cpp"
+#line 3062 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr: expr tOR expr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 171: /* expr: expr tOR expr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 3068 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr: expr '&' expr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 172: /* expr: expr '&' expr */
+#line 631 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3004 "engines/director/lingo/lingo-gr.cpp"
+#line 3074 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr: expr tCONCAT expr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 173: /* expr: expr tCONCAT expr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3010 "engines/director/lingo/lingo-gr.cpp"
+#line 3080 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr: expr tCONTAINS expr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 174: /* expr: expr tCONTAINS expr */
+#line 633 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3086 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr: expr tSTARTS expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 175: /* expr: expr tSTARTS expr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3022 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3028 "engines/director/lingo/lingo-gr.cpp"
+#line 3098 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 179: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3034 "engines/director/lingo/lingo-gr.cpp"
+#line 3104 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 180: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3040 "engines/director/lingo/lingo-gr.cpp"
+#line 3110 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 181: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3046 "engines/director/lingo/lingo-gr.cpp"
+#line 3116 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 182: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3052 "engines/director/lingo/lingo-gr.cpp"
+#line 3122 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 183: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3058 "engines/director/lingo/lingo-gr.cpp"
+#line 3128 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 184: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3064 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 185: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3070 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 186: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 651 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3076 "engines/director/lingo/lingo-gr.cpp"
+#line 3146 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 187: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 188: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3088 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 189: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3164 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 190: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3100 "engines/director/lingo/lingo-gr.cpp"
+#line 3170 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 191: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 656 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 192: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 657 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3112 "engines/director/lingo/lingo-gr.cpp"
+#line 3182 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 635 "engines/director/lingo/lingo-gr.y"
+ case 193: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 658 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3118 "engines/director/lingo/lingo-gr.cpp"
+#line 3188 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 194: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 3194 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 195: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3130 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 196: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3136 "engines/director/lingo/lingo-gr.cpp"
+#line 3206 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* exprlist: %empty */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 197: /* exprlist: %empty */
+#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3142 "engines/director/lingo/lingo-gr.cpp"
+#line 3212 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* nonemptyexprlist: expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 199: /* nonemptyexprlist: expr */
+#line 670 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3151 "engines/director/lingo/lingo-gr.cpp"
+#line 3221 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 200: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 674 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3159 "engines/director/lingo/lingo-gr.cpp"
+#line 3229 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3233 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3358,7 +3428,7 @@ yyreturn:
return yyresult;
}
-#line 656 "engines/director/lingo/lingo-gr.y"
+#line 679 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index f57b4b4f4b..36cf2a5888 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -176,6 +176,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> expr expr_nounarymath sprite
%type<node> var varorchunk varorthe
%type<node> list proppair
+%type<node> chunk object
%type<nodelist> proplist exprlist nonemptyexprlist
%left tAND tOR
@@ -538,19 +539,41 @@ simpleexpr_noparens_nounarymath:
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
| ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
| var
+ | chunk
+ | object
| list
;
var: ID { $$ = new VarNode($ID); } ;
varorchunk: var
- // TODO: chunk ref
+ | chunk
;
varorthe: var
// TODO: the
;
+chunk: tFIELD simpleexpr_noparens[arg] {
+ NodeList *args = new NodeList;
+ args->push_back($arg);
+ $$ = new FuncNode(new Common::String("field"), args); }
+ | tCAST simpleexpr_noparens[arg] {
+ NodeList *args = new NodeList;
+ args->push_back($arg);
+ $$ = new FuncNode(new Common::String("cast"), args); }
+ ;
+
+object: tSCRIPT simpleexpr_noparens[arg] {
+ NodeList *args = new NodeList;
+ args->push_back($arg);
+ $$ = new FuncNode(new Common::String("script"), args); }
+ | tWINDOW simpleexpr_noparens[arg] {
+ NodeList *args = new NodeList;
+ args->push_back($arg);
+ $$ = new FuncNode(new Common::String("window"), args); }
+ ;
+
list: '[' exprlist ']' { $$ = new ListNode($exprlist); }
| '[' ':' ']' { $$ = new PropListNode(new NodeList); }
| '[' proplist ']' { $$ = new PropListNode($proplist); }
Commit: 510681249bfdfde6283d56a370002f03037f148f
https://github.com/scummvm/scummvm/commit/510681249bfdfde6283d56a370002f03037f148f
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Clean up token types
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 3fca98cda1..6feac1ba4f 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -158,143 +158,154 @@ enum yysymbol_kind_t
YYSYMBOL_tUNARY = 3, /* tUNARY */
YYSYMBOL_tLEXERROR = 4, /* tLEXERROR */
YYSYMBOL_tINT = 5, /* tINT */
- YYSYMBOL_tTHEENTITY = 6, /* tTHEENTITY */
- YYSYMBOL_tTHEENTITYWITHID = 7, /* tTHEENTITYWITHID */
- YYSYMBOL_tTHEMENUITEMENTITY = 8, /* tTHEMENUITEMENTITY */
- YYSYMBOL_tTHEMENUITEMSENTITY = 9, /* tTHEMENUITEMSENTITY */
- YYSYMBOL_tFLOAT = 10, /* tFLOAT */
- YYSYMBOL_tTHEFUNC = 11, /* tTHEFUNC */
- YYSYMBOL_tTHEFUNCINOF = 12, /* tTHEFUNCINOF */
- YYSYMBOL_tVARID = 13, /* tVARID */
- YYSYMBOL_tSTRING = 14, /* tSTRING */
- YYSYMBOL_tSYMBOL = 15, /* tSYMBOL */
- YYSYMBOL_tENDCLAUSE = 16, /* tENDCLAUSE */
- YYSYMBOL_tPLAYACCEL = 17, /* tPLAYACCEL */
- YYSYMBOL_tTHEOBJECTPROP = 18, /* tTHEOBJECTPROP */
- YYSYMBOL_tCAST = 19, /* tCAST */
- YYSYMBOL_tFIELD = 20, /* tFIELD */
- YYSYMBOL_tSCRIPT = 21, /* tSCRIPT */
- YYSYMBOL_tWINDOW = 22, /* tWINDOW */
- YYSYMBOL_tDOWN = 23, /* tDOWN */
- YYSYMBOL_tELSE = 24, /* tELSE */
- YYSYMBOL_tELSIF = 25, /* tELSIF */
- YYSYMBOL_tEXIT = 26, /* tEXIT */
- YYSYMBOL_tFRAME = 27, /* tFRAME */
- YYSYMBOL_tGLOBAL = 28, /* tGLOBAL */
- YYSYMBOL_tGO = 29, /* tGO */
- YYSYMBOL_tIF = 30, /* tIF */
- YYSYMBOL_tIN = 31, /* tIN */
- YYSYMBOL_tINTO = 32, /* tINTO */
- YYSYMBOL_tMACRO = 33, /* tMACRO */
- YYSYMBOL_tMOVIE = 34, /* tMOVIE */
- YYSYMBOL_tNEXT = 35, /* tNEXT */
- YYSYMBOL_tOF = 36, /* tOF */
- YYSYMBOL_tPREVIOUS = 37, /* tPREVIOUS */
- YYSYMBOL_tPUT = 38, /* tPUT */
- YYSYMBOL_tREPEAT = 39, /* tREPEAT */
- YYSYMBOL_tSET = 40, /* tSET */
- YYSYMBOL_tTHEN = 41, /* tTHEN */
- YYSYMBOL_tTO = 42, /* tTO */
- YYSYMBOL_tWHEN = 43, /* tWHEN */
- YYSYMBOL_tWITH = 44, /* tWITH */
- YYSYMBOL_tWHILE = 45, /* tWHILE */
- YYSYMBOL_tFACTORY = 46, /* tFACTORY */
- YYSYMBOL_tOPEN = 47, /* tOPEN */
- YYSYMBOL_tPLAY = 48, /* tPLAY */
- YYSYMBOL_tINSTANCE = 49, /* tINSTANCE */
- YYSYMBOL_tGE = 50, /* tGE */
- YYSYMBOL_tLE = 51, /* tLE */
- YYSYMBOL_tEQ = 52, /* tEQ */
- YYSYMBOL_tNEQ = 53, /* tNEQ */
- YYSYMBOL_tAND = 54, /* tAND */
- YYSYMBOL_tOR = 55, /* tOR */
- YYSYMBOL_tNOT = 56, /* tNOT */
- YYSYMBOL_tMOD = 57, /* tMOD */
- YYSYMBOL_tAFTER = 58, /* tAFTER */
- YYSYMBOL_tBEFORE = 59, /* tBEFORE */
- YYSYMBOL_tCONCAT = 60, /* tCONCAT */
- YYSYMBOL_tCONTAINS = 61, /* tCONTAINS */
- YYSYMBOL_tSTARTS = 62, /* tSTARTS */
- YYSYMBOL_tCHAR = 63, /* tCHAR */
- YYSYMBOL_tITEM = 64, /* tITEM */
- YYSYMBOL_tLINE = 65, /* tLINE */
- YYSYMBOL_tWORD = 66, /* tWORD */
- YYSYMBOL_tSPRITE = 67, /* tSPRITE */
- YYSYMBOL_tINTERSECTS = 68, /* tINTERSECTS */
- YYSYMBOL_tWITHIN = 69, /* tWITHIN */
- YYSYMBOL_tTELL = 70, /* tTELL */
- YYSYMBOL_tPROPERTY = 71, /* tPROPERTY */
- YYSYMBOL_tON = 72, /* tON */
- YYSYMBOL_tMETHOD = 73, /* tMETHOD */
- YYSYMBOL_tENDIF = 74, /* tENDIF */
- YYSYMBOL_tENDREPEAT = 75, /* tENDREPEAT */
- YYSYMBOL_tENDTELL = 76, /* tENDTELL */
- YYSYMBOL_tASSERTERROR = 77, /* tASSERTERROR */
- YYSYMBOL_78_ = 78, /* '<' */
- YYSYMBOL_79_ = 79, /* '>' */
- YYSYMBOL_80_ = 80, /* '&' */
- YYSYMBOL_81_ = 81, /* '+' */
- YYSYMBOL_82_ = 82, /* '-' */
- YYSYMBOL_83_ = 83, /* '*' */
- YYSYMBOL_84_ = 84, /* '/' */
- YYSYMBOL_85_ = 85, /* '%' */
- YYSYMBOL_86_n_ = 86, /* '\n' */
- YYSYMBOL_87_ = 87, /* ',' */
- YYSYMBOL_88_ = 88, /* '(' */
- YYSYMBOL_89_ = 89, /* ')' */
- YYSYMBOL_90_ = 90, /* '[' */
- YYSYMBOL_91_ = 91, /* ']' */
- YYSYMBOL_92_ = 92, /* ':' */
- YYSYMBOL_YYACCEPT = 93, /* $accept */
- YYSYMBOL_script = 94, /* script */
- YYSYMBOL_scriptpartlist = 95, /* scriptpartlist */
- YYSYMBOL_scriptpart = 96, /* scriptpart */
- YYSYMBOL_macro = 97, /* macro */
- YYSYMBOL_factory = 98, /* factory */
- YYSYMBOL_method = 99, /* method */
- YYSYMBOL_methodlist = 100, /* methodlist */
- YYSYMBOL_nonemptymethodlist = 101, /* nonemptymethodlist */
- YYSYMBOL_methodlistline = 102, /* methodlistline */
- YYSYMBOL_handler = 103, /* handler */
- YYSYMBOL_endargdef = 104, /* endargdef */
- YYSYMBOL_ID = 105, /* ID */
- YYSYMBOL_idlist = 106, /* idlist */
- YYSYMBOL_nonemptyidlist = 107, /* nonemptyidlist */
- YYSYMBOL_stmt = 108, /* stmt */
- YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
- YYSYMBOL_proc = 110, /* proc */
- YYSYMBOL_cmdargs = 111, /* cmdargs */
- YYSYMBOL_frameargs = 112, /* frameargs */
- YYSYMBOL_asgn = 113, /* asgn */
- YYSYMBOL_to = 114, /* to */
- YYSYMBOL_definevars = 115, /* definevars */
- YYSYMBOL_ifstmt = 116, /* ifstmt */
- YYSYMBOL_ifelsestmt = 117, /* ifelsestmt */
- YYSYMBOL_loop = 118, /* loop */
- YYSYMBOL_tell = 119, /* tell */
- YYSYMBOL_when = 120, /* when */
- YYSYMBOL_stmtlist = 121, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 122, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 123, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 124, /* simpleexpr_noparens_nounarymath */
- YYSYMBOL_var = 125, /* var */
- YYSYMBOL_varorchunk = 126, /* varorchunk */
- YYSYMBOL_varorthe = 127, /* varorthe */
- YYSYMBOL_chunk = 128, /* chunk */
- YYSYMBOL_object = 129, /* object */
- YYSYMBOL_list = 130, /* list */
- YYSYMBOL_proplist = 131, /* proplist */
- YYSYMBOL_proppair = 132, /* proppair */
- YYSYMBOL_parens = 133, /* parens */
- YYSYMBOL_unarymath = 134, /* unarymath */
- YYSYMBOL_simpleexpr = 135, /* simpleexpr */
- YYSYMBOL_simpleexpr_noparens = 136, /* simpleexpr_noparens */
- YYSYMBOL_simpleexpr_nounarymath = 137, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 138, /* expr */
- YYSYMBOL_expr_nounarymath = 139, /* expr_nounarymath */
- YYSYMBOL_sprite = 140, /* sprite */
- YYSYMBOL_exprlist = 141, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 142 /* nonemptyexprlist */
+ YYSYMBOL_tFLOAT = 6, /* tFLOAT */
+ YYSYMBOL_tVARID = 7, /* tVARID */
+ YYSYMBOL_tSTRING = 8, /* tSTRING */
+ YYSYMBOL_tSYMBOL = 9, /* tSYMBOL */
+ YYSYMBOL_tENDCLAUSE = 10, /* tENDCLAUSE */
+ YYSYMBOL_tCAST = 11, /* tCAST */
+ YYSYMBOL_tFIELD = 12, /* tFIELD */
+ YYSYMBOL_tSCRIPT = 13, /* tSCRIPT */
+ YYSYMBOL_tWINDOW = 14, /* tWINDOW */
+ YYSYMBOL_tDOWN = 15, /* tDOWN */
+ YYSYMBOL_tELSE = 16, /* tELSE */
+ YYSYMBOL_tELSIF = 17, /* tELSIF */
+ YYSYMBOL_tEXIT = 18, /* tEXIT */
+ YYSYMBOL_tFRAME = 19, /* tFRAME */
+ YYSYMBOL_tGLOBAL = 20, /* tGLOBAL */
+ YYSYMBOL_tGO = 21, /* tGO */
+ YYSYMBOL_tIF = 22, /* tIF */
+ YYSYMBOL_tIN = 23, /* tIN */
+ YYSYMBOL_tINTO = 24, /* tINTO */
+ YYSYMBOL_tMACRO = 25, /* tMACRO */
+ YYSYMBOL_tMOVIE = 26, /* tMOVIE */
+ YYSYMBOL_tNEXT = 27, /* tNEXT */
+ YYSYMBOL_tOF = 28, /* tOF */
+ YYSYMBOL_tPREVIOUS = 29, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 30, /* tPUT */
+ YYSYMBOL_tREPEAT = 31, /* tREPEAT */
+ YYSYMBOL_tSET = 32, /* tSET */
+ YYSYMBOL_tTHEN = 33, /* tTHEN */
+ YYSYMBOL_tTO = 34, /* tTO */
+ YYSYMBOL_tWHEN = 35, /* tWHEN */
+ YYSYMBOL_tWITH = 36, /* tWITH */
+ YYSYMBOL_tWHILE = 37, /* tWHILE */
+ YYSYMBOL_tFACTORY = 38, /* tFACTORY */
+ YYSYMBOL_tOPEN = 39, /* tOPEN */
+ YYSYMBOL_tPLAY = 40, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 41, /* tINSTANCE */
+ YYSYMBOL_tGE = 42, /* tGE */
+ YYSYMBOL_tLE = 43, /* tLE */
+ YYSYMBOL_tEQ = 44, /* tEQ */
+ YYSYMBOL_tNEQ = 45, /* tNEQ */
+ YYSYMBOL_tAND = 46, /* tAND */
+ YYSYMBOL_tOR = 47, /* tOR */
+ YYSYMBOL_tNOT = 48, /* tNOT */
+ YYSYMBOL_tMOD = 49, /* tMOD */
+ YYSYMBOL_tAFTER = 50, /* tAFTER */
+ YYSYMBOL_tBEFORE = 51, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 52, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 53, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 54, /* tSTARTS */
+ YYSYMBOL_tCHAR = 55, /* tCHAR */
+ YYSYMBOL_tCHARS = 56, /* tCHARS */
+ YYSYMBOL_tITEM = 57, /* tITEM */
+ YYSYMBOL_tITEMS = 58, /* tITEMS */
+ YYSYMBOL_tLINE = 59, /* tLINE */
+ YYSYMBOL_tLINES = 60, /* tLINES */
+ YYSYMBOL_tWORD = 61, /* tWORD */
+ YYSYMBOL_tWORDS = 62, /* tWORDS */
+ YYSYMBOL_tABBREVIATED = 63, /* tABBREVIATED */
+ YYSYMBOL_tABBREV = 64, /* tABBREV */
+ YYSYMBOL_tABBR = 65, /* tABBR */
+ YYSYMBOL_tLONG = 66, /* tLONG */
+ YYSYMBOL_tSHORT = 67, /* tSHORT */
+ YYSYMBOL_tCASTMEMBERS = 68, /* tCASTMEMBERS */
+ YYSYMBOL_tDATE = 69, /* tDATE */
+ YYSYMBOL_tLAST = 70, /* tLAST */
+ YYSYMBOL_tMENU = 71, /* tMENU */
+ YYSYMBOL_tMENUITEM = 72, /* tMENUITEM */
+ YYSYMBOL_tMENUITEMS = 73, /* tMENUITEMS */
+ YYSYMBOL_tNUMBER = 74, /* tNUMBER */
+ YYSYMBOL_tTHE = 75, /* tTHE */
+ YYSYMBOL_tTIME = 76, /* tTIME */
+ YYSYMBOL_tSOUND = 77, /* tSOUND */
+ YYSYMBOL_tSPRITE = 78, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 79, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 80, /* tWITHIN */
+ YYSYMBOL_tTELL = 81, /* tTELL */
+ YYSYMBOL_tPROPERTY = 82, /* tPROPERTY */
+ YYSYMBOL_tON = 83, /* tON */
+ YYSYMBOL_tMETHOD = 84, /* tMETHOD */
+ YYSYMBOL_tENDIF = 85, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 86, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 87, /* tENDTELL */
+ YYSYMBOL_tASSERTERROR = 88, /* tASSERTERROR */
+ YYSYMBOL_89_ = 89, /* '<' */
+ YYSYMBOL_90_ = 90, /* '>' */
+ YYSYMBOL_91_ = 91, /* '&' */
+ YYSYMBOL_92_ = 92, /* '+' */
+ YYSYMBOL_93_ = 93, /* '-' */
+ YYSYMBOL_94_ = 94, /* '*' */
+ YYSYMBOL_95_ = 95, /* '/' */
+ YYSYMBOL_96_ = 96, /* '%' */
+ YYSYMBOL_97_n_ = 97, /* '\n' */
+ YYSYMBOL_98_ = 98, /* ',' */
+ YYSYMBOL_99_ = 99, /* '(' */
+ YYSYMBOL_100_ = 100, /* ')' */
+ YYSYMBOL_101_ = 101, /* '[' */
+ YYSYMBOL_102_ = 102, /* ']' */
+ YYSYMBOL_103_ = 103, /* ':' */
+ YYSYMBOL_YYACCEPT = 104, /* $accept */
+ YYSYMBOL_script = 105, /* script */
+ YYSYMBOL_scriptpartlist = 106, /* scriptpartlist */
+ YYSYMBOL_scriptpart = 107, /* scriptpart */
+ YYSYMBOL_macro = 108, /* macro */
+ YYSYMBOL_factory = 109, /* factory */
+ YYSYMBOL_method = 110, /* method */
+ YYSYMBOL_methodlist = 111, /* methodlist */
+ YYSYMBOL_nonemptymethodlist = 112, /* nonemptymethodlist */
+ YYSYMBOL_methodlistline = 113, /* methodlistline */
+ YYSYMBOL_handler = 114, /* handler */
+ YYSYMBOL_endargdef = 115, /* endargdef */
+ YYSYMBOL_ID = 116, /* ID */
+ YYSYMBOL_idlist = 117, /* idlist */
+ YYSYMBOL_nonemptyidlist = 118, /* nonemptyidlist */
+ YYSYMBOL_stmt = 119, /* stmt */
+ YYSYMBOL_stmtoneliner = 120, /* stmtoneliner */
+ YYSYMBOL_proc = 121, /* proc */
+ YYSYMBOL_cmdargs = 122, /* cmdargs */
+ YYSYMBOL_frameargs = 123, /* frameargs */
+ YYSYMBOL_asgn = 124, /* asgn */
+ YYSYMBOL_to = 125, /* to */
+ YYSYMBOL_definevars = 126, /* definevars */
+ YYSYMBOL_ifstmt = 127, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 128, /* ifelsestmt */
+ YYSYMBOL_loop = 129, /* loop */
+ YYSYMBOL_tell = 130, /* tell */
+ YYSYMBOL_when = 131, /* when */
+ YYSYMBOL_stmtlist = 132, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 133, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 134, /* stmtlistline */
+ YYSYMBOL_simpleexpr_noparens_nounarymath = 135, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_var = 136, /* var */
+ YYSYMBOL_varorchunk = 137, /* varorchunk */
+ YYSYMBOL_varorthe = 138, /* varorthe */
+ YYSYMBOL_chunk = 139, /* chunk */
+ YYSYMBOL_object = 140, /* object */
+ YYSYMBOL_list = 141, /* list */
+ YYSYMBOL_proplist = 142, /* proplist */
+ YYSYMBOL_proppair = 143, /* proppair */
+ YYSYMBOL_parens = 144, /* parens */
+ YYSYMBOL_unarymath = 145, /* unarymath */
+ YYSYMBOL_simpleexpr = 146, /* simpleexpr */
+ YYSYMBOL_simpleexpr_noparens = 147, /* simpleexpr_noparens */
+ YYSYMBOL_simpleexpr_nounarymath = 148, /* simpleexpr_nounarymath */
+ YYSYMBOL_expr = 149, /* expr */
+ YYSYMBOL_expr_nounarymath = 150, /* expr_nounarymath */
+ YYSYMBOL_sprite = 151, /* sprite */
+ YYSYMBOL_exprlist = 152, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 153 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -614,21 +625,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 125
+#define YYFINAL 143
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2900
+#define YYLAST 3493
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 93
+#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 50
/* YYNRULES -- Number of rules. */
-#define YYNRULES 200
+#define YYNRULES 218
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 374
+#define YYNSTATES 393
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 332
+#define YYMAXUTOK 343
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -643,15 +654,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 86, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 97, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 85, 80, 2,
- 88, 89, 83, 81, 87, 82, 2, 84, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 92, 2,
- 78, 2, 79, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 96, 91, 2,
+ 99, 100, 94, 92, 98, 93, 2, 95, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 103, 2,
+ 89, 2, 90, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 90, 2, 91, 2, 2, 2, 2, 2, 2,
+ 2, 101, 2, 102, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -675,7 +686,8 @@ static const yytype_int8 yytranslate[] =
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88
};
#if YYDEBUG
@@ -685,24 +697,25 @@ static const yytype_int16 yyrline[] =
0, 197, 197, 199, 205, 212, 213, 214, 215, 216,
245, 249, 251, 253, 254, 257, 263, 270, 271, 276,
280, 284, 285, 286, 291, 292, 293, 294, 295, 296,
- 297, 302, 303, 306, 308, 309, 310, 311, 314, 315,
- 316, 317, 318, 320, 321, 323, 326, 327, 328, 329,
- 330, 332, 333, 334, 336, 337, 338, 339, 340, 343,
- 344, 347, 351, 361, 362, 363, 364, 365, 366, 369,
- 370, 371, 374, 375, 376, 377, 378, 379, 380, 381,
- 382, 383, 386, 389, 394, 398, 404, 409, 412, 422,
- 427, 433, 439, 445, 453, 454, 455, 456, 459, 459,
- 461, 462, 463, 466, 470, 474, 480, 484, 488, 492,
- 494, 496, 500, 504, 508, 510, 511, 515, 521, 528,
- 529, 535, 536, 537, 538, 539, 540, 541, 542, 543,
- 544, 547, 549, 550, 553, 557, 561, 567, 571, 577,
- 578, 579, 582, 586, 591, 592, 593, 596, 598, 599,
- 602, 603, 604, 607, 608, 611, 612, 616, 617, 618,
- 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
- 629, 630, 631, 632, 633, 634, 641, 642, 643, 644,
- 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
- 655, 656, 657, 658, 659, 662, 663, 666, 667, 670,
- 674
+ 297, 298, 299, 300, 301, 302, 303, 308, 309, 313,
+ 315, 316, 317, 318, 319, 320, 321, 322, 324, 325,
+ 326, 328, 329, 330, 331, 332, 333, 335, 336, 338,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 352,
+ 353, 355, 356, 357, 358, 359, 360, 363, 364, 367,
+ 371, 381, 382, 383, 384, 385, 386, 389, 390, 391,
+ 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
+ 406, 409, 414, 418, 424, 429, 432, 442, 447, 453,
+ 459, 465, 473, 474, 475, 476, 479, 479, 481, 482,
+ 483, 486, 490, 494, 500, 504, 508, 512, 514, 516,
+ 520, 524, 528, 530, 531, 535, 541, 548, 549, 555,
+ 556, 557, 558, 559, 560, 561, 562, 563, 564, 567,
+ 569, 570, 573, 577, 581, 587, 591, 597, 598, 599,
+ 602, 606, 611, 612, 613, 616, 618, 619, 622, 623,
+ 624, 627, 628, 631, 632, 636, 637, 638, 639, 640,
+ 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
+ 651, 652, 653, 654, 661, 662, 663, 664, 665, 666,
+ 667, 668, 669, 670, 671, 672, 673, 674, 675, 676,
+ 677, 678, 679, 682, 683, 686, 687, 690, 694
};
#endif
@@ -720,29 +733,29 @@ yysymbol_name (yysymbol_kind_t yysymbol)
static const char *const yy_sname[] =
{
"end of file", "error", "invalid token", "tUNARY", "tLEXERROR", "tINT",
- "tTHEENTITY", "tTHEENTITYWITHID", "tTHEMENUITEMENTITY",
- "tTHEMENUITEMSENTITY", "tFLOAT", "tTHEFUNC", "tTHEFUNCINOF", "tVARID",
- "tSTRING", "tSYMBOL", "tENDCLAUSE", "tPLAYACCEL", "tTHEOBJECTPROP",
- "tCAST", "tFIELD", "tSCRIPT", "tWINDOW", "tDOWN", "tELSE", "tELSIF",
- "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tIF", "tIN", "tINTO", "tMACRO",
- "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET",
- "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN", "tPLAY",
- "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD",
- "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM",
- "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL",
- "tPROPERTY", "tON", "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL",
- "tASSERTERROR", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'",
- "'\\n'", "','", "'('", "')'", "'['", "']'", "':'", "$accept", "script",
- "scriptpartlist", "scriptpart", "macro", "factory", "method",
- "methodlist", "nonemptymethodlist", "methodlistline", "handler",
- "endargdef", "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner",
- "proc", "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
- "ifelsestmt", "loop", "tell", "when", "stmtlist", "nonemptystmtlist",
- "stmtlistline", "simpleexpr_noparens_nounarymath", "var", "varorchunk",
- "varorthe", "chunk", "object", "list", "proplist", "proppair", "parens",
- "unarymath", "simpleexpr", "simpleexpr_noparens",
- "simpleexpr_nounarymath", "expr", "expr_nounarymath", "sprite",
- "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "tFLOAT", "tVARID", "tSTRING", "tSYMBOL", "tENDCLAUSE", "tCAST",
+ "tFIELD", "tSCRIPT", "tWINDOW", "tDOWN", "tELSE", "tELSIF", "tEXIT",
+ "tFRAME", "tGLOBAL", "tGO", "tIF", "tIN", "tINTO", "tMACRO", "tMOVIE",
+ "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO",
+ "tWHEN", "tWITH", "tWHILE", "tFACTORY", "tOPEN", "tPLAY", "tINSTANCE",
+ "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER",
+ "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tCHARS", "tITEM",
+ "tITEMS", "tLINE", "tLINES", "tWORD", "tWORDS", "tABBREVIATED",
+ "tABBREV", "tABBR", "tLONG", "tSHORT", "tCASTMEMBERS", "tDATE", "tLAST",
+ "tMENU", "tMENUITEM", "tMENUITEMS", "tNUMBER", "tTHE", "tTIME", "tSOUND",
+ "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON",
+ "tMETHOD", "tENDIF", "tENDREPEAT", "tENDTELL", "tASSERTERROR", "'<'",
+ "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "','", "'('",
+ "')'", "'['", "']'", "':'", "$accept", "script", "scriptpartlist",
+ "scriptpart", "macro", "factory", "method", "methodlist",
+ "nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
+ "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "cmdargs",
+ "frameargs", "asgn", "to", "definevars", "ifstmt", "ifelsestmt", "loop",
+ "tell", "when", "stmtlist", "nonemptystmtlist", "stmtlistline",
+ "simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
+ "chunk", "object", "list", "proplist", "proppair", "parens", "unarymath",
+ "simpleexpr", "simpleexpr_noparens", "simpleexpr_nounarymath", "expr",
+ "expr_nounarymath", "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -760,13 +773,14 @@ static const yytype_int16 yytoknum[] =
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, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 60, 62,
- 38, 43, 45, 42, 47, 37, 10, 44, 40, 41,
- 91, 93, 58
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 60,
+ 62, 38, 43, 45, 42, 47, 37, 10, 44, 40,
+ 41, 91, 93, 58
};
#endif
-#define YYPACT_NINF (-265)
+#define YYPACT_NINF (-297)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -780,44 +794,46 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1577, -265, -265, -265, -265, -265, -265, -33, -265, 2498,
- 958, 1037, -265, -265, 2498, -265, -27, -265, -265, 1116,
- 73, 2498, -265, 2498, -265, -265, 2498, -265, 958, 2498,
- -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
- -265, -265, -265, -265, 1037, 2498, 2498, 2380, -265, 20,
- 1577, -265, -265, -265, -265, 1116, -265, -265, -265, -265,
- -265, -265, -265, -265, -265, -265, -42, -265, -265, -265,
- -265, -265, -265, -265, -25, -57, -265, -265, -265, -265,
- 1274, 1274, 1274, 1274, 1037, 1037, 1195, 1037, 1195, 1195,
- 877, 472, -30, -23, -17, -265, -265, -265, -265, -265,
- -265, -265, -265, 553, -265, 1037, 361, 2498, -2, 17,
- 634, 2498, 1037, -265, -265, -24, 45, 22, 35, 38,
- 41, 227, 43, 2498, -265, -265, -265, 44, 715, -265,
- -265, 2498, -265, -265, -265, -265, -265, -265, 796, 2803,
- -265, 2768, -265, -265, -265, 2578, -54, 14, 42, -56,
- 2, -265, 2803, 51, 57, 1037, -265, -265, 98, 1037,
- 1037, 1037, 1037, 1347, 1347, 1505, 1037, 1037, 1426, 1037,
- 1037, 1037, 1037, 1037, 1037, 1037, 1037, -265, -265, -265,
- 2631, -265, 2591, 2136, 1037, 1037, 1037, 1037, 59, -265,
- -265, 2557, 2557, 2557, 97, 2644, -265, -265, 1037, 1037,
- -46, -265, -265, -265, 2380, 2197, -265, 64, -265, -265,
- 117, 2816, 1195, 1195, 1037, -265, 1037, 1037, -265, 1037,
- 2439, -265, -265, 1037, 63, 1037, -9, -9, -9, -9,
- 128, 128, -265, -1, -9, -9, -9, -9, -1, -50,
- -50, -265, -265, 57, 1037, 1037, 1037, 1037, 1037, 1037,
- 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
- 1037, 1037, 2197, 129, 2197, -265, 68, -265, 69, 70,
- 1037, 2197, 2681, 2803, 2498, -265, -265, 71, -265, -265,
- -265, -265, -265, 1700, -265, -265, 2197, 1037, -265, -265,
- -48, 2803, 2803, 2803, -54, 14, 66, -265, 2803, -265,
- 2803, -9, -9, -9, -9, 128, 128, -265, -1, -9,
- -9, -9, -9, -1, -50, -50, -265, -265, 57, 1638,
- 2258, 2197, -265, -265, -265, 86, 1761, -265, 2498, -46,
- 75, -265, 1829, 2803, -265, 2319, 76, 2197, -265, 121,
- 1037, 85, 89, -265, -265, 2498, 2197, -265, -265, 1890,
- 1037, 2694, -265, 2197, 33, -265, 1952, 90, 2731, 2197,
- 2197, -265, 2498, 91, -265, 2197, 2014, -265, -265, 2075,
- 96, 100, -265, -265
+ 1883, -297, -297, -297, -297, -297, -297, -21, -297, 3086,
+ 1119, 1216, -297, -297, 3086, -297, -12, -297, -297, 1313,
+ 57, 3086, -297, 3086, -297, -297, 3086, -297, 1119, 3086,
+ -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+ -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+ -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+ -297, -297, 1216, 3086, 3086, 2930, -297, 37, 1883, -297,
+ -297, -297, -297, 1313, -297, -297, -297, -297, -297, -297,
+ -297, -297, -297, -297, -54, -297, -297, -297, -297, -297,
+ -297, -297, -47, -44, -297, -297, -297, -297, 1507, 1507,
+ 1507, 1507, 1216, 1216, 1410, 1216, 1410, 1410, 1022, 535,
+ -40, -31, -1, -297, -297, -297, -297, -297, -297, -297,
+ -297, 634, -297, 1216, 205, 3086, 10, 20, 731, 3086,
+ 1216, -297, -297, -16, 36, 24, 25, 26, 27, 124,
+ 29, 3086, -297, -297, -297, 31, 828, -297, -297, 3086,
+ -297, -297, -297, -297, -297, -297, 925, 3372, -297, 3318,
+ -297, -297, -297, 421, -22, 28, -11, -83, -62, -297,
+ 3372, 32, 45, 1216, -297, -297, 104, 1216, 1216, 1216,
+ 1216, 1598, 1598, 1792, 1216, 1695, 1695, 1216, 1216, 1216,
+ 1216, 1216, 1216, 1216, 1216, -297, -297, -297, 3204, -297,
+ 222, 2610, 1216, 1216, 1216, 1216, 1216, 47, -297, -297,
+ 3164, 3164, 3164, 106, 3217, -297, -297, 1216, 1216, -59,
+ -297, -297, -297, 2930, 2690, -297, 51, -297, -297, 125,
+ 3385, 1410, 1410, 1216, -297, 1216, 1216, -297, 1216, 3008,
+ -297, -297, 1216, 52, 1216, 9, 9, 9, 9, 3398,
+ 3398, -297, -8, 9, 9, 9, 9, -8, -38, -38,
+ -297, -297, 45, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
+ 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
+ 1216, 2690, 137, 2690, -297, 58, -297, 59, 60, 1216,
+ 2690, 3230, 3372, 3086, -297, -297, 62, -297, -297, -297,
+ -297, -297, 2043, -297, -297, 2690, 1216, -297, -297, -18,
+ 3372, 3372, 3372, -22, 28, 61, -297, 3372, -297, 3372,
+ 9, 9, 9, 9, 3398, 3398, -297, -8, 9, 9,
+ 9, 9, -8, -38, -38, -297, -297, 45, 1963, 2770,
+ 2690, -297, -297, -297, 93, 2130, -297, 3086, -59, 63,
+ -297, 2210, 3372, -297, 2850, 64, 2690, -297, 120, 1216,
+ 66, 68, -297, -297, 3086, 2690, -297, -297, 2290, 1216,
+ 3286, -297, 2690, 13, -297, 2370, 75, 3299, 2690, 2690,
+ -297, 3086, 77, -297, 2690, 2450, -297, -297, 2530, 78,
+ 82, -297, -297
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -825,64 +841,66 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 24, 28, 31, 47, 55, 30, 0, 32, 59,
- 82, 0, 33, 35, 0, 39, 40, 42, 45, 82,
- 46, 48, 51, 0, 56, 54, 0, 43, 82, 59,
- 26, 44, 41, 38, 25, 27, 49, 29, 36, 37,
- 58, 53, 34, 57, 50, 59, 0, 52, 5, 0,
- 2, 3, 6, 7, 8, 82, 9, 63, 69, 70,
- 71, 64, 65, 66, 67, 68, 0, 80, 40, 46,
- 48, 50, 52, 61, 0, 60, 121, 122, 124, 123,
- 28, 31, 47, 55, 32, 39, 41, 53, 0, 0,
- 0, 197, 131, 0, 0, 150, 127, 128, 129, 130,
- 151, 152, 157, 83, 158, 0, 0, 59, 0, 0,
- 83, 0, 0, 131, 134, 0, 0, 0, 0, 0,
- 0, 0, 0, 59, 81, 1, 4, 0, 83, 79,
- 100, 0, 153, 154, 136, 135, 137, 138, 89, 90,
- 125, 0, 148, 149, 87, 0, 124, 123, 0, 131,
- 0, 142, 199, 0, 198, 197, 74, 75, 42, 0,
- 0, 0, 0, 26, 44, 38, 0, 0, 49, 0,
- 0, 0, 0, 0, 0, 0, 0, 155, 156, 176,
- 85, 177, 0, 0, 0, 0, 0, 0, 0, 78,
- 73, 35, 25, 27, 0, 0, 98, 99, 0, 0,
- 13, 76, 77, 102, 0, 115, 101, 0, 72, 62,
- 42, 93, 0, 0, 0, 147, 0, 0, 140, 0,
- 0, 141, 139, 0, 0, 0, 168, 169, 166, 167,
- 170, 171, 163, 173, 174, 175, 165, 164, 172, 159,
- 160, 161, 162, 84, 0, 0, 0, 0, 0, 0,
+ 0, 24, 31, 37, 61, 72, 36, 0, 38, 77,
+ 100, 0, 39, 41, 0, 52, 53, 56, 59, 100,
+ 60, 63, 70, 0, 73, 71, 0, 57, 100, 77,
+ 29, 58, 54, 51, 28, 30, 34, 67, 32, 33,
+ 42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
+ 64, 35, 44, 48, 49, 50, 55, 69, 65, 66,
+ 40, 74, 68, 77, 0, 62, 5, 0, 2, 3,
+ 6, 7, 8, 100, 9, 81, 87, 88, 89, 82,
+ 83, 84, 85, 86, 0, 98, 53, 60, 63, 68,
+ 62, 79, 0, 78, 139, 140, 142, 141, 31, 37,
+ 61, 72, 38, 52, 54, 66, 0, 0, 0, 215,
+ 149, 0, 0, 168, 145, 146, 147, 148, 169, 170,
+ 175, 101, 176, 0, 0, 77, 0, 0, 101, 0,
+ 0, 149, 152, 0, 0, 0, 0, 0, 0, 0,
+ 0, 77, 99, 1, 4, 0, 101, 97, 118, 0,
+ 171, 172, 154, 153, 155, 156, 107, 108, 143, 0,
+ 166, 167, 105, 0, 142, 141, 0, 149, 0, 160,
+ 217, 0, 216, 215, 92, 93, 56, 0, 0, 0,
+ 0, 29, 58, 51, 0, 34, 67, 0, 0, 0,
+ 0, 0, 0, 0, 0, 173, 174, 194, 103, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 96, 91,
+ 41, 28, 30, 0, 0, 116, 117, 0, 0, 13,
+ 94, 95, 120, 0, 133, 119, 0, 90, 80, 56,
+ 111, 0, 0, 0, 165, 0, 0, 158, 0, 0,
+ 159, 157, 0, 0, 0, 186, 187, 184, 185, 188,
+ 189, 181, 191, 192, 193, 183, 182, 190, 177, 178,
+ 179, 180, 102, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 115, 103, 115, 132, 0, 133, 0, 0,
- 0, 115, 0, 114, 0, 17, 18, 11, 14, 15,
- 112, 119, 120, 0, 116, 117, 115, 0, 195, 196,
- 0, 146, 144, 145, 0, 0, 0, 143, 200, 126,
- 92, 187, 188, 185, 186, 189, 190, 182, 192, 193,
- 194, 184, 183, 191, 178, 179, 180, 181, 86, 0,
- 0, 10, 94, 95, 96, 0, 0, 97, 59, 0,
- 0, 118, 20, 91, 88, 0, 0, 115, 105, 0,
- 0, 0, 0, 16, 113, 21, 115, 107, 104, 0,
- 0, 0, 109, 115, 0, 22, 0, 0, 0, 115,
- 12, 19, 0, 0, 106, 115, 0, 23, 108, 0,
- 0, 0, 110, 111
+ 0, 133, 121, 133, 150, 0, 151, 0, 0, 0,
+ 133, 0, 132, 0, 17, 18, 11, 14, 15, 130,
+ 137, 138, 0, 134, 135, 133, 0, 213, 214, 0,
+ 164, 162, 163, 0, 0, 0, 161, 218, 144, 110,
+ 205, 206, 203, 204, 207, 208, 200, 210, 211, 212,
+ 202, 201, 209, 196, 197, 198, 199, 104, 0, 0,
+ 10, 112, 113, 114, 0, 0, 115, 77, 0, 0,
+ 136, 20, 109, 106, 0, 0, 133, 123, 0, 0,
+ 0, 0, 16, 131, 21, 133, 125, 122, 0, 0,
+ 0, 127, 133, 0, 22, 0, 0, 0, 133, 12,
+ 19, 0, 0, 124, 133, 0, 23, 126, 0, 0,
+ 0, 128, 129
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -265, -265, -265, 109, -265, -265, -265, -265, -265, -145,
- -265, -265, 0, -28, -265, 4, -44, -265, -3, 166,
- -265, -265, -265, -265, -265, -265, -265, -265, -249, -265,
- -264, -16, -19, -67, -265, -115, -265, -265, -265, -22,
- -79, 18, -78, 32, -265, 211, 58, -68, 40, -171
+ -297, -297, -297, 112, -297, -297, -297, -297, -297, -167,
+ -297, -297, 0, -28, -297, 3, -61, -297, -6, 161,
+ -297, -297, -297, -297, -297, -297, -297, -297, -266, -297,
+ -296, -68, -19, -92, -297, -137, -297, -297, -297, -49,
+ -94, -53, -99, 15, -297, 218, 38, -51, 22, -182
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 49, 50, 51, 52, 53, 276, 277, 278, 279,
- 54, 354, 92, 74, 75, 282, 57, 58, 93, 94,
- 59, 198, 60, 61, 62, 63, 64, 65, 283, 284,
- 285, 95, 96, 266, 115, 97, 98, 99, 150, 151,
- 100, 101, 102, 134, 179, 152, 180, 104, 153, 154
+ 0, 67, 68, 69, 70, 71, 295, 296, 297, 298,
+ 72, 373, 110, 92, 93, 301, 75, 76, 111, 112,
+ 77, 217, 78, 79, 80, 81, 82, 83, 302, 303,
+ 304, 113, 114, 285, 133, 115, 116, 117, 168, 169,
+ 118, 119, 120, 152, 197, 170, 198, 122, 171, 172
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -890,662 +908,783 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 55, 120, 114, 124, 56, 243, 66, 186, 140, 73,
- 142, 143, 108, 319, 107, 321, 109, 122, 196, 331,
- 125, 113, 326, 116, 178, 118, 117, 274, 197, 73,
- 131, 178, 155, 174, 175, 181, 219, 332, 216, 223,
- 275, 334, 181, 290, 129, 73, 123, 55, 186, 178,
- 55, 166, 127, 67, 56, 331, 186, 331, 155, 178,
- 181, 130, 331, 156, 132, 132, 132, 132, 331, 157,
- 181, 171, 172, 173, 174, 175, 267, 267, 267, 188,
- 172, 173, 174, 175, 189, 331, 199, 177, 349, 220,
- 318, 149, 331, 221, 177, 207, 331, 356, 133, 133,
- 133, 133, 331, 190, 360, 331, 217, 73, 200, 339,
- 366, 194, 177, 135, 136, 137, 369, 111, 112, 361,
- 362, 201, 177, 73, 202, 268, 269, 203, 340, 206,
- 208, 209, 225, 218, 288, 289, 159, 160, 161, 162,
- 184, 185, 222, 186, 223, 264, 166, 167, 187, 270,
- 286, 287, 299, 320, 322, 323, 324, 329, 219, 126,
- 280, 344, 348, 350, 169, 170, 171, 172, 173, 174,
- 175, 352, 265, 265, 265, 353, 364, 368, 159, 160,
- 161, 162, 372, 55, 343, 186, 373, 263, 166, 167,
- 187, 113, 113, 113, 119, 224, 211, 0, 297, 0,
- 0, 0, 0, 0, 55, 55, 169, 170, 171, 172,
- 173, 174, 175, 0, 0, 0, 0, 0, 0, 0,
- 296, 103, 106, 0, 0, 0, 0, 0, 0, 0,
- 110, 0, 0, 0, 0, 0, 0, 0, 0, 103,
+ 73, 138, 132, 74, 142, 158, 350, 160, 161, 91,
+ 84, 204, 262, 127, 125, 338, 173, 340, 215, 126,
+ 238, 131, 136, 134, 345, 293, 135, 196, 216, 91,
+ 150, 150, 150, 150, 196, 140, 239, 143, 294, 351,
+ 240, 204, 350, 147, 350, 151, 151, 151, 151, 350,
+ 148, 309, 196, 195, 149, 350, 192, 193, 204, 173,
+ 195, 184, 196, 91, 141, 73, 174, 145, 73, 218,
+ 199, 74, 350, 286, 286, 286, 85, 199, 195, 350,
+ 242, 235, 353, 350, 190, 191, 192, 193, 195, 350,
+ 368, 237, 350, 129, 130, 199, 175, 207, 337, 375,
+ 189, 190, 191, 192, 193, 199, 379, 208, 358, 167,
+ 380, 381, 385, 226, 153, 154, 155, 209, 388, 287,
+ 288, 219, 220, 221, 222, 91, 225, 359, 227, 213,
+ 244, 236, 307, 308, 241, 177, 178, 179, 180, 202,
+ 203, 91, 204, 242, 283, 184, 205, 206, 305, 228,
+ 289, 306, 318, 339, 369, 341, 342, 343, 223, 348,
+ 363, 367, 299, 371, 238, 372, 177, 178, 179, 180,
+ 202, 203, 383, 204, 387, 391, 184, 205, 206, 392,
+ 144, 362, 187, 188, 189, 190, 191, 192, 193, 137,
+ 316, 284, 284, 284, 230, 243, 0, 0, 0, 0,
+ 0, 73, 0, 0, 282, 0, 0, 0, 0, 0,
+ 131, 131, 131, 187, 188, 189, 190, 191, 192, 193,
+ 0, 224, 0, 73, 73, 0, 0, 0, 121, 124,
+ 0, 0, 0, 0, 0, 0, 0, 128, 201, 315,
+ 0, 0, 0, 0, 0, 0, 121, 177, 178, 179,
+ 180, 202, 203, 0, 204, 0, 0, 184, 205, 206,
+ 0, 0, 0, 0, 177, 178, 179, 180, 202, 203,
+ 0, 204, 0, 0, 184, 205, 206, 0, 0, 0,
+ 139, 73, 0, 73, 0, 0, 0, 0, 0, 0,
+ 73, 146, 0, 347, 187, 188, 189, 190, 191, 192,
+ 193, 0, 73, 0, 0, 73, 0, 0, 0, 0,
+ 0, 187, 188, 189, 190, 191, 192, 193, 0, 361,
+ 156, 157, 234, 159, 0, 0, 163, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 73, 73,
+ 73, 200, 357, 0, 0, 73, 0, 91, 214, 0,
+ 0, 73, 0, 0, 73, 0, 73, 366, 0, 0,
+ 0, 0, 0, 0, 374, 73, 0, 0, 73, 0,
+ 0, 0, 73, 0, 0, 73, 0, 0, 73, 73,
+ 0, 386, 0, 0, 73, 73, 0, 0, 73, 0,
+ 0, 0, 0, 0, 0, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 0, 0, 0, 0, 0, 0, 0, 0,
+ 249, 250, 251, 253, 254, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 291, 292, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 121, 0, 0, 0, 0,
- 0, 0, 55, 0, 55, 0, 128, 0, 0, 204,
- 0, 55, 0, 0, 328, 0, 0, 159, 160, 161,
- 162, 184, 185, 55, 186, 0, 55, 166, 167, 187,
- 0, 0, 0, 0, 0, 138, 139, 0, 141, 0,
- 342, 145, 0, 0, 0, 169, 170, 171, 172, 173,
- 174, 175, 0, 205, 0, 0, 182, 0, 0, 55,
- 55, 55, 0, 195, 338, 0, 55, 0, 73, 0,
- 0, 0, 55, 0, 0, 55, 0, 55, 0, 347,
- 0, 0, 0, 0, 0, 355, 55, 0, 0, 55,
- 0, 0, 0, 55, 0, 0, 55, 0, 0, 55,
- 55, 0, 367, 0, 0, 55, 55, 0, 0, 55,
- 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 238, 239, 240, 241, 242, 0, 0, 0,
- 0, 0, 0, 0, 0, 230, 231, 232, 235, 0,
- 0, 0, 183, 0, 0, 0, 0, 0, 0, 272,
- 273, 159, 160, 161, 162, 184, 185, 0, 186, 0,
- 0, 166, 167, 187, 0, 0, 0, 291, 292, 0,
- 293, 0, 0, 0, 298, 0, 300, 0, 0, 169,
- 170, 171, 172, 173, 174, 175, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, 0, 0, 0, 0, 0, 76, 0, 0,
- 0, 325, 77, 0, 0, 1, 146, 147, 0, 0,
- 0, 80, 81, 82, 83, 6, 0, 0, 333, 8,
- 0, 0, 0, 12, 13, 0, 15, 68, 17, 18,
- 0, 69, 70, 0, 22, 0, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 86, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 87,
- 42, 43, 71, 0, 0, 0, 0, 0, 0, 72,
- 0, 351, 0, 88, 89, 0, 0, 0, 76, 0,
- 105, 358, 91, 77, 148, 0, 1, 78, 79, 0,
- 0, 0, 80, 81, 82, 83, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 68, 158,
- 18, 0, 69, 70, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 159, 160, 161, 162, 163, 164, 86,
- 165, 34, 35, 166, 167, 168, 37, 38, 39, 40,
- 87, 42, 43, 71, 0, 0, 0, 0, 0, 0,
- 72, 169, 170, 171, 172, 173, 174, 175, 0, 76,
- 176, 105, 0, 91, 77, 0, 0, 1, 78, 79,
- 0, 0, 0, 80, 81, 82, 83, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 191, 0, 15, 68,
- 17, 18, 0, 69, 70, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 159, 160, 161, 162, 163, 164,
- 86, 165, 192, 193, 166, 167, 168, 37, 38, 39,
- 40, 87, 42, 43, 71, 0, 0, 0, 0, 0,
- 0, 72, 169, 170, 171, 172, 173, 174, 175, 0,
- 76, 176, 105, 0, 91, 77, 0, 0, 1, 78,
- 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
- 25, 0, 27, 0, 0, 159, 160, 161, 162, 163,
- 164, 86, 165, 34, 35, 166, 167, 168, 37, 38,
- 39, 40, 87, 42, 43, 71, 0, 0, 0, 0,
- 0, 0, 72, 169, 170, 171, 172, 173, 174, 175,
- 0, 76, 176, 105, 0, 91, 77, 0, 0, 1,
- 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
+ 0, 0, 0, 310, 311, 0, 312, 0, 0, 0,
+ 317, 0, 319, 177, 178, 179, 180, 202, 203, 0,
+ 204, 0, 0, 184, 205, 206, 0, 0, 0, 0,
+ 0, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, 335, 336, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 344, 0, 0,
+ 187, 188, 189, 190, 191, 192, 193, 0, 0, 233,
+ 0, 234, 0, 0, 352, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 94, 95, 1, 164, 165, 0, 98, 99, 100, 101,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 370, 0, 0,
+ 0, 30, 31, 104, 33, 34, 35, 377, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 123, 0, 109, 0, 166, 94,
+ 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 68, 210, 18, 0, 69, 70, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 159, 160, 161, 162,
- 163, 164, 86, 165, 34, 35, 166, 167, 168, 37,
- 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
- 0, 0, 0, 72, 169, 170, 171, 172, 173, 174,
- 175, 0, 76, 0, 105, 0, 91, 77, 0, 0,
- 1, 78, 79, 0, 0, 0, 80, 81, 82, 83,
+ 15, 86, 176, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 177, 178, 179, 180,
+ 181, 182, 104, 183, 34, 35, 184, 185, 186, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
+ 57, 58, 105, 60, 61, 89, 0, 0, 0, 0,
+ 0, 0, 90, 187, 188, 189, 190, 191, 192, 193,
+ 0, 0, 194, 123, 0, 109, 94, 95, 1, 96,
+ 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 210, 0, 15, 86, 17,
+ 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
+ 27, 0, 0, 177, 178, 179, 180, 181, 182, 104,
+ 183, 211, 212, 184, 185, 186, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 0, 57, 58, 105,
+ 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
+ 187, 188, 189, 190, 191, 192, 193, 0, 0, 194,
+ 123, 0, 109, 94, 95, 1, 96, 97, 0, 98,
+ 99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 177, 178, 179, 180, 181, 182, 104, 183, 34, 35,
+ 184, 185, 186, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 0, 57, 58, 105, 60, 61, 89,
+ 0, 0, 0, 0, 0, 0, 90, 187, 188, 189,
+ 190, 191, 192, 193, 0, 0, 194, 123, 0, 109,
+ 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 86, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
- 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
- 0, 0, 0, 76, 0, 105, 144, 91, 77, 0,
- 0, 1, 78, 79, 0, 0, 0, 80, 81, 82,
- 83, 6, 0, 0, 0, 84, 0, 0, 0, 12,
- 13, 0, 85, 68, 17, 18, 0, 69, 70, 0,
+ 0, 15, 86, 229, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 177, 178, 179,
+ 180, 181, 182, 104, 183, 34, 35, 184, 185, 186,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 187, 188, 189, 190, 191, 192,
+ 193, 0, 0, 0, 123, 0, 109, 94, 95, 1,
+ 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
+ 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 104, 33, 34, 35, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 0, 57, 58,
+ 105, 60, 61, 89, 0, 0, 0, 0, 0, 0,
+ 90, 0, 0, 0, 106, 107, 0, 0, 0, 0,
+ 0, 123, 162, 109, 94, 95, 1, 96, 97, 0,
+ 98, 99, 100, 101, 6, 0, 0, 0, 102, 0,
+ 0, 0, 12, 13, 0, 103, 86, 17, 18, 0,
+ 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 104, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 0, 57, 58, 105, 60, 61,
+ 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
+ 0, 106, 107, 0, 0, 0, 0, 0, 108, 0,
+ 109, 94, 95, 1, 96, 97, 0, 98, 99, 100,
+ 101, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 86, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 87, 42, 43, 71, 0,
- 0, 0, 0, 0, 0, 72, 0, 0, 0, 88,
- 89, 0, 76, 0, 0, 0, 90, 77, 91, 0,
- 1, 78, 79, 0, 0, 0, 80, 81, 82, 83,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 86, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
- 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
- 0, 76, 0, 0, 0, 105, 77, 91, 0, 1,
- 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 30, 31, 86, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
- 0, 0, 0, 72, 0, 0, 0, 88, 89, 0,
- 76, 0, 0, 0, 90, 77, 91, 0, 1, 78,
- 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
+ 0, 0, 30, 31, 104, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 105, 60, 61, 89, 0, 0,
+ 0, 0, 0, 0, 90, 0, 0, 0, 106, 107,
+ 0, 0, 0, 0, 0, 123, 0, 109, 94, 95,
+ 1, 96, 97, 0, 98, 99, 100, 101, 6, 0,
0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
+ 86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
- 31, 86, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 71, 0, 0, 0, 0,
- 0, 0, 72, 0, 0, 0, 88, 89, 0, 76,
- 0, 0, 0, 105, 77, 91, 0, 1, 78, 79,
- 0, 0, 0, 80, 81, 82, 83, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 68,
- 17, 18, 0, 69, 70, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 86, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 71, 0, 0, 0, 0, 0,
- 0, 72, 76, 0, 0, 88, 89, 77, 0, 0,
- 1, 78, 79, 0, 91, 0, 80, 81, 82, 83,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 0, 0, 86, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 87, 42, 43, 71, 0, 0,
- 0, 0, 0, 0, 72, 0, 0, 0, 88, 89,
- 0, 76, 0, 0, 0, 105, 77, 91, 0, 1,
- 78, 79, 0, 0, 0, 80, 81, 82, 83, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 68, 17, 18, 0, 69, 70, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 86, 33, 34, 35, 0, 0, 0, 37,
- 38, 39, 40, 87, 42, 43, 71, 0, 0, 0,
- 0, 0, 0, 72, 0, 0, 0, 88, 89, 0,
- 76, 0, 0, 0, 105, 77, 91, 0, 1, 78,
- 79, 0, 0, 0, 80, 81, 82, 83, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 68, 17, 18, 0, 69, 70, 0, 22, 0, 24,
- 25, 0, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 86, 0, 34, 35, 0, 0, 0, 37, 38,
- 39, 40, 87, 42, 43, 71, 0, 0, 0, 0,
- 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 105, 0, 91, 2, 3, 4, 5,
- 6, 0, 0, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
- 5, 6, 335, 48, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
+ 31, 104, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 105, 60, 61, 89, 0, 0, 0, 0, 0,
+ 0, 90, 0, 0, 0, 106, 107, 0, 0, 0,
+ 0, 0, 108, 0, 109, 94, 95, 1, 96, 97,
+ 0, 98, 99, 100, 101, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
+ 0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 104, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 89, 0, 0, 0, 0, 0, 0, 90, 0,
+ 0, 0, 106, 107, 0, 0, 0, 0, 0, 123,
+ 0, 109, 94, 95, 1, 96, 97, 0, 98, 99,
+ 100, 101, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 104, 33, 34, 35, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 336, 1, 0, 47, 0, 0, 0, 2,
- 3, 4, 5, 6, 281, 0, 7, 8, 9, 10,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 1, 0, 330, 47, 0, 0,
- 2, 3, 4, 5, 6, 0, 281, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 0, 0, 0, 341, 0, 47, 0,
- 0, 0, 1, 0, 0, 345, 0, 281, 2, 3,
- 4, 5, 6, 0, 0, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 89, 0,
+ 0, 0, 0, 0, 0, 90, 0, 0, 0, 106,
+ 107, 0, 0, 94, 95, 1, 96, 97, 109, 98,
+ 99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 0, 0, 104, 33, 34, 35,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 281, 7, 8, 9, 10,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 0, 22, 23, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 0, 0, 357, 1, 0, 47, 0, 0,
- 0, 2, 3, 4, 5, 6, 281, 0, 7, 8,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 0, 57, 58, 105, 60, 61, 89,
+ 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
+ 106, 107, 0, 0, 0, 0, 0, 123, 0, 109,
+ 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 33, 34, 35, 0, 0, 0,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 123, 0, 109, 94, 95, 1,
+ 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
+ 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 34, 35, 0, 0, 0, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 0, 57, 58,
+ 105, 60, 61, 89, 0, 0, 0, 0, 0, 0,
+ 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 123, 0, 109, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
+ 1, 65, 0, 0, 2, 3, 4, 5, 6, 354,
+ 66, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 0, 0, 355, 0,
+ 1, 65, 0, 0, 2, 3, 4, 5, 6, 0,
+ 300, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
+ 349, 65, 0, 0, 0, 0, 0, 1, 0, 0,
+ 300, 2, 3, 4, 5, 6, 0, 0, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 0, 0, 363, 1, 0, 47,
- 0, 0, 0, 2, 3, 4, 5, 6, 281, 0,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 0, 22, 23, 24, 25,
- 0, 27, 28, 29, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 0, 0, 1, 370,
- 0, 47, 0, 0, 2, 3, 4, 5, 6, 0,
- 281, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 0, 0, 1,
- 371, 0, 47, 0, 0, 2, 3, 4, 5, 6,
- 0, 281, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
- 1, 0, 0, 47, 0, 0, 2, 3, 4, 5,
- 6, 0, 262, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
- 0, 1, 0, 0, 47, 0, 0, 2, 3, 4,
- 5, 6, 0, 281, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 0, 0, 1, 0, 0, 47, 0, 0, 2, 3,
- 4, 5, 6, 0, 337, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 0, 0, 1, 0, 0, 47, 0, 0, 2,
- 3, 4, 5, 6, 0, 346, 7, 8, 9, 10,
- 0, 12, 13, 0, 15, 16, 17, 18, 19, 69,
- 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 360, 1, 65, 0,
+ 364, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 376, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 382, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 389, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 390, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 281, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 356, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 365, 7, 8,
+ 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
+ 19, 87, 21, 0, 22, 0, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 89, 63, 0, 0, 1, 313, 314, 65, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 71, 45, 1, 294, 295, 0, 0, 47, 2, 3,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 68, 17, 18, 0, 69, 70,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 71,
- 0, 1, 0, 0, 0, 0, 72, 2, 3, 4,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 0, 57, 58, 59, 60, 61, 89,
+ 0, 0, 0, 1, 0, 0, 90, 2, 3, 4,
5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 68, 17, 18, 0, 69, 70, 0,
+ 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 71, 0,
- 1, 0, 0, 0, 0, 72, 80, 81, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 68, 17, 18, 0, 69, 70, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 71, 159, 160,
- 161, 162, 184, 185, 72, 186, 0, 0, 166, 167,
- 187, 159, 160, 161, 162, 184, 185, 0, 186, 0,
- 0, 166, 167, 187, 0, 0, 169, 170, 171, 172,
- 173, 174, 175, 0, 0, 214, 0, 215, 0, 169,
- 170, 171, 172, 173, 174, 175, 0, 0, 0, 0,
- 215, 244, 245, 246, 247, 248, 249, 0, 250, 0,
- 0, 251, 252, 253, 159, 160, 161, 162, 184, 185,
- 0, 186, 0, 0, 166, 167, 187, 0, 0, 254,
- 255, 256, 257, 258, 259, 260, 0, 0, 261, 0,
- 0, 0, 169, 170, 171, 172, 173, 174, 175, 0,
- 271, 159, 160, 161, 162, 184, 185, 0, 186, 0,
- 0, 166, 167, 187, 159, 160, 161, 162, 184, 185,
- 0, 186, 0, 0, 166, 167, 187, 0, 0, 169,
- 170, 171, 172, 173, 174, 175, 0, 327, 0, 0,
- 0, 0, 169, 170, 171, 172, 173, 174, 175, 0,
- 359, 159, 160, 161, 162, 184, 185, 0, 186, 0,
- 0, 166, 167, 187, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 169,
- 170, 171, 172, 173, 174, 175, 0, 365, 159, 160,
- 161, 162, 184, 185, 0, 186, 0, 0, 166, 167,
- 187, 0, 0, 0, 0, 0, 212, 213, 0, 0,
- 0, 0, 0, 0, 0, 0, 169, 170, 171, 172,
- 173, 174, 175, 159, 160, 161, 162, 184, 185, 0,
- 186, 0, 0, 166, 167, 187, 244, 245, 246, 247,
- 248, 249, 0, 250, 0, 0, 251, 252, 253, 0,
- 0, 169, 170, 171, 172, 173, 174, 175, 0, 0,
- 0, 0, 0, 0, 254, 255, 256, 257, 258, 259,
- 260
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
+ 0, 1, 0, 0, 90, 98, 99, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
+ 57, 58, 59, 60, 61, 89, 263, 264, 265, 266,
+ 267, 268, 90, 269, 0, 0, 270, 271, 272, 177,
+ 178, 179, 180, 202, 203, 0, 204, 0, 0, 184,
+ 205, 206, 177, 178, 179, 180, 202, 203, 0, 204,
+ 0, 0, 184, 205, 206, 0, 0, 0, 0, 0,
+ 0, 0, 0, 273, 274, 275, 276, 277, 278, 279,
+ 0, 0, 280, 0, 0, 0, 187, 188, 189, 190,
+ 191, 192, 193, 0, 290, 0, 0, 0, 0, 187,
+ 188, 189, 190, 191, 192, 193, 0, 346, 177, 178,
+ 179, 180, 202, 203, 0, 204, 0, 0, 184, 205,
+ 206, 177, 178, 179, 180, 202, 203, 0, 204, 0,
+ 0, 184, 205, 206, 0, 0, 0, 0, 0, 0,
+ 177, 178, 179, 180, 202, 203, 0, 204, 0, 0,
+ 184, 205, 206, 0, 0, 187, 188, 189, 190, 191,
+ 192, 193, 0, 378, 0, 0, 0, 0, 187, 188,
+ 189, 190, 191, 192, 193, 0, 384, 231, 232, 0,
+ 0, 0, 0, 0, 0, 0, 0, 187, 188, 189,
+ 190, 191, 192, 193, 177, 178, 179, 180, 202, 203,
+ 0, 204, 0, 0, 184, 205, 206, 263, 264, 265,
+ 266, 267, 268, 0, 269, 0, 0, 270, 271, 272,
+ 177, 178, 179, 180, 0, 0, 0, 204, 0, 0,
+ 184, 205, 206, 0, 0, 0, 0, 0, 0, 0,
+ 0, 187, 188, 189, 190, 191, 192, 193, 0, 0,
+ 0, 0, 0, 0, 273, 274, 275, 276, 277, 278,
+ 279, 0, 0, 0, 0, 0, 0, 187, 188, 189,
+ 190, 191, 192, 193
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 47, 0, 176, 39, 57, 86, 9,
- 88, 89, 39, 262, 14, 264, 19, 45, 42, 283,
- 0, 21, 271, 23, 103, 28, 26, 73, 52, 29,
- 87, 110, 88, 83, 84, 103, 92, 286, 92, 87,
- 86, 89, 110, 214, 86, 45, 46, 47, 57, 128,
- 50, 60, 55, 86, 50, 319, 57, 321, 88, 138,
- 128, 86, 326, 86, 80, 81, 82, 83, 332, 86,
- 138, 80, 81, 82, 83, 84, 191, 192, 193, 107,
- 81, 82, 83, 84, 86, 349, 41, 103, 337, 87,
- 261, 91, 356, 91, 110, 123, 360, 346, 80, 81,
- 82, 83, 366, 86, 353, 369, 92, 107, 86, 23,
- 359, 111, 128, 81, 82, 83, 365, 44, 45, 86,
- 87, 86, 138, 123, 86, 192, 193, 86, 42, 86,
- 86, 131, 34, 91, 212, 213, 50, 51, 52, 53,
- 54, 55, 91, 57, 87, 86, 60, 61, 62, 52,
- 86, 34, 89, 24, 86, 86, 86, 86, 92, 50,
- 204, 86, 86, 42, 78, 79, 80, 81, 82, 83,
- 84, 86, 191, 192, 193, 86, 86, 86, 50, 51,
- 52, 53, 86, 183, 329, 57, 86, 183, 60, 61,
- 62, 191, 192, 193, 28, 155, 138, -1, 220, -1,
- -1, -1, -1, -1, 204, 205, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
- 220, 10, 11, -1, -1, -1, -1, -1, -1, -1,
- 19, -1, -1, -1, -1, -1, -1, -1, -1, 28,
+ 0, 29, 21, 0, 65, 104, 302, 106, 107, 9,
+ 31, 49, 194, 19, 14, 281, 99, 283, 34, 31,
+ 103, 21, 28, 23, 290, 84, 26, 121, 44, 29,
+ 98, 99, 100, 101, 128, 63, 98, 0, 97, 305,
+ 102, 49, 338, 97, 340, 98, 99, 100, 101, 345,
+ 97, 233, 146, 121, 98, 351, 94, 95, 49, 99,
+ 128, 52, 156, 63, 64, 65, 97, 73, 68, 33,
+ 121, 68, 368, 210, 211, 212, 97, 128, 146, 375,
+ 98, 103, 100, 379, 92, 93, 94, 95, 156, 385,
+ 356, 102, 388, 36, 37, 146, 97, 125, 280, 365,
+ 91, 92, 93, 94, 95, 156, 372, 97, 15, 109,
+ 97, 98, 378, 141, 99, 100, 101, 97, 384, 211,
+ 212, 97, 97, 97, 97, 125, 97, 34, 97, 129,
+ 26, 103, 231, 232, 102, 42, 43, 44, 45, 46,
+ 47, 141, 49, 98, 97, 52, 53, 54, 97, 149,
+ 44, 26, 100, 16, 34, 97, 97, 97, 34, 97,
+ 97, 97, 223, 97, 103, 97, 42, 43, 44, 45,
+ 46, 47, 97, 49, 97, 97, 52, 53, 54, 97,
+ 68, 348, 89, 90, 91, 92, 93, 94, 95, 28,
+ 239, 210, 211, 212, 156, 173, -1, -1, -1, -1,
+ -1, 201, -1, -1, 201, -1, -1, -1, -1, -1,
+ 210, 211, 212, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, -1, 223, 224, -1, -1, -1, 10, 11,
+ -1, -1, -1, -1, -1, -1, -1, 19, 33, 239,
+ -1, -1, -1, -1, -1, -1, 28, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ 62, 281, -1, 283, -1, -1, -1, -1, -1, -1,
+ 290, 73, -1, 293, 89, 90, 91, 92, 93, 94,
+ 95, -1, 302, -1, -1, 305, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 347,
+ 102, 103, 100, 105, -1, -1, 108, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
+ 340, 123, 339, -1, -1, 345, -1, 347, 130, -1,
+ -1, 351, -1, -1, 354, -1, 356, 354, -1, -1,
+ -1, -1, -1, -1, 364, 365, -1, -1, 368, -1,
+ -1, -1, 372, -1, -1, 375, -1, -1, 378, 379,
+ -1, 381, -1, -1, 384, 385, -1, -1, 388, -1,
+ -1, -1, -1, -1, -1, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, -1, -1, -1, -1, -1, -1, -1, -1,
+ 202, 203, 204, 205, 206, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 217, 218, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, 262, -1, 264, -1, 55, -1, -1, 42,
- -1, 271, -1, -1, 274, -1, -1, 50, 51, 52,
- 53, 54, 55, 283, 57, -1, 286, 60, 61, 62,
- -1, -1, -1, -1, -1, 84, 85, -1, 87, -1,
- 328, 90, -1, -1, -1, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, -1, -1, 105, -1, -1, 319,
- 320, 321, -1, 112, 320, -1, 326, -1, 328, -1,
- -1, -1, 332, -1, -1, 335, -1, 337, -1, 335,
- -1, -1, -1, -1, -1, 345, 346, -1, -1, 349,
- -1, -1, -1, 353, -1, -1, 356, -1, -1, 359,
- 360, -1, 362, -1, -1, 365, 366, -1, -1, 369,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, -1, -1, -1,
- -1, -1, -1, -1, -1, 184, 185, 186, 187, -1,
- -1, -1, 41, -1, -1, -1, -1, -1, -1, 198,
- 199, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, -1, -1, -1, 216, 217, -1,
- 219, -1, -1, -1, 223, -1, 225, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
- 259, 260, -1, -1, -1, -1, -1, 5, -1, -1,
- -1, 270, 10, -1, -1, 13, 14, 15, -1, -1,
- -1, 19, 20, 21, 22, 23, -1, -1, 287, 27,
- -1, -1, -1, 31, 32, -1, 34, 35, 36, 37,
- -1, 39, 40, -1, 42, -1, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, -1, -1, -1, -1, -1, -1, 77,
- -1, 340, -1, 81, 82, -1, -1, -1, 5, -1,
- 88, 350, 90, 10, 92, -1, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, 22, 23, -1, -1, -1,
- 27, -1, -1, -1, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, -1, 42, -1, 44, 45, -1,
- 47, -1, -1, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 5,
- 87, 88, -1, 90, 10, -1, -1, 13, 14, 15,
- -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, -1, 44, 45,
- -1, 47, -1, -1, 50, 51, 52, 53, 54, 55,
+ -1, -1, -1, 235, 236, -1, 238, -1, -1, -1,
+ 242, -1, 244, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ -1, 263, 264, 265, 266, 267, 268, 269, 270, 271,
+ 272, 273, 274, 275, 276, 277, 278, 279, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 289, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ -1, 100, -1, -1, 306, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ -1, 36, 37, -1, 39, -1, -1, 359, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, 369, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
+ 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, 39, -1, -1, 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, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 5, 87, 88, -1, 90, 10, -1, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
- 45, -1, 47, -1, -1, 50, 51, 52, 53, 54,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
+ 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
+ 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
+ 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
+ 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
+ 39, -1, -1, 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, -1,
+ 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
+ 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
+ 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
+ -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
+ 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, -1, 69, 70, 71,
+ 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
+ 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ -1, 36, 37, -1, 39, -1, -1, 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, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 5, 87, 88, -1, 90, 10, -1, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
- 44, 45, -1, 47, -1, -1, 50, 51, 52, 53,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
+ -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
+ 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
+ -1, 39, -1, -1, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
+ 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, 100, 101, 5, 6, 7, 8, 9, -1,
+ 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
+ -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
+ 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
+ -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, 5, 6, 7, 8, 9, -1, 11, 12, 13,
+ 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
+ 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
+ 34, -1, 36, 37, -1, 39, -1, -1, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, 5, -1, 88, -1, 90, 10, -1, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, -1, -1, 5, -1, 88, 89, 90, 10, -1,
- -1, 13, 14, 15, -1, -1, -1, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, 81,
- 82, -1, 5, -1, -1, -1, 88, 10, 90, -1,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
- 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, 81, 82, -1, 5,
- -1, -1, -1, 88, 10, 90, -1, 13, 14, 15,
- -1, -1, -1, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, -1, -1, -1, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, -1, 42, -1, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
- -1, 77, 5, -1, -1, 81, 82, 10, -1, -1,
- 13, 14, 15, -1, 90, -1, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, -1, -1, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 81, 82,
- -1, 5, -1, -1, -1, 88, 10, 90, -1, 13,
- 14, 15, -1, -1, -1, 19, 20, 21, 22, 23,
- -1, -1, -1, 27, -1, -1, -1, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, -1, 42, -1,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- -1, -1, 56, 57, 58, 59, -1, -1, -1, 63,
- 64, 65, 66, 67, 68, 69, 70, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
- 5, -1, -1, -1, 88, 10, 90, -1, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, 22, 23, -1,
- -1, -1, 27, -1, -1, -1, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, -1, 42, -1, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
- -1, 56, -1, 58, 59, -1, -1, -1, 63, 64,
- 65, 66, 67, 68, 69, 70, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
- 13, -1, -1, 88, -1, 90, 19, 20, 21, 22,
- 23, -1, -1, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, 46, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
- 22, 23, 24, 86, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 74, 13, -1, 77, -1, -1, -1, 19,
- 20, 21, 22, 23, 86, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 13, -1, 76, 77, -1, -1,
- 19, 20, 21, 22, 23, -1, 86, 26, 27, 28,
- 29, 30, 31, 32, -1, 34, 35, 36, 37, 38,
- 39, 40, -1, 42, 43, 44, 45, -1, 47, 48,
- 49, -1, -1, -1, -1, 54, 55, 56, 57, 58,
- 59, -1, -1, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, -1, -1, -1, 75, -1, 77, -1,
- -1, -1, 13, -1, -1, 16, -1, 86, 19, 20,
- 21, 22, 23, -1, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
- 20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, 43, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, -1, -1, 74, 13, -1, 77, -1, -1,
- -1, 19, 20, 21, 22, 23, 86, -1, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
- 38, 39, 40, -1, 42, 43, 44, 45, -1, 47,
- 48, 49, -1, -1, -1, -1, 54, 55, 56, 57,
- 58, 59, -1, -1, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, -1, -1, 74, 13, -1, 77,
- -1, -1, -1, 19, 20, 21, 22, 23, 86, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, -1, 42, 43, 44, 45,
- -1, 47, 48, 49, -1, -1, -1, -1, 54, 55,
- 56, 57, 58, 59, -1, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, -1, -1, 13, 75,
- -1, 77, -1, -1, 19, 20, 21, 22, 23, -1,
- 86, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, 38, 39, 40, -1, 42, 43, 44,
- 45, -1, 47, 48, 49, -1, -1, -1, -1, 54,
- 55, 56, 57, 58, 59, -1, -1, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, -1, -1, 13,
- 75, -1, 77, -1, -1, 19, 20, 21, 22, 23,
- -1, 86, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, -1, 42, 43,
- 44, 45, -1, 47, 48, 49, -1, -1, -1, -1,
- 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, -1, -1,
- 13, -1, -1, 77, -1, -1, 19, 20, 21, 22,
- 23, -1, 86, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, 38, 39, 40, -1, 42,
- 43, 44, 45, -1, 47, 48, 49, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
- -1, 13, -1, -1, 77, -1, -1, 19, 20, 21,
- 22, 23, -1, 86, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 43, 44, 45, -1, 47, 48, 49, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- -1, -1, 13, -1, -1, 77, -1, -1, 19, 20,
- 21, 22, 23, -1, 86, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- -1, 42, 43, 44, 45, -1, 47, 48, 49, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, -1, -1, 13, -1, -1, 77, -1, -1, 19,
- 20, 21, 22, 23, -1, 86, 26, 27, 28, 29,
- -1, 31, 32, -1, 34, 35, 36, 37, 38, 39,
- 40, -1, 42, -1, 44, 45, -1, 47, 48, 49,
- -1, -1, -1, -1, 54, 55, 56, 57, 58, 59,
- -1, -1, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 13, 14, 15, -1, -1, 77, 19, 20,
- 21, 22, 23, -1, -1, -1, 27, -1, -1, -1,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- -1, 42, -1, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
- -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- -1, 13, -1, -1, -1, -1, 77, 19, 20, 21,
- 22, 23, -1, -1, -1, 27, -1, -1, -1, 31,
- 32, -1, 34, 35, 36, 37, -1, 39, 40, -1,
- 42, -1, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, -1,
- 13, -1, -1, -1, -1, 77, 19, 20, 21, 22,
- 23, -1, -1, -1, 27, -1, -1, -1, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, -1, 42,
- -1, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 50, 51,
- 52, 53, 54, 55, 77, 57, -1, -1, 60, 61,
- 62, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, 87, -1, 89, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, -1,
- 89, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, 87, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, 50, 51, 52, 53, 54, 55,
- -1, 57, -1, -1, 60, 61, 62, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
- -1, -1, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 50, 51, 52, 53, 54, 55, -1, 57, -1,
- -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
- 79, 80, 81, 82, 83, 84, -1, 86, 50, 51,
- 52, 53, 54, 55, -1, 57, -1, -1, 60, 61,
- 62, -1, -1, -1, -1, -1, 68, 69, -1, -1,
- -1, -1, -1, -1, -1, -1, 78, 79, 80, 81,
- 82, 83, 84, 50, 51, 52, 53, 54, 55, -1,
- 57, -1, -1, 60, 61, 62, 50, 51, 52, 53,
- 54, 55, -1, 57, -1, -1, 60, 61, 62, -1,
- -1, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, -1, -1, 78, 79, 80, 81, 82, 83,
- 84
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
+ -1, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
+ -1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
+ 27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
+ 37, -1, 39, -1, -1, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, -1, -1, -1, -1, -1,
+ -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
+ -1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
+ -1, 11, 12, 13, 14, 15, -1, -1, -1, 19,
+ -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
+ -1, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, -1, -1, -1, -1, -1, -1, 88, -1,
+ -1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
+ -1, 101, 5, 6, 7, 8, 9, -1, 11, 12,
+ 13, 14, 15, -1, -1, -1, 19, -1, -1, -1,
+ 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, -1, -1, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, -1,
+ -1, -1, -1, -1, -1, 88, -1, -1, -1, 92,
+ 93, -1, -1, 5, 6, 7, 8, 9, 101, 11,
+ 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
+ -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
+ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
+ 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
+ -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
+ 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
+ -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
+ 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, 16,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 87, 88, -1, -1, -1, -1, -1, 7, -1, -1,
+ 97, 11, 12, 13, 14, 15, -1, -1, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ 10, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, 7, 8, 9, 88, 11,
+ 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
+ -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ -1, -1, -1, 7, -1, -1, 88, 11, 12, 13,
+ 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
+ 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
+ 34, -1, 36, 37, -1, 39, -1, -1, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
+ -1, 7, -1, -1, 88, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
+ 76, 77, 78, 79, 80, 81, 42, 43, 44, 45,
+ 46, 47, 88, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 98, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, 79, 80, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, -1, -1, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 13, 19, 20, 21, 22, 23, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 42, 43, 44, 45, 46, 47, 48, 49,
- 54, 55, 56, 57, 58, 59, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 77, 86, 94,
- 95, 96, 97, 98, 103, 105, 108, 109, 110, 113,
- 115, 116, 117, 118, 119, 120, 39, 86, 35, 39,
- 40, 70, 77, 105, 106, 107, 5, 10, 14, 15,
- 19, 20, 21, 22, 27, 34, 56, 67, 81, 82,
- 88, 90, 105, 111, 112, 124, 125, 128, 129, 130,
- 133, 134, 135, 138, 140, 88, 138, 105, 39, 111,
- 138, 44, 45, 105, 125, 127, 105, 105, 111, 112,
- 106, 138, 106, 105, 109, 0, 96, 111, 138, 86,
- 86, 87, 124, 134, 136, 136, 136, 136, 138, 138,
- 135, 138, 135, 135, 89, 138, 14, 15, 92, 105,
- 131, 132, 138, 141, 142, 88, 86, 86, 36, 50,
- 51, 52, 53, 54, 55, 57, 60, 61, 62, 78,
- 79, 80, 81, 82, 83, 84, 87, 124, 133, 137,
- 139, 140, 138, 41, 54, 55, 57, 62, 106, 86,
- 86, 32, 58, 59, 105, 138, 42, 52, 114, 41,
- 86, 86, 86, 86, 42, 86, 86, 106, 86, 105,
- 36, 139, 68, 69, 87, 89, 92, 92, 91, 92,
- 87, 91, 91, 87, 141, 34, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 142, 50, 51, 52, 53, 54, 55,
- 57, 60, 61, 62, 78, 79, 80, 81, 82, 83,
- 84, 87, 86, 108, 86, 125, 126, 128, 126, 126,
- 52, 86, 138, 138, 73, 86, 99, 100, 101, 102,
- 109, 86, 108, 121, 122, 123, 86, 34, 135, 135,
- 142, 138, 138, 138, 14, 15, 105, 132, 138, 89,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 142, 121,
- 24, 121, 86, 86, 86, 138, 121, 86, 105, 86,
- 76, 123, 121, 138, 89, 24, 74, 86, 108, 23,
- 42, 75, 106, 102, 86, 16, 86, 108, 86, 121,
- 42, 138, 86, 86, 104, 105, 121, 74, 138, 86,
- 121, 86, 87, 74, 86, 86, 121, 105, 86, 121,
- 75, 75, 86, 86
+ 0, 7, 11, 12, 13, 14, 15, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 34, 35, 36, 37, 38, 39, 40, 41,
+ 46, 47, 48, 49, 50, 51, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 69, 70, 71, 72, 73, 74, 76, 77, 78,
+ 79, 80, 81, 82, 83, 88, 97, 105, 106, 107,
+ 108, 109, 114, 116, 119, 120, 121, 124, 126, 127,
+ 128, 129, 130, 131, 31, 97, 27, 31, 32, 81,
+ 88, 116, 117, 118, 5, 6, 8, 9, 11, 12,
+ 13, 14, 19, 26, 48, 78, 92, 93, 99, 101,
+ 116, 122, 123, 135, 136, 139, 140, 141, 144, 145,
+ 146, 149, 151, 99, 149, 116, 31, 122, 149, 36,
+ 37, 116, 136, 138, 116, 116, 122, 123, 117, 149,
+ 117, 116, 120, 0, 107, 122, 149, 97, 97, 98,
+ 135, 145, 147, 147, 147, 147, 149, 149, 146, 149,
+ 146, 146, 100, 149, 8, 9, 103, 116, 142, 143,
+ 149, 152, 153, 99, 97, 97, 28, 42, 43, 44,
+ 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
+ 92, 93, 94, 95, 98, 135, 144, 148, 150, 151,
+ 149, 33, 46, 47, 49, 53, 54, 117, 97, 97,
+ 24, 50, 51, 116, 149, 34, 44, 125, 33, 97,
+ 97, 97, 97, 34, 97, 97, 117, 97, 116, 28,
+ 150, 79, 80, 98, 100, 103, 103, 102, 103, 98,
+ 102, 102, 98, 152, 26, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 153, 42, 43, 44, 45, 46, 47, 49,
+ 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
+ 98, 97, 119, 97, 136, 137, 139, 137, 137, 44,
+ 97, 149, 149, 84, 97, 110, 111, 112, 113, 120,
+ 97, 119, 132, 133, 134, 97, 26, 146, 146, 153,
+ 149, 149, 149, 8, 9, 116, 143, 149, 100, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 153, 132, 16,
+ 132, 97, 97, 97, 149, 132, 97, 116, 97, 87,
+ 134, 132, 149, 100, 16, 85, 97, 119, 15, 34,
+ 86, 117, 113, 97, 10, 97, 119, 97, 132, 34,
+ 149, 97, 97, 115, 116, 132, 85, 149, 97, 132,
+ 97, 98, 85, 97, 97, 132, 116, 97, 132, 86,
+ 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 93, 94, 95, 95, 96, 96, 96, 96, 96,
- 97, 98, 99, 100, 100, 101, 101, 102, 102, 103,
- 103, 104, 104, 104, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 106,
- 106, 107, 107, 108, 108, 108, 108, 108, 108, 109,
- 109, 109, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 111, 111, 111, 111, 111, 111, 111, 112,
- 112, 112, 112, 112, 113, 113, 113, 113, 114, 114,
- 115, 115, 115, 116, 116, 117, 117, 117, 117, 118,
- 118, 118, 119, 119, 120, 121, 121, 122, 122, 123,
- 123, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 125, 126, 126, 127, 128, 128, 129, 129, 130,
- 130, 130, 131, 131, 132, 132, 132, 133, 134, 134,
- 135, 135, 135, 136, 136, 137, 137, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 140, 140, 141, 141, 142,
- 142
+ 0, 104, 105, 106, 106, 107, 107, 107, 107, 107,
+ 108, 109, 110, 111, 111, 112, 112, 113, 113, 114,
+ 114, 115, 115, 115, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 117, 117, 118,
+ 118, 119, 119, 119, 119, 119, 119, 120, 120, 120,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 122, 122, 122, 122, 122, 122, 122, 123, 123, 123,
+ 123, 123, 124, 124, 124, 124, 125, 125, 126, 126,
+ 126, 127, 127, 128, 128, 128, 128, 129, 129, 129,
+ 130, 130, 131, 132, 132, 133, 133, 134, 134, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 136,
+ 137, 137, 138, 139, 139, 140, 140, 141, 141, 141,
+ 142, 142, 143, 143, 143, 144, 145, 145, 146, 146,
+ 146, 147, 147, 148, 148, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 151, 151, 152, 152, 153, 153
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1556,22 +1695,23 @@ static const yytype_int8 yyr2[] =
5, 0, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 2, 0, 1, 3, 2, 4, 2, 5, 2,
- 2, 5, 4, 3, 5, 5, 5, 5, 1, 1,
- 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
- 11, 12, 4, 6, 4, 0, 1, 1, 2, 1,
- 1, 1, 1, 1, 1, 2, 4, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 2, 2, 3,
- 3, 3, 1, 3, 3, 3, 3, 3, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
+ 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
+ 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
+ 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
+ 4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
+ 1, 1, 1, 2, 4, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 2, 2, 2, 3, 3, 3,
+ 1, 3, 3, 3, 3, 3, 2, 2, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
+ 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 4, 4, 0, 1, 1,
- 3
+ 3, 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -1842,52 +1982,34 @@ yydestruct (const char *yymsg,
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
switch (yykind)
{
- case YYSYMBOL_tTHEFUNC: /* tTHEFUNC */
-#line 191 "engines/director/lingo/lingo-gr.y"
- { delete ((*yyvaluep).s); }
-#line 1849 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case YYSYMBOL_tTHEFUNCINOF: /* tTHEFUNCINOF */
-#line 191 "engines/director/lingo/lingo-gr.y"
- { delete ((*yyvaluep).s); }
-#line 1855 "engines/director/lingo/lingo-gr.cpp"
- break;
-
case YYSYMBOL_tVARID: /* tVARID */
#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1861 "engines/director/lingo/lingo-gr.cpp"
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1867 "engines/director/lingo/lingo-gr.cpp"
+#line 1995 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1873 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1879 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 191 "engines/director/lingo/lingo-gr.y"
- { delete ((*yyvaluep).s); }
-#line 1885 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 191 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1891 "engines/director/lingo/lingo-gr.cpp"
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2155,7 +2277,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 197 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2159 "engines/director/lingo/lingo-gr.cpp"
+#line 2281 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2166,7 +2288,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2170 "engines/director/lingo/lingo-gr.cpp"
+#line 2292 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2176,37 +2298,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2180 "engines/director/lingo/lingo-gr.cpp"
+#line 2302 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 212 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2308 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2192 "engines/director/lingo/lingo-gr.cpp"
+#line 2314 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2320 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2204 "engines/director/lingo/lingo-gr.cpp"
+#line 2326 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 253 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2210 "engines/director/lingo/lingo-gr.cpp"
+#line 2332 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2217,7 +2339,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2221 "engines/director/lingo/lingo-gr.cpp"
+#line 2343 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2227,13 +2349,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2231 "engines/director/lingo/lingo-gr.cpp"
+#line 2353 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 270 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2237 "engines/director/lingo/lingo-gr.cpp"
+#line 2359 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2242,994 +2364,1102 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2246 "engines/director/lingo/lingo-gr.cpp"
+#line 2368 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 280 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2253 "engines/director/lingo/lingo-gr.cpp"
+#line 2375 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2259 "engines/director/lingo/lingo-gr.cpp"
+#line 2381 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 286 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2265 "engines/director/lingo/lingo-gr.cpp"
+#line 2387 "engines/director/lingo/lingo-gr.cpp"
break;
- case 25: /* ID: tAFTER */
+ case 25: /* ID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("after"); }
-#line 2271 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("abbreviated"); }
+#line 2393 "engines/director/lingo/lingo-gr.cpp"
break;
- case 26: /* ID: tAND */
+ case 26: /* ID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("and"); }
-#line 2277 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("abbrev"); }
+#line 2399 "engines/director/lingo/lingo-gr.cpp"
break;
- case 27: /* ID: tBEFORE */
+ case 27: /* ID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("before"); }
-#line 2283 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("abbr"); }
+#line 2405 "engines/director/lingo/lingo-gr.cpp"
break;
- case 28: /* ID: tCAST */
+ case 28: /* ID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("cast"); }
-#line 2289 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("after"); }
+#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
- case 29: /* ID: tCHAR */
+ case 29: /* ID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("char"); }
-#line 2295 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("and"); }
+#line 2417 "engines/director/lingo/lingo-gr.cpp"
break;
- case 30: /* ID: tDOWN */
+ case 30: /* ID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("down"); }
-#line 2301 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("before"); }
+#line 2423 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 31: /* ID: tCAST */
+#line 298 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("cast"); }
+#line 2429 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 32: /* ID: tCHAR */
+#line 299 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("char"); }
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 33: /* ID: tCHARS */
+#line 300 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("chars"); }
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 34: /* ID: tCONTAINS */
+#line 301 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("contains"); }
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
break;
- case 31: /* ID: tFIELD */
+ case 35: /* ID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("field"); }
-#line 2307 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.s) = new Common::String("date"); }
+#line 2453 "engines/director/lingo/lingo-gr.cpp"
break;
- case 32: /* ID: tFRAME */
+ case 36: /* ID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("down"); }
+#line 2459 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 37: /* ID: tFIELD */
+#line 308 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("field"); }
+#line 2465 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 38: /* ID: tFRAME */
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2313 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
break;
- case 33: /* ID: tIN */
-#line 306 "engines/director/lingo/lingo-gr.y"
+ case 39: /* ID: tIN */
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2319 "engines/director/lingo/lingo-gr.cpp"
+#line 2477 "engines/director/lingo/lingo-gr.cpp"
break;
- case 34: /* ID: tINTERSECTS */
-#line 308 "engines/director/lingo/lingo-gr.y"
+ case 40: /* ID: tINTERSECTS */
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2325 "engines/director/lingo/lingo-gr.cpp"
+#line 2483 "engines/director/lingo/lingo-gr.cpp"
break;
- case 35: /* ID: tINTO */
-#line 309 "engines/director/lingo/lingo-gr.y"
+ case 41: /* ID: tINTO */
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2331 "engines/director/lingo/lingo-gr.cpp"
+#line 2489 "engines/director/lingo/lingo-gr.cpp"
break;
- case 36: /* ID: tITEM */
-#line 310 "engines/director/lingo/lingo-gr.y"
+ case 42: /* ID: tITEM */
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2337 "engines/director/lingo/lingo-gr.cpp"
+#line 2495 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 43: /* ID: tITEMS */
+#line 318 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("items"); }
+#line 2501 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 44: /* ID: tLAST */
+#line 319 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("last"); }
+#line 2507 "engines/director/lingo/lingo-gr.cpp"
break;
- case 37: /* ID: tLINE */
-#line 311 "engines/director/lingo/lingo-gr.y"
+ case 45: /* ID: tLINE */
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2343 "engines/director/lingo/lingo-gr.cpp"
+#line 2513 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 46: /* ID: tLINES */
+#line 321 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("lines"); }
+#line 2519 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 47: /* ID: tLONG */
+#line 322 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("long"); }
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 48: /* ID: tMENU */
+#line 324 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("menu"); }
+#line 2531 "engines/director/lingo/lingo-gr.cpp"
break;
- case 38: /* ID: tMOD */
-#line 314 "engines/director/lingo/lingo-gr.y"
+ case 49: /* ID: tMENUITEM */
+#line 325 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("menuItem"); }
+#line 2537 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 50: /* ID: tMENUITEMS */
+#line 326 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("menuItems"); }
+#line 2543 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 51: /* ID: tMOD */
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2349 "engines/director/lingo/lingo-gr.cpp"
+#line 2549 "engines/director/lingo/lingo-gr.cpp"
break;
- case 39: /* ID: tMOVIE */
-#line 315 "engines/director/lingo/lingo-gr.y"
+ case 52: /* ID: tMOVIE */
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2355 "engines/director/lingo/lingo-gr.cpp"
+#line 2555 "engines/director/lingo/lingo-gr.cpp"
break;
- case 40: /* ID: tNEXT */
-#line 316 "engines/director/lingo/lingo-gr.y"
+ case 53: /* ID: tNEXT */
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2361 "engines/director/lingo/lingo-gr.cpp"
+#line 2561 "engines/director/lingo/lingo-gr.cpp"
break;
- case 41: /* ID: tNOT */
-#line 317 "engines/director/lingo/lingo-gr.y"
+ case 54: /* ID: tNOT */
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2367 "engines/director/lingo/lingo-gr.cpp"
+#line 2567 "engines/director/lingo/lingo-gr.cpp"
break;
- case 42: /* ID: tOF */
-#line 318 "engines/director/lingo/lingo-gr.y"
+ case 55: /* ID: tNUMBER */
+#line 332 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("number"); }
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 56: /* ID: tOF */
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2373 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
break;
- case 43: /* ID: tOPEN */
-#line 320 "engines/director/lingo/lingo-gr.y"
+ case 57: /* ID: tOPEN */
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2379 "engines/director/lingo/lingo-gr.cpp"
+#line 2585 "engines/director/lingo/lingo-gr.cpp"
break;
- case 44: /* ID: tOR */
-#line 321 "engines/director/lingo/lingo-gr.y"
+ case 58: /* ID: tOR */
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2385 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
- case 45: /* ID: tPREVIOUS */
-#line 323 "engines/director/lingo/lingo-gr.y"
+ case 59: /* ID: tPREVIOUS */
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2391 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
- case 46: /* ID: tREPEAT */
-#line 326 "engines/director/lingo/lingo-gr.y"
+ case 60: /* ID: tREPEAT */
+#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2397 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
- case 47: /* ID: tSCRIPT */
-#line 327 "engines/director/lingo/lingo-gr.y"
+ case 61: /* ID: tSCRIPT */
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
- case 48: /* ID: tSET */
-#line 328 "engines/director/lingo/lingo-gr.y"
+ case 62: /* ID: tASSERTERROR */
+#line 343 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("scummvmAssertError"); }
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 63: /* ID: tSET */
+#line 344 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2409 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
- case 49: /* ID: tSTARTS */
-#line 329 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("starts"); }
-#line 2415 "engines/director/lingo/lingo-gr.cpp"
+ case 64: /* ID: tSHORT */
+#line 345 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("short"); }
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* ID: tTELL */
-#line 330 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("tell"); }
-#line 2421 "engines/director/lingo/lingo-gr.cpp"
+ case 65: /* ID: tSOUND */
+#line 346 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("sound"); }
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* ID: tTO */
-#line 332 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("to"); }
-#line 2427 "engines/director/lingo/lingo-gr.cpp"
+ case 66: /* ID: tSPRITE */
+#line 347 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("sprite"); }
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* ID: tASSERTERROR */
-#line 333 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2433 "engines/director/lingo/lingo-gr.cpp"
+ case 67: /* ID: tSTARTS */
+#line 348 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("starts"); }
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ID: tSPRITE */
-#line 334 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("sprite"); }
-#line 2439 "engines/director/lingo/lingo-gr.cpp"
+ case 68: /* ID: tTELL */
+#line 349 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("tell"); }
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ID: tWHILE */
-#line 336 "engines/director/lingo/lingo-gr.y"
+ case 69: /* ID: tTIME */
+#line 352 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("time"); }
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 70: /* ID: tTO */
+#line 353 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("to"); }
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 71: /* ID: tWHILE */
+#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2445 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tWINDOW */
-#line 337 "engines/director/lingo/lingo-gr.y"
+ case 72: /* ID: tWINDOW */
+#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2451 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tWITH */
-#line 338 "engines/director/lingo/lingo-gr.y"
+ case 73: /* ID: tWITH */
+#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2457 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tWITHIN */
-#line 339 "engines/director/lingo/lingo-gr.y"
+ case 74: /* ID: tWITHIN */
+#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2463 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tWORD */
-#line 340 "engines/director/lingo/lingo-gr.y"
+ case 75: /* ID: tWORD */
+#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2469 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* idlist: %empty */
-#line 343 "engines/director/lingo/lingo-gr.y"
+ case 76: /* ID: tWORDS */
+#line 360 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("words"); }
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 77: /* idlist: %empty */
+#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2475 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* nonemptyidlist: ID */
-#line 347 "engines/director/lingo/lingo-gr.y"
+ case 79: /* nonemptyidlist: ID */
+#line 367 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2484 "engines/director/lingo/lingo-gr.cpp"
+#line 2714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 351 "engines/director/lingo/lingo-gr.y"
+ case 80: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 371 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2722 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* proc: ID cmdargs '\n' */
-#line 374 "engines/director/lingo/lingo-gr.y"
+ case 90: /* proc: ID cmdargs '\n' */
+#line 394 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2498 "engines/director/lingo/lingo-gr.cpp"
+#line 2728 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* proc: tPUT cmdargs '\n' */
-#line 375 "engines/director/lingo/lingo-gr.y"
+ case 91: /* proc: tPUT cmdargs '\n' */
+#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2734 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* proc: tGO cmdargs '\n' */
-#line 376 "engines/director/lingo/lingo-gr.y"
+ case 92: /* proc: tGO cmdargs '\n' */
+#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2510 "engines/director/lingo/lingo-gr.cpp"
+#line 2740 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* proc: tGO frameargs '\n' */
-#line 377 "engines/director/lingo/lingo-gr.y"
+ case 93: /* proc: tGO frameargs '\n' */
+#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2516 "engines/director/lingo/lingo-gr.cpp"
+#line 2746 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* proc: tPLAY cmdargs '\n' */
-#line 378 "engines/director/lingo/lingo-gr.y"
+ case 94: /* proc: tPLAY cmdargs '\n' */
+#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2522 "engines/director/lingo/lingo-gr.cpp"
+#line 2752 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* proc: tPLAY frameargs '\n' */
-#line 379 "engines/director/lingo/lingo-gr.y"
+ case 95: /* proc: tPLAY frameargs '\n' */
+#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2528 "engines/director/lingo/lingo-gr.cpp"
+#line 2758 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* proc: tNEXT tREPEAT '\n' */
-#line 380 "engines/director/lingo/lingo-gr.y"
+ case 96: /* proc: tNEXT tREPEAT '\n' */
+#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2534 "engines/director/lingo/lingo-gr.cpp"
+#line 2764 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* proc: tEXIT tREPEAT '\n' */
-#line 381 "engines/director/lingo/lingo-gr.y"
+ case 97: /* proc: tEXIT tREPEAT '\n' */
+#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2540 "engines/director/lingo/lingo-gr.cpp"
+#line 2770 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* proc: tEXIT '\n' */
-#line 382 "engines/director/lingo/lingo-gr.y"
+ case 98: /* proc: tEXIT '\n' */
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2776 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* proc: tASSERTERROR stmtoneliner */
-#line 383 "engines/director/lingo/lingo-gr.y"
+ case 99: /* proc: tASSERTERROR stmtoneliner */
+#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2782 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* cmdargs: %empty */
-#line 386 "engines/director/lingo/lingo-gr.y"
+ case 100: /* cmdargs: %empty */
+#line 406 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2560 "engines/director/lingo/lingo-gr.cpp"
+#line 2790 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* cmdargs: expr */
-#line 389 "engines/director/lingo/lingo-gr.y"
+ case 101: /* cmdargs: expr */
+#line 409 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2800 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* cmdargs: expr ',' nonemptyexprlist */
-#line 394 "engines/director/lingo/lingo-gr.y"
+ case 102: /* cmdargs: expr ',' nonemptyexprlist */
+#line 414 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2579 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* cmdargs: expr expr_nounarymath */
-#line 398 "engines/director/lingo/lingo-gr.y"
+ case 103: /* cmdargs: expr expr_nounarymath */
+#line 418 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2590 "engines/director/lingo/lingo-gr.cpp"
+#line 2820 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 104: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 424 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2600 "engines/director/lingo/lingo-gr.cpp"
+#line 2830 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* cmdargs: '(' ')' */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 105: /* cmdargs: '(' ')' */
+#line 429 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2608 "engines/director/lingo/lingo-gr.cpp"
+#line 2838 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 106: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 432 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2617 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* frameargs: tFRAME expr */
-#line 422 "engines/director/lingo/lingo-gr.y"
+ case 107: /* frameargs: tFRAME expr */
+#line 442 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* frameargs: tMOVIE expr */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 108: /* frameargs: tMOVIE expr */
+#line 447 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2638 "engines/director/lingo/lingo-gr.cpp"
+#line 2868 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 109: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 453 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* frameargs: expr tOF tMOVIE expr */
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 110: /* frameargs: expr tOF tMOVIE expr */
+#line 459 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 2890 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* frameargs: tFRAME expr expr_nounarymath */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 111: /* frameargs: tFRAME expr expr_nounarymath */
+#line 465 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 453 "engines/director/lingo/lingo-gr.y"
+ case 112: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 473 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2677 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 454 "engines/director/lingo/lingo-gr.y"
+ case 113: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 474 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2683 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 114: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 475 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2689 "engines/director/lingo/lingo-gr.cpp"
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* asgn: tSET varorthe to expr '\n' */
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 115: /* asgn: tSET varorthe to expr '\n' */
+#line 476 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* definevars: tGLOBAL idlist '\n' */
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 118: /* definevars: tGLOBAL idlist '\n' */
+#line 481 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* definevars: tPROPERTY idlist '\n' */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 119: /* definevars: tPROPERTY idlist '\n' */
+#line 482 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2707 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* definevars: tINSTANCE idlist '\n' */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 120: /* definevars: tINSTANCE idlist '\n' */
+#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2943 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* ifstmt: tIF expr tTHEN stmt */
-#line 466 "engines/director/lingo/lingo-gr.y"
+ case 121: /* ifstmt: tIF expr tTHEN stmt */
+#line 486 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2722 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 470 "engines/director/lingo/lingo-gr.y"
+ case 122: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 490 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 123: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 494 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2740 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 500 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 125: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 504 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2758 "engines/director/lingo/lingo-gr.cpp"
+#line 2988 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 508 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 127: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 512 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2772 "engines/director/lingo/lingo-gr.cpp"
+#line 3002 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 494 "engines/director/lingo/lingo-gr.y"
+ case 128: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 514 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2779 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 129: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 516 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 3016 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* tell: tTELL expr tTO stmtoneliner */
-#line 500 "engines/director/lingo/lingo-gr.y"
+ case 130: /* tell: tTELL expr tTO stmtoneliner */
+#line 520 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 504 "engines/director/lingo/lingo-gr.y"
+ case 131: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 524 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 2802 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* when: tWHEN ID tTHEN expr */
-#line 508 "engines/director/lingo/lingo-gr.y"
+ case 132: /* when: tWHEN ID tTHEN expr */
+#line 528 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 2808 "engines/director/lingo/lingo-gr.cpp"
+#line 3038 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* stmtlist: %empty */
-#line 510 "engines/director/lingo/lingo-gr.y"
+ case 133: /* stmtlist: %empty */
+#line 530 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2814 "engines/director/lingo/lingo-gr.cpp"
+#line 3044 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* nonemptystmtlist: stmtlistline */
-#line 515 "engines/director/lingo/lingo-gr.y"
+ case 135: /* nonemptystmtlist: stmtlistline */
+#line 535 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 3055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 136: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 541 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2835 "engines/director/lingo/lingo-gr.cpp"
+#line 3065 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* stmtlistline: '\n' */
-#line 528 "engines/director/lingo/lingo-gr.y"
+ case 137: /* stmtlistline: '\n' */
+#line 548 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2841 "engines/director/lingo/lingo-gr.cpp"
+#line 3071 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* simpleexpr_noparens_nounarymath: tINT */
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 139: /* simpleexpr_noparens_nounarymath: tINT */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 3077 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 536 "engines/director/lingo/lingo-gr.y"
+ case 140: /* simpleexpr_noparens_nounarymath: tFLOAT */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 2853 "engines/director/lingo/lingo-gr.cpp"
+#line 3083 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 537 "engines/director/lingo/lingo-gr.y"
+ case 141: /* simpleexpr_noparens_nounarymath: tSYMBOL */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 2859 "engines/director/lingo/lingo-gr.cpp"
+#line 3089 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 538 "engines/director/lingo/lingo-gr.y"
+ case 142: /* simpleexpr_noparens_nounarymath: tSTRING */
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 2865 "engines/director/lingo/lingo-gr.cpp"
+#line 3095 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 143: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
+#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 2871 "engines/director/lingo/lingo-gr.cpp"
+#line 3101 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 540 "engines/director/lingo/lingo-gr.y"
+ case 144: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
+#line 560 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 2877 "engines/director/lingo/lingo-gr.cpp"
+#line 3107 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* var: ID */
-#line 547 "engines/director/lingo/lingo-gr.y"
+ case 149: /* var: ID */
+#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 2883 "engines/director/lingo/lingo-gr.cpp"
+#line 3113 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* chunk: tFIELD simpleexpr_noparens */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 153: /* chunk: tFIELD simpleexpr_noparens */
+#line 577 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 2892 "engines/director/lingo/lingo-gr.cpp"
+#line 3122 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* chunk: tCAST simpleexpr_noparens */
-#line 561 "engines/director/lingo/lingo-gr.y"
+ case 154: /* chunk: tCAST simpleexpr_noparens */
+#line 581 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 3131 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* object: tSCRIPT simpleexpr_noparens */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 155: /* object: tSCRIPT simpleexpr_noparens */
+#line 587 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* object: tWINDOW simpleexpr_noparens */
-#line 571 "engines/director/lingo/lingo-gr.y"
+ case 156: /* object: tWINDOW simpleexpr_noparens */
+#line 591 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 3149 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* list: '[' exprlist ']' */
-#line 577 "engines/director/lingo/lingo-gr.y"
+ case 157: /* list: '[' exprlist ']' */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 3155 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* list: '[' ':' ']' */
-#line 578 "engines/director/lingo/lingo-gr.y"
+ case 158: /* list: '[' ':' ']' */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 3161 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* list: '[' proplist ']' */
-#line 579 "engines/director/lingo/lingo-gr.y"
+ case 159: /* list: '[' proplist ']' */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 3167 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* proplist: proppair */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 160: /* proplist: proppair */
+#line 602 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 2946 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* proplist: proplist ',' proppair */
-#line 586 "engines/director/lingo/lingo-gr.y"
+ case 161: /* proplist: proplist ',' proppair */
+#line 606 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+#line 3184 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* proppair: tSYMBOL ':' expr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 162: /* proppair: tSYMBOL ':' expr */
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2960 "engines/director/lingo/lingo-gr.cpp"
+#line 3190 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* proppair: ID ':' expr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 163: /* proppair: ID ':' expr */
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2966 "engines/director/lingo/lingo-gr.cpp"
+#line 3196 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* proppair: tSTRING ':' expr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 164: /* proppair: tSTRING ':' expr */
+#line 613 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 2972 "engines/director/lingo/lingo-gr.cpp"
+#line 3202 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* parens: '(' expr ')' */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 165: /* parens: '(' expr ')' */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 2978 "engines/director/lingo/lingo-gr.cpp"
+#line 3208 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* unarymath: '+' simpleexpr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 166: /* unarymath: '+' simpleexpr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2984 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* unarymath: '-' simpleexpr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 167: /* unarymath: '-' simpleexpr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 2990 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* expr: expr '+' expr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 177: /* expr: expr '+' expr */
+#line 638 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2996 "engines/director/lingo/lingo-gr.cpp"
+#line 3226 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* expr: expr '-' expr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 178: /* expr: expr '-' expr */
+#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3002 "engines/director/lingo/lingo-gr.cpp"
+#line 3232 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* expr: expr '*' expr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 179: /* expr: expr '*' expr */
+#line 640 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3238 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* expr: expr '/' expr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 180: /* expr: expr '/' expr */
+#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3014 "engines/director/lingo/lingo-gr.cpp"
+#line 3244 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* expr: expr tMOD expr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 181: /* expr: expr tMOD expr */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3020 "engines/director/lingo/lingo-gr.cpp"
+#line 3250 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* expr: expr '>' expr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 182: /* expr: expr '>' expr */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3026 "engines/director/lingo/lingo-gr.cpp"
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* expr: expr '<' expr */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 183: /* expr: expr '<' expr */
+#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* expr: expr tEQ expr */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 184: /* expr: expr tEQ expr */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3038 "engines/director/lingo/lingo-gr.cpp"
+#line 3268 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* expr: expr tNEQ expr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 185: /* expr: expr tNEQ expr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3274 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* expr: expr tGE expr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 186: /* expr: expr tGE expr */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3050 "engines/director/lingo/lingo-gr.cpp"
+#line 3280 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* expr: expr tLE expr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 187: /* expr: expr tLE expr */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3056 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* expr: expr tAND expr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 188: /* expr: expr tAND expr */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3062 "engines/director/lingo/lingo-gr.cpp"
+#line 3292 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* expr: expr tOR expr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 189: /* expr: expr tOR expr */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3068 "engines/director/lingo/lingo-gr.cpp"
+#line 3298 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* expr: expr '&' expr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 190: /* expr: expr '&' expr */
+#line 651 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* expr: expr tCONCAT expr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 191: /* expr: expr tCONCAT expr */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3080 "engines/director/lingo/lingo-gr.cpp"
+#line 3310 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* expr: expr tCONTAINS expr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 192: /* expr: expr tCONTAINS expr */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3086 "engines/director/lingo/lingo-gr.cpp"
+#line 3316 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* expr: expr tSTARTS expr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 193: /* expr: expr tSTARTS expr */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3092 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 196: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3098 "engines/director/lingo/lingo-gr.cpp"
+#line 3328 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 197: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 664 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3104 "engines/director/lingo/lingo-gr.cpp"
+#line 3334 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 198: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3110 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 199: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3116 "engines/director/lingo/lingo-gr.cpp"
+#line 3346 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 200: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3122 "engines/director/lingo/lingo-gr.cpp"
+#line 3352 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 201: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3128 "engines/director/lingo/lingo-gr.cpp"
+#line 3358 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 202: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 203: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 670 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3140 "engines/director/lingo/lingo-gr.cpp"
+#line 3370 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 204: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 671 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3146 "engines/director/lingo/lingo-gr.cpp"
+#line 3376 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 205: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3152 "engines/director/lingo/lingo-gr.cpp"
+#line 3382 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 206: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3388 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 207: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3394 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 208: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3170 "engines/director/lingo/lingo-gr.cpp"
+#line 3400 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 656 "engines/director/lingo/lingo-gr.y"
+ case 209: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3406 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 657 "engines/director/lingo/lingo-gr.y"
+ case 210: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3182 "engines/director/lingo/lingo-gr.cpp"
+#line 3412 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 658 "engines/director/lingo/lingo-gr.y"
+ case 211: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3418 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 212: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 213: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 214: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3436 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* exprlist: %empty */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 215: /* exprlist: %empty */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3212 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* nonemptyexprlist: expr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 217: /* nonemptyexprlist: expr */
+#line 690 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3221 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 218: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 694 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3229 "engines/director/lingo/lingo-gr.cpp"
+#line 3459 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3233 "engines/director/lingo/lingo-gr.cpp"
+#line 3463 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3428,7 +3658,7 @@ yyreturn:
return yyresult;
}
-#line 679 "engines/director/lingo/lingo-gr.y"
+#line 699 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 9b14b3717f..826068afdc 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -57,78 +57,89 @@ extern int yydebug;
tUNARY = 258, /* tUNARY */
tLEXERROR = 259, /* tLEXERROR */
tINT = 260, /* tINT */
- tTHEENTITY = 261, /* tTHEENTITY */
- tTHEENTITYWITHID = 262, /* tTHEENTITYWITHID */
- tTHEMENUITEMENTITY = 263, /* tTHEMENUITEMENTITY */
- tTHEMENUITEMSENTITY = 264, /* tTHEMENUITEMSENTITY */
- tFLOAT = 265, /* tFLOAT */
- tTHEFUNC = 266, /* tTHEFUNC */
- tTHEFUNCINOF = 267, /* tTHEFUNCINOF */
- tVARID = 268, /* tVARID */
- tSTRING = 269, /* tSTRING */
- tSYMBOL = 270, /* tSYMBOL */
- tENDCLAUSE = 271, /* tENDCLAUSE */
- tPLAYACCEL = 272, /* tPLAYACCEL */
- tTHEOBJECTPROP = 273, /* tTHEOBJECTPROP */
- tCAST = 274, /* tCAST */
- tFIELD = 275, /* tFIELD */
- tSCRIPT = 276, /* tSCRIPT */
- tWINDOW = 277, /* tWINDOW */
- tDOWN = 278, /* tDOWN */
- tELSE = 279, /* tELSE */
- tELSIF = 280, /* tELSIF */
- tEXIT = 281, /* tEXIT */
- tFRAME = 282, /* tFRAME */
- tGLOBAL = 283, /* tGLOBAL */
- tGO = 284, /* tGO */
- tIF = 285, /* tIF */
- tIN = 286, /* tIN */
- tINTO = 287, /* tINTO */
- tMACRO = 288, /* tMACRO */
- tMOVIE = 289, /* tMOVIE */
- tNEXT = 290, /* tNEXT */
- tOF = 291, /* tOF */
- tPREVIOUS = 292, /* tPREVIOUS */
- tPUT = 293, /* tPUT */
- tREPEAT = 294, /* tREPEAT */
- tSET = 295, /* tSET */
- tTHEN = 296, /* tTHEN */
- tTO = 297, /* tTO */
- tWHEN = 298, /* tWHEN */
- tWITH = 299, /* tWITH */
- tWHILE = 300, /* tWHILE */
- tFACTORY = 301, /* tFACTORY */
- tOPEN = 302, /* tOPEN */
- tPLAY = 303, /* tPLAY */
- tINSTANCE = 304, /* tINSTANCE */
- tGE = 305, /* tGE */
- tLE = 306, /* tLE */
- tEQ = 307, /* tEQ */
- tNEQ = 308, /* tNEQ */
- tAND = 309, /* tAND */
- tOR = 310, /* tOR */
- tNOT = 311, /* tNOT */
- tMOD = 312, /* tMOD */
- tAFTER = 313, /* tAFTER */
- tBEFORE = 314, /* tBEFORE */
- tCONCAT = 315, /* tCONCAT */
- tCONTAINS = 316, /* tCONTAINS */
- tSTARTS = 317, /* tSTARTS */
- tCHAR = 318, /* tCHAR */
- tITEM = 319, /* tITEM */
- tLINE = 320, /* tLINE */
- tWORD = 321, /* tWORD */
- tSPRITE = 322, /* tSPRITE */
- tINTERSECTS = 323, /* tINTERSECTS */
- tWITHIN = 324, /* tWITHIN */
- tTELL = 325, /* tTELL */
- tPROPERTY = 326, /* tPROPERTY */
- tON = 327, /* tON */
- tMETHOD = 328, /* tMETHOD */
- tENDIF = 329, /* tENDIF */
- tENDREPEAT = 330, /* tENDREPEAT */
- tENDTELL = 331, /* tENDTELL */
- tASSERTERROR = 332 /* tASSERTERROR */
+ tFLOAT = 261, /* tFLOAT */
+ tVARID = 262, /* tVARID */
+ tSTRING = 263, /* tSTRING */
+ tSYMBOL = 264, /* tSYMBOL */
+ tENDCLAUSE = 265, /* tENDCLAUSE */
+ tCAST = 266, /* tCAST */
+ tFIELD = 267, /* tFIELD */
+ tSCRIPT = 268, /* tSCRIPT */
+ tWINDOW = 269, /* tWINDOW */
+ tDOWN = 270, /* tDOWN */
+ tELSE = 271, /* tELSE */
+ tELSIF = 272, /* tELSIF */
+ tEXIT = 273, /* tEXIT */
+ tFRAME = 274, /* tFRAME */
+ tGLOBAL = 275, /* tGLOBAL */
+ tGO = 276, /* tGO */
+ tIF = 277, /* tIF */
+ tIN = 278, /* tIN */
+ tINTO = 279, /* tINTO */
+ tMACRO = 280, /* tMACRO */
+ tMOVIE = 281, /* tMOVIE */
+ tNEXT = 282, /* tNEXT */
+ tOF = 283, /* tOF */
+ tPREVIOUS = 284, /* tPREVIOUS */
+ tPUT = 285, /* tPUT */
+ tREPEAT = 286, /* tREPEAT */
+ tSET = 287, /* tSET */
+ tTHEN = 288, /* tTHEN */
+ tTO = 289, /* tTO */
+ tWHEN = 290, /* tWHEN */
+ tWITH = 291, /* tWITH */
+ tWHILE = 292, /* tWHILE */
+ tFACTORY = 293, /* tFACTORY */
+ tOPEN = 294, /* tOPEN */
+ tPLAY = 295, /* tPLAY */
+ tINSTANCE = 296, /* tINSTANCE */
+ tGE = 297, /* tGE */
+ tLE = 298, /* tLE */
+ tEQ = 299, /* tEQ */
+ tNEQ = 300, /* tNEQ */
+ tAND = 301, /* tAND */
+ tOR = 302, /* tOR */
+ tNOT = 303, /* tNOT */
+ tMOD = 304, /* tMOD */
+ tAFTER = 305, /* tAFTER */
+ tBEFORE = 306, /* tBEFORE */
+ tCONCAT = 307, /* tCONCAT */
+ tCONTAINS = 308, /* tCONTAINS */
+ tSTARTS = 309, /* tSTARTS */
+ tCHAR = 310, /* tCHAR */
+ tCHARS = 311, /* tCHARS */
+ tITEM = 312, /* tITEM */
+ tITEMS = 313, /* tITEMS */
+ tLINE = 314, /* tLINE */
+ tLINES = 315, /* tLINES */
+ tWORD = 316, /* tWORD */
+ tWORDS = 317, /* tWORDS */
+ tABBREVIATED = 318, /* tABBREVIATED */
+ tABBREV = 319, /* tABBREV */
+ tABBR = 320, /* tABBR */
+ tLONG = 321, /* tLONG */
+ tSHORT = 322, /* tSHORT */
+ tCASTMEMBERS = 323, /* tCASTMEMBERS */
+ tDATE = 324, /* tDATE */
+ tLAST = 325, /* tLAST */
+ tMENU = 326, /* tMENU */
+ tMENUITEM = 327, /* tMENUITEM */
+ tMENUITEMS = 328, /* tMENUITEMS */
+ tNUMBER = 329, /* tNUMBER */
+ tTHE = 330, /* tTHE */
+ tTIME = 331, /* tTIME */
+ tSOUND = 332, /* tSOUND */
+ tSPRITE = 333, /* tSPRITE */
+ tINTERSECTS = 334, /* tINTERSECTS */
+ tWITHIN = 335, /* tWITHIN */
+ tTELL = 336, /* tTELL */
+ tPROPERTY = 337, /* tPROPERTY */
+ tON = 338, /* tON */
+ tMETHOD = 339, /* tMETHOD */
+ tENDIF = 340, /* tENDIF */
+ tENDREPEAT = 341, /* tENDREPEAT */
+ tENDTELL = 342, /* tENDTELL */
+ tASSERTERROR = 343 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -153,7 +164,7 @@ union YYSTYPE
Director::Node *node;
Director::NodeList *nodelist;
-#line 157 "engines/director/lingo/lingo-gr.h"
+#line 168 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 36cf2a5888..38ccf713b7 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -128,19 +128,19 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%token tLEXERROR
%token<i> tINT
-%token<e> tTHEENTITY tTHEENTITYWITHID tTHEMENUITEMENTITY tTHEMENUITEMSENTITY
%token<f> tFLOAT
-%token<s> tTHEFUNC tTHEFUNCINOF
%token<s> tVARID tSTRING tSYMBOL
-%token<s> tENDCLAUSE tPLAYACCEL
-%token<objectprop> tTHEOBJECTPROP
+%token<s> tENDCLAUSE
%token tCAST tFIELD tSCRIPT tWINDOW
%token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tIF tIN tINTO tMACRO
%token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
%token tWITH tWHILE tFACTORY tOPEN tPLAY 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
+%token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS
+%token tCHAR tCHARS tITEM tITEMS tLINE tLINES tWORD tWORDS
+%token tABBREVIATED tABBREV tABBR tLONG tSHORT
+%token tCASTMEMBERS tDATE tLAST tMENU tMENUITEM tMENUITEMS tNUMBER tTHE tTIME
+%token tSOUND tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
%token tON tMETHOD tENDIF tENDREPEAT tENDTELL
%token tASSERTERROR
@@ -289,32 +289,47 @@ endargdef: /* nothing */
// GENERIC VAR STUFF
ID: tVARID
+ | tABBREVIATED { $$ = new Common::String("abbreviated"); }
+ | tABBREV { $$ = new Common::String("abbrev"); }
+ | tABBR { $$ = new Common::String("abbr"); }
| tAFTER { $$ = new Common::String("after"); }
| tAND { $$ = new Common::String("and"); }
| tBEFORE { $$ = new Common::String("before"); }
| tCAST { $$ = new Common::String("cast"); }
| tCHAR { $$ = new Common::String("char"); }
+ | tCHARS { $$ = new Common::String("chars"); }
+ | tCONTAINS { $$ = new Common::String("contains"); }
+ | tDATE { $$ = new Common::String("date"); }
| tDOWN { $$ = new Common::String("down"); }
- // tENDCLAUSE
// tELSE
+ // tENDCLAUSE
// | tEXIT { $$ = new Common::String("exit"); }
// tFACTORY
| tFIELD { $$ = new Common::String("field"); }
| tFRAME { $$ = new Common::String("frame"); }
// | tGLOBAL { $$ = new Common::String("global"); }
+ // tGO
// tIF
| tIN { $$ = new Common::String("in"); }
// | tINSTANCE { $$ = new Common::String("instance"); }
| tINTERSECTS { $$ = new Common::String("intersects"); }
| tINTO { $$ = new Common::String("into"); }
| tITEM { $$ = new Common::String("item"); }
+ | tITEMS { $$ = new Common::String("items"); }
+ | tLAST { $$ = new Common::String("last"); }
| tLINE { $$ = new Common::String("line"); }
+ | tLINES { $$ = new Common::String("lines"); }
+ | tLONG { $$ = new Common::String("long"); }
// | tMACRO { $$ = new Common::String("macro"); }
+ | tMENU { $$ = new Common::String("menu"); }
+ | tMENUITEM { $$ = new Common::String("menuItem"); }
+ | tMENUITEMS { $$ = new Common::String("menuItems"); }
// | tMETHOD { $$ = new Common::String("method"); }
| tMOD { $$ = new Common::String("mod"); }
| tMOVIE { $$ = new Common::String("movie"); }
| tNEXT { $$ = new Common::String("next"); }
| tNOT { $$ = new Common::String("not"); }
+ | tNUMBER { $$ = new Common::String("number"); }
| tOF { $$ = new Common::String("of"); }
// | tON { $$ = new Common::String("on"); }
| tOPEN { $$ = new Common::String("open"); }
@@ -325,19 +340,24 @@ ID: tVARID
// | tPUT { $$ = new Common::String("put"); }
| tREPEAT { $$ = new Common::String("repeat"); }
| tSCRIPT { $$ = new Common::String("script"); }
+ | tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
| tSET { $$ = new Common::String("set"); }
+ | tSHORT { $$ = new Common::String("short"); }
+ | tSOUND { $$ = new Common::String("sound"); }
+ | tSPRITE { $$ = new Common::String("sprite"); }
| tSTARTS { $$ = new Common::String("starts"); }
| tTELL { $$ = new Common::String("tell"); }
+ // tTHE
// tTHEN
+ | tTIME { $$ = new Common::String("time"); }
| tTO { $$ = new Common::String("to"); }
- | tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
- | tSPRITE { $$ = new Common::String("sprite"); }
// | tWHEN { $$ = new Common::String("when"); }
| tWHILE { $$ = new Common::String("while"); }
| tWINDOW { $$ = new Common::String("window"); }
| tWITH { $$ = new Common::String("with"); }
| tWITHIN { $$ = new Common::String("within"); }
| tWORD { $$ = new Common::String("word"); }
+ | tWORDS { $$ = new Common::String("words"); }
;
idlist: /* empty */ { $$ = new IDList; }
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 01af757442..b90700fd60 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -355,8 +355,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 71
-#define YY_END_OF_BUFFER 72
+#define YY_NUM_RULES 84
+#define YY_END_OF_BUFFER 85
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -364,42 +364,41 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[310] =
+static const flex_int16_t yy_accept[295] =
{ 0,
- 0, 0, 72, 70, 1, 68, 68, 70, 70, 67,
- 67, 66, 67, 63, 67, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 1, 64, 1, 68, 0, 69, 2,
- 62, 65, 66, 61, 59, 60, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 10, 22, 64, 64, 64, 64, 64, 64, 64,
- 31, 32, 64, 34, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 50, 64, 64, 64, 1, 0,
- 64, 2, 65, 64, 4, 64, 64, 64, 64, 64,
-
- 64, 12, 64, 64, 64, 64, 18, 64, 64, 64,
- 64, 64, 64, 27, 64, 64, 30, 64, 64, 64,
- 64, 38, 64, 64, 64, 41, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 0, 64, 64, 64, 6,
- 7, 64, 9, 11, 0, 14, 64, 64, 64, 0,
- 64, 64, 21, 23, 24, 64, 64, 64, 29, 33,
- 35, 64, 64, 64, 64, 64, 64, 64, 43, 0,
- 49, 55, 64, 64, 53, 58, 0, 64, 3, 64,
- 64, 12, 15, 16, 64, 18, 64, 64, 25, 64,
- 28, 64, 64, 64, 64, 64, 64, 64, 48, 48,
-
- 48, 56, 64, 64, 0, 64, 5, 64, 12, 17,
- 64, 64, 26, 64, 64, 39, 40, 64, 52, 42,
- 0, 48, 48, 57, 54, 0, 64, 64, 64, 64,
- 64, 64, 64, 0, 0, 0, 48, 48, 0, 13,
- 8, 19, 64, 36, 37, 64, 0, 0, 0, 48,
- 48, 13, 64, 64, 0, 0, 0, 0, 48, 20,
- 64, 47, 46, 47, 0, 0, 0, 0, 48, 64,
- 46, 0, 0, 0, 0, 0, 64, 0, 0, 0,
- 0, 0, 0, 64, 0, 0, 47, 46, 46, 47,
- 0, 64, 45, 46, 46, 0, 64, 46, 64, 0,
-
- 46, 64, 0, 0, 51, 0, 0, 44, 0
+ 0, 0, 85, 83, 1, 81, 81, 83, 83, 80,
+ 80, 79, 80, 76, 80, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 1, 77, 1, 81, 0, 82, 2,
+ 75, 78, 79, 74, 72, 73, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 23, 27, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 44, 45, 77, 47, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 64, 77, 77, 77, 1, 0, 77, 2,
+
+ 78, 77, 77, 7, 77, 77, 77, 77, 77, 77,
+ 77, 16, 77, 77, 77, 77, 22, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 39, 77, 77, 42,
+ 77, 77, 77, 77, 77, 51, 77, 77, 77, 55,
+ 77, 77, 77, 77, 77, 61, 77, 77, 77, 77,
+ 77, 77, 0, 77, 5, 77, 77, 9, 10, 77,
+ 13, 14, 15, 0, 17, 77, 77, 77, 0, 77,
+ 77, 26, 28, 30, 31, 33, 77, 35, 77, 77,
+ 41, 77, 46, 48, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 60, 62, 63, 65, 77, 77, 68,
+
+ 70, 0, 77, 77, 6, 77, 11, 77, 16, 19,
+ 20, 77, 22, 77, 77, 29, 32, 34, 77, 77,
+ 40, 77, 77, 77, 77, 77, 77, 56, 57, 77,
+ 77, 66, 77, 77, 71, 0, 77, 4, 8, 77,
+ 16, 21, 77, 77, 77, 38, 43, 77, 77, 52,
+ 53, 77, 58, 59, 67, 69, 0, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 0, 18, 77, 12,
+ 24, 77, 36, 49, 50, 77, 18, 77, 77, 37,
+ 77, 77, 25, 77, 3, 77, 77, 77, 77, 77,
+ 77, 77, 54, 0
+
} ;
static const YY_CHAR yy_ec[256] =
@@ -413,11 +412,11 @@ static const YY_CHAR yy_ec[256] =
12, 13, 1, 1, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 23, 24, 25, 26, 27, 28,
23, 29, 30, 31, 32, 33, 34, 35, 36, 23,
- 7, 1, 7, 7, 37, 1, 38, 39, 40, 41,
+ 7, 1, 7, 7, 23, 1, 37, 38, 39, 40,
- 42, 43, 44, 45, 46, 23, 23, 47, 48, 49,
- 50, 51, 23, 52, 53, 54, 55, 56, 57, 58,
- 59, 23, 1, 1, 1, 1, 1, 1, 1, 1,
+ 41, 42, 43, 44, 45, 23, 23, 46, 47, 48,
+ 49, 50, 23, 51, 52, 53, 54, 55, 56, 57,
+ 58, 23, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -434,268 +433,244 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static const YY_CHAR yy_meta[60] =
+static const YY_CHAR yy_meta[59] =
{ 0,
1, 2, 3, 3, 1, 1, 1, 1, 1, 4,
1, 1, 1, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 6, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[322] =
+static const flex_int16_t yy_base[301] =
{ 0,
- 0, 58, 618, 698, 59, 698, 698, 612, 0, 698,
- 607, 55, 54, 698, 600, 49, 51, 57, 46, 50,
- 57, 63, 0, 63, 58, 97, 87, 97, 98, 100,
- 136, 138, 136, 117, 155, 129, 698, 603, 698, 0,
- 698, 594, 134, 698, 698, 698, 0, 97, 121, 136,
- 136, 147, 142, 137, 142, 156, 152, 157, 178, 169,
- 601, 0, 172, 182, 178, 189, 177, 189, 174, 179,
- 0, 0, 193, 0, 198, 196, 186, 190, 205, 189,
- 192, 201, 204, 224, 0, 230, 224, 218, 260, 239,
- 240, 0, 576, 240, 0, 234, 234, 238, 237, 243,
-
- 241, 544, 240, 250, 250, 266, 283, 255, 269, 264,
- 275, 266, 278, 0, 278, 271, 0, 278, 270, 274,
- 280, 0, 292, 293, 288, 0, 294, 291, 297, 320,
- 300, 304, 315, 312, 318, 322, 310, 313, 316, 0,
- 0, 333, 0, 0, 532, 0, 331, 332, 338, 327,
- 341, 329, 0, 0, 0, 333, 334, 345, 0, 0,
- 0, 344, 349, 356, 345, 350, 347, 349, 0, 380,
- 0, 0, 367, 361, 364, 0, 358, 365, 0, 375,
- 373, 0, 0, 0, 373, 698, 373, 370, 0, 385,
- 0, 378, 378, 377, 382, 381, 398, 388, 531, 419,
-
- 422, 0, 391, 406, 408, 409, 0, 413, 0, 0,
- 426, 425, 0, 413, 415, 0, 0, 422, 0, 0,
- 432, 442, 449, 0, 0, 423, 417, 426, 442, 448,
- 441, 442, 451, 466, 462, 461, 483, 485, 454, 0,
- 0, 0, 461, 0, 0, 463, 465, 489, 473, 448,
- 500, 698, 469, 473, 488, 351, 490, 508, 507, 0,
- 499, 698, 0, 698, 299, 509, 510, 518, 252, 498,
- 0, 529, 526, 247, 536, 546, 512, 518, 526, 550,
- 563, 552, 552, 556, 211, 168, 139, 529, 562, 132,
- 98, 531, 89, 86, 81, 570, 547, 587, 561, 599,
-
- 600, 562, 567, 563, 0, 79, 70, 68, 698, 649,
- 651, 654, 657, 662, 667, 669, 674, 679, 681, 686,
- 691
+ 0, 57, 167, 615, 58, 615, 615, 158, 0, 615,
+ 152, 54, 53, 615, 119, 52, 50, 58, 55, 62,
+ 58, 69, 0, 86, 84, 108, 105, 122, 123, 83,
+ 162, 164, 173, 195, 202, 71, 615, 122, 615, 0,
+ 615, 115, 74, 615, 615, 615, 0, 98, 85, 103,
+ 111, 110, 128, 118, 157, 170, 177, 139, 136, 143,
+ 182, 193, 112, 0, 197, 184, 191, 197, 204, 216,
+ 209, 221, 199, 205, 216, 0, 0, 226, 0, 232,
+ 233, 217, 231, 236, 233, 239, 239, 243, 259, 251,
+ 259, 254, 0, 262, 273, 254, 306, 275, 275, 0,
+
+ 79, 266, 274, 0, 271, 271, 277, 280, 295, 290,
+ 300, 79, 291, 299, 302, 304, 327, 299, 313, 309,
+ 304, 314, 317, 310, 311, 325, 0, 325, 319, 0,
+ 336, 327, 323, 330, 336, 0, 348, 345, 346, 0,
+ 344, 350, 346, 348, 354, 353, 364, 358, 363, 371,
+ 371, 377, 380, 371, 379, 374, 375, 0, 377, 394,
+ 0, 0, 0, 75, 0, 393, 394, 399, 389, 400,
+ 389, 0, 391, 0, 392, 0, 396, 405, 403, 410,
+ 0, 414, 0, 0, 412, 421, 427, 418, 422, 417,
+ 425, 418, 422, 0, 0, 0, 0, 436, 429, 436,
+
+ 430, 430, 436, 433, 0, 449, 0, 450, 0, 0,
+ 0, 450, 615, 450, 449, 0, 0, 0, 449, 467,
+ 0, 457, 460, 460, 460, 461, 460, 0, 0, 476,
+ 467, 0, 465, 474, 0, 476, 475, 483, 0, 484,
+ 0, 0, 490, 494, 498, 0, 0, 486, 489, 0,
+ 0, 498, 0, 0, 0, 0, 495, 491, 516, 503,
+ 513, 518, 511, 507, 502, 527, 507, 0, 513, 0,
+ 0, 516, 518, 0, 0, 520, 615, 533, 526, 0,
+ 531, 535, 0, 544, 0, 538, 537, 545, 542, 544,
+ 549, 548, 0, 615, 599, 65, 601, 603, 607, 609
+
} ;
-static const flex_int16_t yy_def[322] =
+static const flex_int16_t yy_def[301] =
{ 0,
- 309, 1, 309, 309, 309, 309, 309, 310, 311, 309,
- 309, 309, 309, 309, 309, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 309, 312, 309, 309, 310, 309, 313,
- 309, 309, 309, 309, 309, 309, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 309, 309,
- 312, 313, 309, 312, 312, 312, 312, 312, 312, 312,
-
- 312, 312, 312, 312, 312, 312, 309, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 309, 312, 312, 312, 312,
- 312, 312, 312, 312, 314, 312, 312, 312, 312, 309,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 315,
- 312, 312, 312, 312, 312, 312, 309, 312, 312, 312,
- 312, 316, 312, 312, 312, 309, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 315, 315,
-
- 315, 312, 312, 312, 309, 312, 312, 312, 316, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 309, 315, 315, 312, 312, 309, 312, 312, 312, 312,
- 312, 312, 312, 309, 309, 309, 315, 315, 309, 312,
- 312, 312, 312, 312, 312, 312, 309, 309, 309, 315,
- 315, 309, 312, 312, 309, 317, 309, 318, 315, 312,
- 312, 309, 319, 309, 318, 318, 318, 318, 315, 312,
- 319, 309, 318, 318, 318, 309, 312, 309, 309, 318,
- 317, 318, 309, 312, 309, 309, 318, 319, 319, 318,
- 309, 312, 309, 319, 319, 320, 312, 321, 312, 309,
-
- 321, 312, 309, 309, 312, 309, 309, 309, 0, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309
+ 294, 1, 294, 294, 294, 294, 294, 295, 296, 294,
+ 294, 294, 294, 294, 294, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 294, 297, 294, 294, 295, 294, 298,
+ 294, 294, 294, 294, 294, 294, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 294, 294, 297, 298,
+
+ 294, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 294, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 294, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 299, 297, 297, 297, 297, 294, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+
+ 297, 294, 297, 297, 297, 297, 297, 297, 300, 297,
+ 297, 297, 294, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 294, 297, 297, 297, 297,
+ 300, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 294, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 294, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 294, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 0, 294, 294, 294, 294, 294, 294
+
} ;
-static const flex_int16_t yy_nxt[758] =
+static const flex_int16_t yy_nxt[674] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 23, 25, 26, 27, 28, 29, 30, 31,
- 32, 23, 23, 33, 23, 23, 23, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
- 36, 37, 37, 42, 43, 44, 45, 48, 50, 308,
- 51, 308, 54, 55, 49, 56, 35, 52, 58, 65,
- 308, 62, 293, 53, 57, 59, 60, 293, 63, 61,
- 293, 48, 50, 64, 51, 54, 55, 49, 56, 296,
-
- 35, 52, 58, 65, 69, 62, 53, 57, 59, 60,
- 66, 63, 61, 70, 67, 71, 64, 78, 89, 37,
- 37, 75, 72, 68, 73, 74, 76, 94, 69, 77,
- 36, 37, 37, 272, 66, 90, 70, 95, 67, 71,
- 272, 78, 42, 43, 75, 72, 68, 73, 74, 76,
- 94, 79, 77, 80, 96, 83, 86, 87, 84, 90,
- 98, 95, 88, 81, 85, 97, 82, 99, 91, 293,
- 100, 101, 102, 103, 104, 79, 58, 80, 96, 83,
- 86, 87, 84, 59, 98, 88, 81, 85, 97, 82,
- 99, 105, 91, 100, 101, 106, 102, 103, 104, 110,
-
- 58, 108, 109, 111, 112, 114, 59, 113, 116, 117,
- 118, 119, 293, 120, 128, 105, 122, 123, 106, 126,
- 127, 115, 121, 110, 108, 109, 111, 129, 112, 114,
- 113, 116, 117, 124, 118, 119, 125, 120, 128, 122,
- 123, 130, 126, 127, 115, 121, 135, 131, 281, 133,
- 129, 132, 136, 276, 134, 137, 124, 138, 144, 125,
- 139, 89, 37, 37, 140, 130, 141, 142, 143, 135,
- 146, 131, 133, 147, 148, 132, 136, 134, 90, 137,
- 149, 138, 144, 139, 107, 151, 152, 140, 154, 141,
- 142, 143, 155, 146, 156, 153, 147, 148, 157, 158,
-
- 272, 159, 90, 160, 149, 161, 162, 163, 151, 164,
- 152, 154, 166, 150, 165, 167, 155, 156, 153, 168,
- 169, 170, 157, 158, 159, 172, 160, 173, 161, 162,
- 163, 174, 175, 164, 176, 166, 150, 177, 165, 167,
- 178, 179, 168, 169, 180, 171, 181, 183, 172, 184,
- 173, 185, 256, 186, 187, 174, 175, 188, 176, 189,
- 190, 177, 191, 178, 179, 192, 193, 180, 171, 194,
- 181, 183, 195, 184, 196, 185, 186, 197, 187, 198,
- 188, 170, 189, 190, 202, 204, 191, 203, 205, 192,
- 193, 206, 207, 194, 208, 195, 210, 196, 211, 212,
-
- 197, 213, 198, 200, 214, 201, 215, 216, 202, 204,
- 203, 205, 217, 218, 206, 219, 207, 220, 208, 210,
- 221, 211, 212, 221, 224, 213, 200, 214, 201, 215,
- 216, 225, 222, 221, 226, 217, 218, 227, 228, 219,
- 220, 229, 230, 221, 231, 232, 233, 224, 234, 258,
- 221, 239, 240, 223, 225, 241, 222, 226, 235, 242,
- 227, 228, 236, 243, 246, 229, 230, 231, 232, 233,
- 244, 237, 234, 238, 239, 240, 223, 245, 241, 247,
- 248, 235, 249, 242, 221, 236, 221, 243, 246, 252,
- 256, 253, 254, 244, 237, 255, 238, 257, 260, 251,
-
- 245, 221, 261, 247, 248, 262, 249, 264, 221, 258,
- 272, 272, 252, 250, 253, 254, 270, 259, 255, 272,
- 257, 260, 273, 251, 266, 261, 277, 272, 274, 262,
- 272, 264, 221, 145, 267, 269, 250, 272, 268, 275,
- 270, 259, 284, 285, 286, 145, 273, 276, 266, 277,
- 278, 272, 274, 272, 294, 279, 280, 267, 269, 297,
- 282, 268, 234, 275, 281, 284, 285, 287, 286, 290,
- 291, 296, 283, 292, 278, 299, 236, 294, 279, 280,
- 295, 307, 297, 282, 288, 93, 234, 302, 300, 289,
- 305, 287, 306, 290, 291, 283, 271, 292, 299, 236,
-
- 300, 300, 107, 93, 295, 307, 263, 39, 288, 271,
- 302, 46, 289, 305, 41, 306, 39, 309, 309, 309,
- 303, 309, 309, 271, 309, 304, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 271, 309, 309, 309,
- 309, 309, 309, 309, 303, 309, 309, 309, 304, 38,
- 38, 309, 38, 38, 38, 40, 40, 47, 47, 47,
- 92, 92, 92, 182, 309, 309, 182, 182, 199, 309,
- 309, 199, 209, 209, 209, 263, 309, 309, 263, 263,
- 265, 309, 309, 265, 271, 271, 271, 298, 309, 309,
- 298, 298, 301, 309, 301, 301, 301, 3, 309, 309,
-
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309
+ 32, 23, 23, 33, 23, 23, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 23, 23, 33, 23, 23, 34, 36,
+ 37, 37, 42, 43, 44, 45, 48, 51, 55, 40,
+ 49, 52, 36, 37, 37, 35, 164, 50, 53, 60,
+ 164, 56, 42, 43, 54, 57, 61, 58, 101, 48,
+ 51, 55, 62, 49, 52, 63, 59, 67, 35, 50,
+
+ 83, 53, 60, 56, 64, 68, 54, 57, 61, 58,
+ 69, 65, 102, 117, 62, 103, 66, 63, 59, 104,
+ 67, 70, 73, 83, 101, 71, 39, 64, 68, 105,
+ 46, 74, 69, 65, 72, 102, 75, 103, 66, 106,
+ 76, 107, 104, 108, 70, 73, 80, 77, 71, 78,
+ 79, 81, 105, 74, 82, 112, 72, 113, 75, 41,
+ 114, 106, 39, 76, 107, 108, 294, 294, 80, 77,
+ 294, 78, 79, 81, 294, 294, 82, 84, 112, 85,
+ 113, 90, 86, 114, 91, 92, 294, 109, 87, 88,
+ 93, 294, 89, 94, 95, 115, 97, 37, 37, 96,
+
+ 84, 120, 85, 110, 90, 86, 111, 91, 92, 109,
+ 87, 88, 93, 98, 89, 99, 94, 95, 115, 116,
+ 121, 96, 122, 60, 120, 110, 118, 119, 111, 123,
+ 61, 124, 294, 129, 125, 130, 98, 127, 99, 126,
+ 131, 116, 121, 132, 122, 133, 60, 136, 118, 119,
+ 134, 123, 61, 128, 124, 129, 125, 130, 137, 135,
+ 127, 126, 131, 140, 138, 141, 132, 139, 133, 136,
+ 142, 143, 144, 134, 145, 128, 146, 294, 147, 148,
+ 137, 135, 152, 149, 294, 140, 138, 141, 153, 139,
+ 154, 156, 142, 143, 155, 144, 145, 157, 150, 146,
+
+ 147, 158, 148, 151, 152, 159, 149, 97, 37, 37,
+ 160, 153, 161, 154, 156, 162, 155, 163, 168, 157,
+ 150, 165, 166, 158, 98, 151, 167, 159, 117, 170,
+ 171, 175, 160, 173, 174, 161, 176, 162, 177, 172,
+ 163, 168, 178, 165, 166, 179, 180, 98, 167, 181,
+ 182, 170, 183, 171, 175, 173, 174, 169, 184, 176,
+ 177, 172, 185, 186, 178, 187, 188, 192, 179, 180,
+ 189, 181, 190, 182, 183, 191, 193, 194, 195, 169,
+ 184, 196, 294, 197, 185, 186, 198, 199, 187, 188,
+ 192, 200, 189, 201, 190, 202, 204, 191, 193, 194,
+
+ 195, 203, 205, 206, 196, 197, 207, 208, 198, 210,
+ 199, 211, 212, 214, 200, 213, 201, 215, 202, 204,
+ 216, 217, 218, 203, 205, 206, 219, 221, 207, 220,
+ 208, 222, 210, 223, 211, 212, 214, 213, 224, 215,
+ 225, 229, 216, 217, 218, 226, 227, 228, 230, 219,
+ 221, 220, 231, 232, 222, 233, 223, 234, 294, 235,
+ 236, 224, 237, 225, 229, 238, 239, 226, 227, 228,
+ 230, 240, 294, 242, 231, 243, 232, 233, 244, 245,
+ 234, 235, 236, 246, 237, 247, 248, 238, 249, 239,
+ 250, 251, 252, 253, 240, 242, 254, 243, 255, 256,
+
+ 244, 245, 257, 258, 259, 261, 246, 247, 248, 260,
+ 249, 262, 250, 251, 252, 263, 253, 264, 254, 265,
+ 255, 256, 266, 267, 257, 258, 268, 259, 261, 269,
+ 271, 260, 270, 272, 262, 273, 274, 275, 263, 264,
+ 276, 265, 277, 278, 266, 267, 279, 280, 268, 281,
+ 282, 285, 269, 271, 270, 283, 272, 273, 274, 275,
+ 284, 286, 289, 276, 277, 278, 287, 288, 279, 280,
+ 290, 281, 291, 282, 285, 292, 293, 283, 294, 294,
+ 294, 294, 284, 294, 286, 289, 294, 294, 287, 288,
+ 294, 294, 290, 294, 291, 294, 294, 292, 293, 38,
+
+ 38, 294, 38, 38, 47, 47, 100, 100, 209, 294,
+ 294, 209, 241, 241, 3, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294
} ;
-static const flex_int16_t yy_chk[758] =
+static const flex_int16_t yy_chk[674] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 5, 5, 5, 12, 12, 13, 13, 16, 17, 308,
- 18, 307, 19, 20, 16, 20, 2, 18, 21, 25,
- 306, 24, 295, 18, 20, 21, 22, 294, 24, 22,
- 293, 16, 17, 24, 18, 19, 20, 16, 20, 291,
-
- 2, 18, 21, 25, 27, 24, 18, 20, 21, 22,
- 26, 24, 22, 27, 26, 28, 24, 30, 34, 34,
- 34, 29, 28, 26, 28, 28, 29, 48, 27, 29,
- 36, 36, 36, 290, 26, 34, 27, 49, 26, 28,
- 287, 30, 43, 43, 29, 28, 26, 28, 28, 29,
- 48, 31, 29, 31, 50, 32, 33, 33, 32, 34,
- 52, 49, 33, 31, 32, 51, 31, 53, 35, 286,
- 54, 55, 56, 57, 58, 31, 35, 31, 50, 32,
- 33, 33, 32, 35, 52, 33, 31, 32, 51, 31,
- 53, 59, 35, 54, 55, 60, 56, 57, 58, 64,
-
- 35, 63, 63, 65, 66, 68, 35, 67, 69, 70,
- 73, 75, 285, 76, 82, 59, 77, 78, 60, 80,
- 81, 68, 76, 64, 63, 63, 65, 83, 66, 68,
- 67, 69, 70, 79, 73, 75, 79, 76, 82, 77,
- 78, 84, 80, 81, 68, 76, 88, 86, 274, 87,
- 83, 86, 90, 269, 87, 91, 79, 94, 101, 79,
- 96, 89, 89, 89, 97, 84, 98, 99, 100, 88,
- 103, 86, 87, 104, 105, 86, 90, 87, 89, 91,
- 106, 94, 101, 96, 107, 108, 109, 97, 110, 98,
- 99, 100, 111, 103, 112, 109, 104, 105, 113, 115,
-
- 265, 116, 89, 118, 106, 119, 120, 121, 108, 123,
- 109, 110, 125, 107, 124, 127, 111, 112, 109, 128,
- 129, 130, 113, 115, 116, 131, 118, 132, 119, 120,
- 121, 133, 134, 123, 135, 125, 107, 136, 124, 127,
- 137, 138, 128, 129, 139, 130, 142, 147, 131, 148,
- 132, 149, 256, 150, 151, 133, 134, 152, 135, 156,
- 157, 136, 158, 137, 138, 162, 163, 139, 130, 164,
- 142, 147, 165, 148, 166, 149, 150, 167, 151, 168,
- 152, 170, 156, 157, 173, 175, 158, 174, 177, 162,
- 163, 178, 180, 164, 181, 165, 185, 166, 187, 188,
-
- 167, 190, 168, 170, 192, 170, 193, 194, 173, 175,
- 174, 177, 195, 196, 178, 197, 180, 198, 181, 185,
- 200, 187, 188, 201, 203, 190, 170, 192, 170, 193,
- 194, 204, 200, 221, 205, 195, 196, 206, 208, 197,
- 198, 211, 212, 222, 214, 215, 218, 203, 221, 250,
- 223, 226, 227, 201, 204, 228, 200, 205, 221, 229,
- 206, 208, 221, 230, 233, 211, 212, 214, 215, 218,
- 231, 222, 221, 223, 226, 227, 201, 232, 228, 234,
- 235, 221, 236, 229, 237, 221, 238, 230, 233, 239,
- 248, 243, 246, 231, 222, 247, 223, 249, 253, 238,
-
- 232, 251, 254, 234, 235, 255, 236, 257, 259, 258,
- 266, 267, 239, 237, 243, 246, 261, 251, 247, 268,
- 249, 253, 266, 238, 258, 254, 270, 273, 267, 255,
- 272, 257, 199, 145, 258, 259, 237, 275, 258, 268,
- 261, 251, 277, 278, 279, 102, 266, 276, 258, 270,
- 272, 280, 267, 282, 288, 272, 273, 258, 259, 292,
- 275, 258, 276, 268, 281, 277, 278, 280, 279, 282,
- 283, 296, 276, 284, 272, 297, 276, 288, 272, 273,
- 289, 304, 292, 275, 281, 93, 276, 299, 298, 281,
- 302, 280, 303, 282, 283, 276, 298, 284, 297, 276,
-
- 300, 301, 61, 42, 289, 304, 296, 38, 281, 301,
- 299, 15, 281, 302, 11, 303, 8, 3, 0, 0,
- 300, 0, 0, 298, 0, 300, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 301, 0, 0, 0,
- 0, 0, 0, 0, 300, 0, 0, 0, 300, 310,
- 310, 0, 310, 310, 310, 311, 311, 312, 312, 312,
- 313, 313, 313, 314, 0, 0, 314, 314, 315, 0,
- 0, 315, 316, 316, 316, 317, 0, 0, 317, 317,
- 318, 0, 0, 318, 319, 319, 319, 320, 0, 0,
- 320, 320, 321, 0, 321, 321, 321, 309, 309, 309,
-
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 5,
+ 5, 5, 12, 12, 13, 13, 16, 17, 19, 296,
+ 16, 18, 36, 36, 36, 2, 164, 16, 18, 21,
+ 112, 19, 43, 43, 18, 20, 21, 20, 101, 16,
+ 17, 19, 22, 16, 18, 22, 20, 25, 2, 16,
+
+ 30, 18, 21, 19, 24, 25, 18, 20, 21, 20,
+ 25, 24, 48, 63, 22, 49, 24, 22, 20, 50,
+ 25, 26, 27, 30, 42, 26, 38, 24, 25, 51,
+ 15, 27, 25, 24, 26, 48, 27, 49, 24, 52,
+ 28, 53, 50, 54, 26, 27, 29, 28, 26, 28,
+ 28, 29, 51, 27, 29, 58, 26, 59, 27, 11,
+ 60, 52, 8, 28, 53, 54, 3, 0, 29, 28,
+ 0, 28, 28, 29, 0, 0, 29, 31, 58, 31,
+ 59, 32, 31, 60, 32, 32, 0, 55, 31, 31,
+ 32, 0, 31, 33, 33, 61, 34, 34, 34, 33,
+
+ 31, 66, 31, 56, 32, 31, 57, 32, 32, 55,
+ 31, 31, 32, 34, 31, 35, 33, 33, 61, 62,
+ 67, 33, 68, 35, 66, 56, 65, 65, 57, 69,
+ 35, 70, 0, 73, 71, 74, 34, 72, 35, 71,
+ 75, 62, 67, 78, 68, 80, 35, 82, 65, 65,
+ 81, 69, 35, 72, 70, 73, 71, 74, 83, 81,
+ 72, 71, 75, 85, 84, 86, 78, 84, 80, 82,
+ 87, 88, 89, 81, 90, 72, 91, 0, 92, 94,
+ 83, 81, 96, 94, 0, 85, 84, 86, 98, 84,
+ 99, 103, 87, 88, 102, 89, 90, 105, 95, 91,
+
+ 92, 106, 94, 95, 96, 107, 94, 97, 97, 97,
+ 108, 98, 109, 99, 103, 110, 102, 111, 116, 105,
+ 95, 113, 114, 106, 97, 95, 115, 107, 117, 118,
+ 119, 122, 108, 120, 121, 109, 123, 110, 124, 119,
+ 111, 116, 125, 113, 114, 126, 128, 97, 115, 129,
+ 131, 118, 132, 119, 122, 120, 121, 117, 133, 123,
+ 124, 119, 134, 135, 125, 137, 138, 143, 126, 128,
+ 139, 129, 141, 131, 132, 142, 144, 145, 146, 117,
+ 133, 147, 0, 148, 134, 135, 149, 150, 137, 138,
+ 143, 151, 139, 152, 141, 153, 155, 142, 144, 145,
+
+ 146, 154, 156, 157, 147, 148, 159, 160, 149, 166,
+ 150, 167, 168, 170, 151, 169, 152, 171, 153, 155,
+ 173, 175, 177, 154, 156, 157, 178, 180, 159, 179,
+ 160, 182, 166, 185, 167, 168, 170, 169, 186, 171,
+ 187, 191, 173, 175, 177, 188, 189, 190, 192, 178,
+ 180, 179, 193, 198, 182, 199, 185, 200, 0, 201,
+ 202, 186, 203, 187, 191, 204, 206, 188, 189, 190,
+ 192, 208, 0, 212, 193, 214, 198, 199, 215, 219,
+ 200, 201, 202, 220, 203, 222, 223, 204, 224, 206,
+ 225, 226, 227, 230, 208, 212, 231, 214, 233, 234,
+
+ 215, 219, 236, 237, 238, 243, 220, 222, 223, 240,
+ 224, 244, 225, 226, 227, 245, 230, 248, 231, 249,
+ 233, 234, 252, 257, 236, 237, 258, 238, 243, 259,
+ 261, 240, 260, 262, 244, 263, 264, 265, 245, 248,
+ 266, 249, 267, 269, 252, 257, 272, 273, 258, 276,
+ 278, 282, 259, 261, 260, 279, 262, 263, 264, 265,
+ 281, 284, 288, 266, 267, 269, 286, 287, 272, 273,
+ 289, 276, 290, 278, 282, 291, 292, 279, 0, 0,
+ 0, 0, 281, 0, 284, 288, 0, 0, 286, 287,
+ 0, 0, 289, 0, 290, 0, 0, 291, 292, 295,
+
+ 295, 0, 295, 295, 297, 297, 298, 298, 299, 0,
+ 0, 299, 300, 300, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294
} ;
static yy_state_type yy_last_accepting_state;
@@ -806,8 +781,8 @@ static Common::String *cleanupString(const char *s) {
return res;
}
-#line 809 "engines/director/lingo/lingo-lex.cpp"
-#line 810 "engines/director/lingo/lingo-lex.cpp"
+#line 784 "engines/director/lingo/lingo-lex.cpp"
+#line 785 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1030,7 +1005,7 @@ YY_DECL
#line 111 "engines/director/lingo/lingo-lex.l"
-#line 1033 "engines/director/lingo/lingo-lex.cpp"
+#line 1008 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1058,13 +1033,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 >= 310 )
+ if ( yy_current_state >= 295 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 309 );
+ while ( yy_current_state != 294 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1097,51 +1072,71 @@ YY_RULE_SETUP
case 3:
YY_RULE_SETUP
#line 117 "engines/director/lingo/lingo-lex.l"
-{ count(); return tAFTER; } // D3
+{ count(); return tABBREVIATED; }
YY_BREAK
case 4:
YY_RULE_SETUP
#line 118 "engines/director/lingo/lingo-lex.l"
-{ count(); return tAND; }
+{ count(); return tABBREV; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 119 "engines/director/lingo/lingo-lex.l"
-{ count(); return tBEFORE; } // D3
+{ count(); return tABBR; }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 120 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCAST; }
+{ count(); return tAFTER; } // D3
YY_BREAK
case 7:
YY_RULE_SETUP
#line 121 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCHAR; } // D3
+{ count(); return tAND; }
YY_BREAK
case 8:
YY_RULE_SETUP
#line 122 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONTAINS; }
+{ count(); return tBEFORE; } // D3
YY_BREAK
case 9:
YY_RULE_SETUP
#line 123 "engines/director/lingo/lingo-lex.l"
-{ count(); return tDOWN; }
+{ count(); return tCAST; }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 124 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIF; }
+{ count(); return tCHAR; } // D3
YY_BREAK
case 11:
YY_RULE_SETUP
#line 125 "engines/director/lingo/lingo-lex.l"
-{ count(); return tELSE; }
+{ count(); return tCHARS; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 126 "engines/director/lingo/lingo-lex.l"
+{ count(); return tCONTAINS; }
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 127 "engines/director/lingo/lingo-lex.l"
+{ count(); return tDATE; }
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 128 "engines/director/lingo/lingo-lex.l"
+{ count(); return tDOWN; }
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 129 "engines/director/lingo/lingo-lex.l"
+{ count(); return tELSE; }
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 130 "engines/director/lingo/lingo-lex.l"
{
count();
@@ -1161,449 +1156,309 @@ YY_RULE_SETUP
return tENDCLAUSE;
}
YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 144 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFACTORY; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 145 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEXIT; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 146 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFIELD; }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 147 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFRAME; }
- YY_BREAK
case 17:
YY_RULE_SETUP
#line 148 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGLOBAL; }
+{ count(); return tEXIT; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 149 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGO; }
+{ count(); return tFACTORY; }
YY_BREAK
case 19:
YY_RULE_SETUP
#line 150 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINSTANCE; }
+{ count(); return tFIELD; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 151 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTERSECTS;}
+{ count(); return tFRAME; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 152 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTO; }
+{ count(); return tGLOBAL; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 153 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIN; }
+{ count(); return tGO; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 154 "engines/director/lingo/lingo-lex.l"
-{ count(); return tITEM; }
+{ count(); return tIF; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 155 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLINE; }
+{ count(); return tINSTANCE; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 156 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMACRO;; }
+{ count(); return tINTERSECTS;}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 157 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMETHOD; }
+{ count(); return tINTO; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 158 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOD;}
+{ count(); return tIN; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 159 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOVIE; }
+{ count(); return tITEM; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 160 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEXT; }
+{ count(); return tITEMS; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 161 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNOT; }
+{ count(); return tLAST; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 162 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOF; }
+{ count(); return tLINE; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 163 "engines/director/lingo/lingo-lex.l"
-{ count(); return tON; } // D3
+{ count(); return tLINES; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 164 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOPEN; }
+{ count(); return tLONG; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 165 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOR; }
+{ count(); return tMACRO; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 166 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPLAY; }
+{ count(); return tMENU; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 167 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPREVIOUS; }
+{ count(); return tMENUITEM;}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 168 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPROPERTY; } // D4
+{ count(); return tMENUITEMS; }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 169 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPUT; }
+{ count(); return tMETHOD; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 170 "engines/director/lingo/lingo-lex.l"
-{ count(); return tREPEAT; }
+{ count(); return tMOD;}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 171 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSCRIPT; }
+{ count(); return tMOVIE; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 172 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSET; }
+{ count(); return tNEXT; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 173 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSTARTS; }
+{ count(); return tNOT; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 174 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTELL; }
+{ count(); return tNUMBER; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 175 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- ptr += 6; // skip 'number '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- ptr += 3; // Skip 'of '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- // the number of menuItems of menu <xx>
- if (!field.compareToIgnoreCase("menuItems")) {
- Common::String key = Common::String::format("%dnumber", kTheMenuItems);
-
- yylval.e[0] = kTheMenuItems;
- yylval.e[1] = g_lingo->_theEntityFields[key]->field;
-
- return tTHEMENUITEMSENTITY;
- }
-
- yylval.s = new Common::String(Common::String::format("numberOf%s", field.c_str()));
-
- if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return tTHEFUNCINOF;
- } else {
- warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return tLEXERROR;
- }
- }
+{ count(); return tOF; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 210 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t') ptr++;
-
- ptr += 5; // skip 'last '
- while (*ptr == ' ' || *ptr == '\t') ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t')
- field += *ptr++;
-
- yylval.s = new Common::String(Common::String::format("last%sOf", field.c_str()));
-
- if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return tTHEFUNCINOF;
- } else {
- warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return tLEXERROR;
- }
- }
+#line 176 "engines/director/lingo/lingo-lex.l"
+{ count(); return tON; } // D3
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 232 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- ptr += 3; // Skip 'of '
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- if (g_lingo->_theEntities.contains(ptr)) {
- field = Common::String::format("%d%s", g_lingo->_theEntities[ptr]->entity, field.c_str());
-
- if (!g_lingo->_theEntityFields.contains(field)) {
- warning("LEXER: Unhandled the field %s of %s", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
- warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = g_lingo->_theEntityFields[field]->field;
-
- // the <field> of menuItem <expr>" of menu <expr>
- if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem)
- return tTHEMENUITEMENTITY;
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- } else {
- if (g_director->getVersion() >= 400) {
- Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
-
- yylval.objectprop.obj = new Common::String(ptr);
- yylval.objectprop.prop = new Common::String(field);
-
- return tTHEOBJECTPROP;
- } else if (g_lingo->_builtinFuncs.contains(field)) { // Let's hope they don't do it in D4+
- if (g_lingo->_builtinFuncs[field].nargs == 1 && g_lingo->_builtinFuncs[field].maxArgs == 1) {
- yylval.s = new Common::String(field);
- Common::String rest(ptr);
-
- // It is the dreaded 'the <builtin> of <expr>'
- // with 'expr' starting with VARID, which leads to clash
- //
- // put 'of VARID' back.
-
- for (int i = rest.size() - 1; i >= 0; i--)
- unput(rest[i]);
-
- unput(' '); unput('f'); unput('o');
-
- return tTHEFUNC;
- }
- }
- }
-
- warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
- }
+#line 177 "engines/director/lingo/lingo-lex.l"
+{ count(); return tOPEN; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 305 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- field = Common::String::format("%d%s", g_lingo->_theEntities[ptr]->entity, field.c_str());
-
- if (!g_lingo->_theEntityFields.contains(field)) {
- warning("LEXER: Unhandled the field %s", ptr);
- return tLEXERROR;
- }
-
- if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
- warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = g_lingo->_theEntityFields[field]->field;
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- }
+#line 178 "engines/director/lingo/lingo-lex.l"
+{ count(); return tOR; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 339 "engines/director/lingo/lingo-lex.l"
-{
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- if (g_lingo->_theEntities.contains(ptr)) {
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = 0; // No field
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- }
-
- if (g_lingo->_builtinFuncs.contains(ptr)) {
- if (g_lingo->_builtinFuncs[ptr].nargs == 1 && g_lingo->_builtinFuncs[ptr].maxArgs == 1) {
- yylval.s = new Common::String(ptr);
- return tTHEFUNC;
- }
- }
-
- warning("LEXER: Unhandled the entity '%s'", ptr);
- }
+#line 179 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPLAY; }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 365 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTHEN; }
+#line 180 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPREVIOUS; }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 366 "engines/director/lingo/lingo-lex.l"
-{ count(); return tTO; }
+#line 181 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPROPERTY; } // D4
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 367 "engines/director/lingo/lingo-lex.l"
-{ count(); return tASSERTERROR; }
+#line 182 "engines/director/lingo/lingo-lex.l"
+{ count(); return tPUT; }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 368 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSPRITE; }
+#line 183 "engines/director/lingo/lingo-lex.l"
+{ count(); return tREPEAT; }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 369 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITH; }
+#line 184 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSCRIPT; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 370 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWITHIN; }
+#line 185 "engines/director/lingo/lingo-lex.l"
+{ count(); return tASSERTERROR; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 371 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHEN; }
+#line 186 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSET; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 372 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWHILE; }
+#line 187 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSHORT; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 373 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWINDOW; }
+#line 188 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSOUND; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 374 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWORD; }
+#line 189 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSPRITE; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 376 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEQ; }
+#line 190 "engines/director/lingo/lingo-lex.l"
+{ count(); return tSTARTS; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 377 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGE; }
+#line 191 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTELL; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 378 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLE; }
+#line 192 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTHE; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 379 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONCAT; }
+#line 193 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTHEN; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 380 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEQ; }
+#line 194 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTIME; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 382 "engines/director/lingo/lingo-lex.l"
+#line 195 "engines/director/lingo/lingo-lex.l"
+{ count(); return tTO; }
+ YY_BREAK
+case 65:
+YY_RULE_SETUP
+#line 196 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWHEN; }
+ YY_BREAK
+case 66:
+YY_RULE_SETUP
+#line 197 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWHILE; }
+ YY_BREAK
+case 67:
+YY_RULE_SETUP
+#line 198 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWINDOW; }
+ YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 199 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWITH; }
+ YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 200 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWITHIN; }
+ YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 201 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWORD; }
+ YY_BREAK
+case 71:
+YY_RULE_SETUP
+#line 202 "engines/director/lingo/lingo-lex.l"
+{ count(); return tWORDS; }
+ YY_BREAK
+case 72:
+YY_RULE_SETUP
+#line 204 "engines/director/lingo/lingo-lex.l"
+{ count(); return tNEQ; }
+ YY_BREAK
+case 73:
+YY_RULE_SETUP
+#line 205 "engines/director/lingo/lingo-lex.l"
+{ count(); return tGE; }
+ YY_BREAK
+case 74:
+YY_RULE_SETUP
+#line 206 "engines/director/lingo/lingo-lex.l"
+{ count(); return tLE; }
+ YY_BREAK
+case 75:
+YY_RULE_SETUP
+#line 207 "engines/director/lingo/lingo-lex.l"
+{ count(); return tCONCAT; }
+ YY_BREAK
+case 76:
+YY_RULE_SETUP
+#line 208 "engines/director/lingo/lingo-lex.l"
+{ count(); return tEQ; }
+ YY_BREAK
+case 77:
+YY_RULE_SETUP
+#line 210 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1611,43 +1466,43 @@ YY_RULE_SETUP
return tVARID;
}
YY_BREAK
-case 65:
+case 78:
YY_RULE_SETUP
-#line 388 "engines/director/lingo/lingo-lex.l"
+#line 216 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.f = atof(yytext); return tFLOAT; }
YY_BREAK
-case 66:
+case 79:
YY_RULE_SETUP
-#line 389 "engines/director/lingo/lingo-lex.l"
+#line 217 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.i = strtol(yytext, NULL, 10); return tINT; }
YY_BREAK
-case 67:
+case 80:
YY_RULE_SETUP
-#line 390 "engines/director/lingo/lingo-lex.l"
+#line 218 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
-case 68:
-/* rule 68 can match eol */
+case 81:
+/* rule 81 can match eol */
YY_RULE_SETUP
-#line 391 "engines/director/lingo/lingo-lex.l"
+#line 219 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
-case 69:
+case 82:
YY_RULE_SETUP
-#line 392 "engines/director/lingo/lingo-lex.l"
+#line 220 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return tSTRING; }
YY_BREAK
-case 70:
+case 83:
YY_RULE_SETUP
-#line 393 "engines/director/lingo/lingo-lex.l"
+#line 221 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
-case 71:
+case 84:
YY_RULE_SETUP
-#line 395 "engines/director/lingo/lingo-lex.l"
+#line 223 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1650 "engines/director/lingo/lingo-lex.cpp"
+#line 1505 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1946,7 +1801,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 >= 310 )
+ if ( yy_current_state >= 295 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1974,11 +1829,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 >= 310 )
+ if ( yy_current_state >= 295 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 309);
+ yy_is_jam = (yy_current_state == 294);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2656,7 +2511,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 395 "engines/director/lingo/lingo-lex.l"
+#line 223 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 1776101089..5666919c75 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -114,14 +114,18 @@ spc [ \t\xC2]
[#]{identifier} { count(); yylval.s = new Common::String(yytext + 1); return tSYMBOL; } // D3, skip '#'
+abbreviated { count(); return tABBREVIATED; }
+abbrev { count(); return tABBREV; }
+abbr { count(); return tABBR; }
after { count(); return tAFTER; } // D3
and { count(); return tAND; }
before { count(); return tBEFORE; } // D3
cast { count(); return tCAST; }
char { count(); return tCHAR; } // D3
+chars { count(); return tCHARS; }
contains { count(); return tCONTAINS; }
+date { count(); return tDATE; }
down { count(); return tDOWN; }
-if { count(); return tIF; }
else { count(); return tELSE; }
end({spc}+{identifier})? {
count();
@@ -141,24 +145,33 @@ end({spc}+{identifier})? {
return tENDCLAUSE;
}
-^{spc}*factory { count(); return tFACTORY; }
exit { count(); return tEXIT; }
+^{spc}*factory { count(); return tFACTORY; }
field { count(); return tFIELD; }
frame { count(); return tFRAME; }
global { count(); return tGLOBAL; }
go{spc}+(to)? { count(); return tGO; }
+if { count(); return tIF; }
instance { count(); return tINSTANCE; }
intersects { count(); return tINTERSECTS;}
into { count(); return tINTO; }
in { count(); return tIN; }
item { count(); return tITEM; }
+items { count(); return tITEMS; }
+last { count(); return tLAST; }
line { count(); return tLINE; }
-macro { count(); return tMACRO;; }
+lines { count(); return tLINES; }
+long { count(); return tLONG; }
+macro { count(); return tMACRO; }
+menu { count(); return tMENU; }
+menuItem { count(); return tMENUITEM;}
+menuItems { count(); return tMENUITEMS; }
method { count(); return tMETHOD; }
mod { count(); return tMOD;}
movie { count(); return tMOVIE; }
next { count(); return tNEXT; }
not { count(); return tNOT; }
+number { count(); return tNUMBER; }
of { count(); return tOF; }
on { count(); return tON; } // D3
open { count(); return tOPEN; }
@@ -169,209 +182,24 @@ property { count(); return tPROPERTY; } // D4
put { count(); return tPUT; }
repeat { count(); return tREPEAT; }
script { count(); return tSCRIPT; }
+scummvmAssertError { count(); return tASSERTERROR; }
set { count(); return tSET; }
+short { count(); return tSHORT; }
+sound { count(); return tSOUND; }
+sprite { count(); return tSPRITE; }
starts { count(); return tSTARTS; }
tell { count(); return tTELL; }
-the{spc}+number{spc}+of{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- ptr += 6; // skip 'number '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- ptr += 3; // Skip 'of '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2') ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- // the number of menuItems of menu <xx>
- if (!field.compareToIgnoreCase("menuItems")) {
- Common::String key = Common::String::format("%dnumber", kTheMenuItems);
-
- yylval.e[0] = kTheMenuItems;
- yylval.e[1] = g_lingo->_theEntityFields[key]->field;
-
- return tTHEMENUITEMSENTITY;
- }
-
- yylval.s = new Common::String(Common::String::format("numberOf%s", field.c_str()));
-
- if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return tTHEFUNCINOF;
- } else {
- warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return tLEXERROR;
- }
- }
-the{spc}+last{spc}+[[:alpha:]]+{spc}+(in|of){spc}+ {
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t') ptr++;
-
- ptr += 5; // skip 'last '
- while (*ptr == ' ' || *ptr == '\t') ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t')
- field += *ptr++;
-
- yylval.s = new Common::String(Common::String::format("last%sOf", field.c_str()));
-
- if (g_lingo->_builtinFuncs.contains(*yylval.s)) {
- return tTHEFUNCINOF;
- } else {
- warning("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
- return tLEXERROR;
- }
- }
-the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- ptr += 3; // Skip 'of '
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- if (g_lingo->_theEntities.contains(ptr)) {
- field = Common::String::format("%d%s", g_lingo->_theEntities[ptr]->entity, field.c_str());
-
- if (!g_lingo->_theEntityFields.contains(field)) {
- warning("LEXER: Unhandled the field %s of %s", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
- warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = g_lingo->_theEntityFields[field]->field;
-
- // the <field> of menuItem <expr>" of menu <expr>
- if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem)
- return tTHEMENUITEMENTITY;
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- } else {
- if (g_director->getVersion() >= 400) {
- Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
-
- yylval.objectprop.obj = new Common::String(ptr);
- yylval.objectprop.prop = new Common::String(field);
-
- return tTHEOBJECTPROP;
- } else if (g_lingo->_builtinFuncs.contains(field)) { // Let's hope they don't do it in D4+
- if (g_lingo->_builtinFuncs[field].nargs == 1 && g_lingo->_builtinFuncs[field].maxArgs == 1) {
- yylval.s = new Common::String(field);
- Common::String rest(ptr);
-
- // It is the dreaded 'the <builtin> of <expr>'
- // with 'expr' starting with VARID, which leads to clash
- //
- // put 'of VARID' back.
-
- for (int i = rest.size() - 1; i >= 0; i--)
- unput(rest[i]);
-
- unput(' '); unput('f'); unput('o');
-
- return tTHEFUNC;
- }
- }
- }
-
- warning("LEXER: Unhandled the entity '%s', field '%s'", ptr, field.c_str());
- }
-the{spc}+[[:alpha:]]+{spc}+(date|time) {
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- Common::String field;
- while (*ptr != ' ' && *ptr != '\t' && *ptr != '\xC2')
- field += *ptr++;
-
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- field = Common::String::format("%d%s", g_lingo->_theEntities[ptr]->entity, field.c_str());
-
- if (!g_lingo->_theEntityFields.contains(field)) {
- warning("LEXER: Unhandled the field %s", ptr);
- return tLEXERROR;
- }
-
- if (g_lingo->_theEntityFields[field]->entity != g_lingo->_theEntities[ptr]->entity) {
- warning("LEXER: Unsupported field '%s' for entity '%s'", field.c_str(), ptr);
- return tLEXERROR;
- }
-
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = g_lingo->_theEntityFields[field]->field;
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- }
-the{spc}+[[:alpha:]]+ {
- count();
-
- const char *ptr = &yytext[4]; // Skip 'the '
- while (*ptr == ' ' || *ptr == '\t' || *ptr == '\xC2')
- ptr++;
-
- if (g_lingo->_theEntities.contains(ptr)) {
- yylval.e[0] = g_lingo->_theEntities[ptr]->entity;
- yylval.e[1] = 0; // No field
-
- if (g_lingo->_theEntities[ptr]->hasId)
- return tTHEENTITYWITHID;
- else
- return tTHEENTITY;
- }
-
- if (g_lingo->_builtinFuncs.contains(ptr)) {
- if (g_lingo->_builtinFuncs[ptr].nargs == 1 && g_lingo->_builtinFuncs[ptr].maxArgs == 1) {
- yylval.s = new Common::String(ptr);
- return tTHEFUNC;
- }
- }
-
- warning("LEXER: Unhandled the entity '%s'", ptr);
- }
-then { count(); return tTHEN; }
-to { count(); return tTO; }
-scummvmAssertError { count(); return tASSERTERROR; }
-sprite { count(); return tSPRITE; }
-with { count(); return tWITH; }
-within { count(); return tWITHIN; }
-when { count(); return tWHEN; }
-while { count(); return tWHILE; }
-window { count(); return tWINDOW; }
-word { count(); return tWORD; }
+the { count(); return tTHE; }
+then { count(); return tTHEN; }
+time { count(); return tTIME; }
+to { count(); return tTO; }
+when { count(); return tWHEN; }
+while { count(); return tWHILE; }
+window { count(); return tWINDOW; }
+with { count(); return tWITH; }
+within { count(); return tWITHIN; }
+word { count(); return tWORD; }
+words { count(); return tWORDS; }
[<][>] { count(); return tNEQ; }
[>][=] { count(); return tGE; }
Commit: de3f586e320807f803aecce8130edc0457efc9b5
https://github.com/scummvm/scummvm/commit/de3f586e320807f803aecce8130edc0457efc9b5
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix objectproppush/assign
Changed it to get the object from the stack. This allows objects which
aren't simple variables.
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 37c1adc4c5..70a3c7764b 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -107,8 +107,8 @@ static struct FuncDescr {
{ LC::c_negate, "c_negate", "" },
{ LC::c_neq, "c_neq", "" },
{ LC::c_not, "c_not", "" },
- { LC::c_objectpropassign,"c_objectpropassign","ss" }, // object, prop
- { LC::c_objectproppush, "c_objectproppush","ss" }, // object, prop
+ { LC::c_objectpropassign,"c_objectpropassign","s" }, // prop
+ { LC::c_objectproppush, "c_objectproppush","s" }, // prop
{ LC::c_of, "c_of", "" },
{ LC::c_or, "c_or", "" },
{ LC::c_procret, "c_procret", "" },
@@ -562,18 +562,14 @@ void LC::c_themenuitementityassign() {
}
void LC::c_objectproppush() {
- Datum objName(g_lingo->readString());
- objName.type = VARREF;
- Datum obj = g_lingo->varFetch(objName);
+ Datum obj = g_lingo->pop();
Common::String propName = g_lingo->readString();
g_lingo->push(g_lingo->getObjectProp(obj, propName));
}
void LC::c_objectpropassign() {
- Datum objName(g_lingo->readString());
- objName.type = VARREF;
- Datum obj = g_lingo->varFetch(objName);
+ Datum obj = g_lingo->pop();
Common::String propName = g_lingo->readString();
Datum d = g_lingo->pop();
Commit: 68d7eb1249828e40cf2c657d2641ecd1b67dd9cb
https://github.com/scummvm/scummvm/commit/68d7eb1249828e40cf2c657d2641ecd1b67dd9cb
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Change codeCmd/codeFunc arg type
This will let us call these with a string literal.
Changed paths:
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index a84ee236a9..065bf8ce9d 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -251,9 +251,9 @@ int LingoCompiler::codeInt(int val) {
return _currentAssembly->size();
}
-int LingoCompiler::codeCmd(Common::String *s, int numpar) {
+int LingoCompiler::codeCmd(const Common::String &s, int numpar) {
// Insert current line number to our asserts
- if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
+ if (s.equalsIgnoreCase("scummvmAssert") || s.equalsIgnoreCase("scummvmAssertEqual")) {
code1(LC::c_intpush);
codeInt(_linenumber);
@@ -262,7 +262,7 @@ int LingoCompiler::codeCmd(Common::String *s, int numpar) {
int ret = code1(LC::c_callcmd);
- codeString(s->c_str());
+ codeString(s.c_str());
inst num = 0;
WRITE_UINT32(&num, numpar);
@@ -271,10 +271,10 @@ int LingoCompiler::codeCmd(Common::String *s, int numpar) {
return ret;
}
-int LingoCompiler::codeFunc(Common::String *s, int numpar) {
+int LingoCompiler::codeFunc(const Common::String &s, int numpar) {
int ret = code1(LC::c_callfunc);
- codeString(s->c_str());
+ codeString(s.c_str());
inst num = 0;
WRITE_UINT32(&num, numpar);
@@ -481,7 +481,7 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
var->name->equalsIgnoreCase("previous")) {
code1(LC::c_symbolpush);
codeString(var->name->c_str());
- codeCmd(node->name, 1);
+ codeCmd(*node->name, 1);
return true;
}
}
@@ -490,7 +490,7 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
if (node->name->equalsIgnoreCase("play") && node->args->size() == 1 && (*node->args)[0]->type == kVarNode) {
VarNode *var = static_cast<VarNode *>((*node->args)[0]);
if (var->name->equalsIgnoreCase("done")) {
- codeCmd(node->name, 0);
+ codeCmd(*node->name, 0);
return true;
}
}
@@ -505,7 +505,7 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
COMPILE(arg);
}
}
- codeCmd(node->name, node->args->size());
+ codeCmd(*node->name, node->args->size());
return true;
}
@@ -521,13 +521,13 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
for (uint i = 1; i < node->args->size(); i++) {
COMPILE((*node->args)[i]);
}
- codeCmd(node->name, node->args->size());
+ codeCmd(*node->name, node->args->size());
return true;
}
}
COMPILE_LIST(node->args);
- codeCmd(node->name, node->args->size());
+ codeCmd(*node->name, node->args->size());
return true;
}
@@ -848,7 +848,7 @@ bool LingoCompiler::visitPropPairNode(PropPairNode *node) {
bool LingoCompiler::visitFuncNode(FuncNode *node) {
COMPILE_LIST(node->args);
- codeFunc(node->name, node->args->size());
+ codeFunc(*node->name, node->args->size());
return true;
}
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index a37424354f..28671ceee9 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -42,9 +42,9 @@ public:
int code2(inst code_1, inst code_2) { int o = code1(code_1); code1(code_2); return o; }
int code3(inst code_1, inst code_2, inst code_3) { int o = code1(code_1); code1(code_2); code1(code_3); return o; }
int code4(inst code_1, inst code_2, inst code_3, inst code_4) { int o = code1(code_1); code1(code_2); code1(code_3); code1(code_4); return o; }
- int codeCmd(Common::String *s, int numpar);
+ int codeCmd(const Common::String &s, int numpar);
int codeFloat(double f);
- int codeFunc(Common::String *s, int numpar);
+ int codeFunc(const Common::String &s, int numpar);
int codeInt(int val);
int codeString(const char *s);
void codeVarSet(const Common::String &name);
Commit: d393fa547294b594ff74b13542d7d02065568be0
https://github.com/scummvm/scummvm/commit/d393fa547294b594ff74b13542d7d02065568be0
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement 'the'
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index f9c698a826..dac79872de 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -63,6 +63,15 @@ struct FrameNode;
struct MovieNode;
struct IntersectsNode;
struct WithinNode;
+struct TheNode;
+struct TheOfNode;
+struct TheNumberOfNode;
+struct TheLastNode;
+struct TheDateTimeNode;
+struct MenuNode;
+struct MenuItemNode;
+struct SoundNode;
+struct SpriteNode;
typedef Common::Array<Node *> NodeList;
typedef Common::Array<Common::String *> IDList;
@@ -114,7 +123,24 @@ enum NodeType {
kFrameNode,
kMovieNode,
kIntersectsNode,
- kWithinNode
+ kWithinNode,
+ kTheNode,
+ kTheOfNode,
+ kTheNumberOfNode,
+ kTheLastNode,
+ kTheDateTimeNode,
+ kMenuNode,
+ kMenuItemNode,
+ kSoundNode,
+ kSpriteNode
+};
+
+enum NumberOfType {
+ kNumberOfChars,
+ kNumberOfWords,
+ kNumberOfItems,
+ kNumberOfLines,
+ kNumberOfMenuItems
};
/* NodeVisitor */
@@ -161,6 +187,15 @@ public:
virtual bool visitMovieNode(MovieNode *node) = 0;
virtual bool visitIntersectsNode(IntersectsNode *node) = 0;
virtual bool visitWithinNode(WithinNode *node) = 0;
+ virtual bool visitTheNode(TheNode *node) = 0;
+ virtual bool visitTheOfNode(TheOfNode *node) = 0;
+ virtual bool visitTheNumberOfNode(TheNumberOfNode *node) = 0;
+ virtual bool visitTheLastNode(TheLastNode *node) = 0;
+ virtual bool visitTheDateTimeNode(TheDateTimeNode *node) = 0;
+ virtual bool visitMenuNode(MenuNode *node) = 0;
+ virtual bool visitMenuItemNode(MenuItemNode *node) = 0;
+ virtual bool visitSoundNode(SoundNode *node) = 0;
+ virtual bool visitSpriteNode(SpriteNode *node) = 0;
};
/* Node */
@@ -772,6 +807,142 @@ struct WithinNode : ExprNode {
}
};
+/* TheNode */
+
+struct TheNode : ExprNode {
+ Common::String *prop;
+
+ TheNode(Common::String *propIn) : ExprNode(kTheNode), prop(propIn) {}
+ virtual ~TheNode() {
+ delete prop;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTheNode(this);
+ }
+};
+
+/* TheOfNode */
+
+struct TheOfNode : ExprNode {
+ Common::String *prop;
+ Node *obj;
+
+ TheOfNode(Common::String *propIn, Node *objIn)
+ : ExprNode(kTheOfNode), prop(propIn), obj(objIn) {}
+ virtual ~TheOfNode() {
+ delete prop;
+ delete obj;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTheOfNode(this);
+ }
+};
+
+/* TheNumberOfNode */
+
+struct TheNumberOfNode : ExprNode {
+ NumberOfType type;
+ Node *arg;
+
+ TheNumberOfNode(NumberOfType typeIn, Node *argIn)
+ : ExprNode(kTheNumberOfNode), type(typeIn), arg(argIn) {}
+ virtual ~TheNumberOfNode() {
+ delete arg;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTheNumberOfNode(this);
+ }
+};
+
+/* TheLastNode */
+
+struct TheLastNode : ExprNode {
+ ChunkType type;
+ Node *arg;
+
+ TheLastNode(ChunkType typeIn, Node *argIn)
+ : ExprNode(kTheLastNode), type(typeIn), arg(argIn) {}
+ virtual ~TheLastNode() {
+ delete arg;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTheLastNode(this);
+ }
+};
+
+/* TheDateTimeNode */
+
+struct TheDateTimeNode : ExprNode {
+ int field;
+ int entity;
+
+ TheDateTimeNode(int fieldIn, int entityIn)
+ : ExprNode(kTheDateTimeNode), field(fieldIn), entity(entityIn) {}
+ virtual ~TheDateTimeNode() {}
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitTheDateTimeNode(this);
+ }
+};
+
+/* MenuNode */
+
+struct MenuNode : ExprNode {
+ Node *arg;
+
+ MenuNode(Node *argIn) : ExprNode(kMenuNode), arg(argIn) {}
+ virtual ~MenuNode() {
+ delete arg;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitMenuNode(this);
+ }
+};
+
+/* MenuItemNode */
+
+struct MenuItemNode : ExprNode {
+ Node *arg1;
+ Node *arg2;
+
+ MenuItemNode(Node *arg1In, Node *arg2In)
+ : ExprNode(kMenuItemNode), arg1(arg1In), arg2(arg2In) {}
+ virtual ~MenuItemNode() {
+ delete arg1;
+ delete arg2;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitMenuItemNode(this);
+ }
+};
+
+/* SoundNode */
+
+struct SoundNode : ExprNode {
+ Node *arg;
+
+ SoundNode(Node *argIn) : ExprNode(kSoundNode), arg(argIn) {}
+ virtual ~SoundNode() {
+ delete arg;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitSoundNode(this);
+ }
+};
+
+/* SpriteNode */
+
+struct SpriteNode : ExprNode {
+ Node *arg;
+
+ SpriteNode(Node *argIn) : ExprNode(kSpriteNode), arg(argIn) {}
+ virtual ~SpriteNode() {
+ delete arg;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitSpriteNode(this);
+ }
+};
+
} // End of namespace Director
#endif
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 065bf8ce9d..fafb6ab4aa 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -52,6 +52,7 @@
#include "director/lingo/lingo-code.h"
#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-the.h"
namespace Director {
@@ -569,7 +570,115 @@ bool LingoCompiler::visitPutBeforeNode(PutBeforeNode *node) {
/* SetNode */
+bool LingoCompiler::codeTheFieldSet(int entity, Node *id, const Common::String &field) {
+ Common::String fieldId = Common::String::format("%d%s", entity, field.c_str());
+ if (!g_lingo->_theEntityFields.contains(fieldId)) {
+ warning("LingoCompiler::codeTheFieldSet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
+ return false;
+ }
+ COMPILE(id);
+ code1(LC::c_theentityassign);
+ codeInt(entity);
+ codeInt(g_lingo->_theEntityFields[fieldId]->field);
+ return true;
+}
+
bool LingoCompiler::visitSetNode(SetNode *node) {
+ if (node->var->type == kTheNode) {
+ TheNode *the = static_cast<TheNode *>(node->var);
+ if (g_lingo->_theEntities.contains(*the->prop) && !g_lingo->_theEntities[*the->prop]->hasId) {
+ COMPILE(node->val);
+ code1(LC::c_intpush);
+ codeInt(0); // Put dummy id
+ code1(LC::c_theentityassign);
+ codeInt(g_lingo->_theEntities[*the->prop]->entity);
+ codeInt(0); // No field
+ return true;
+ }
+ warning("LingoCompiler:visitSetNode: Unhandled the entity '%s'", the->prop->c_str());
+ return false;
+ }
+
+ if (node->var->type == kTheOfNode) {
+ COMPILE(node->val);
+ TheOfNode *the = static_cast<TheOfNode *>(node->var);
+ switch (the->obj->type) {
+ case kFuncNode:
+ {
+ FuncNode *func = static_cast<FuncNode *>(the->obj);
+ if (func->args->size() == 1) {
+ if (func->name->equalsIgnoreCase("cast")) {
+ return codeTheFieldGet(kTheCast, (*func->args)[0], *the->prop);
+ }
+ if (func->name->equalsIgnoreCase("field")) {
+ return codeTheFieldGet(kTheField, (*func->args)[0], *the->prop);
+ }
+ // window is an object and is handled by that case
+ }
+ }
+ break;
+ case kMenuNode:
+ {
+ MenuNode *menu = static_cast<MenuNode *>(the->obj);
+ return codeTheFieldGet(kTheMenu, menu->arg, *the->prop);
+ }
+ break;
+ case kMenuItemNode:
+ {
+ MenuItemNode *menuItem = static_cast<MenuItemNode *>(the->obj);
+ Common::String fieldId = Common::String::format("%d%s", kTheMenuItem, the->prop->c_str());
+ if (!g_lingo->_theEntityFields.contains(fieldId)) {
+ warning("LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", the->prop->c_str());
+ return false;
+ }
+ COMPILE(menuItem->arg1)
+ COMPILE(menuItem->arg2);
+ code1(LC::c_theentitypush);
+ codeInt(kTheMenuItem);
+ codeInt(g_lingo->_theEntityFields[fieldId]->field);
+ return true;
+ }
+ break;
+ case kSoundNode:
+ {
+ SoundNode *sound = static_cast<SoundNode *>(the->obj);
+ return codeTheFieldGet(kTheSoundEntity, sound->arg, *the->prop);
+ }
+ break;
+ case kSpriteNode:
+ {
+ SpriteNode *sprite = static_cast<SpriteNode *>(the->obj);
+ return codeTheFieldGet(kTheSprite, sprite->arg, *the->prop);
+ }
+ break;
+ case kVarNode:
+ {
+ VarNode *var = static_cast<VarNode *>(the->obj);
+ if (the->prop->equalsIgnoreCase("number") && var->name->equalsIgnoreCase("castMembers")) {
+ code1(LC::c_intpush);
+ codeInt(0); // Put dummy id
+ code1(LC::c_theentitypush);
+ codeInt(kTheCastMembers);
+ codeInt(kTheNumber);
+ return true;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (g_director->getVersion() >= 400) {
+ COMPILE(the->obj);
+ code1(LC::c_objectproppush);
+ codeString(the->prop->c_str());
+ return true;
+ }
+
+ warning("LingoCompiler::visitSetNode: Unhandled the field %s", the->prop->c_str());
+ return false;
+ }
+
if (node->var->type == kVarNode) {
registerMethodVar(*static_cast<VarNode *>(node->var)->name);
}
@@ -930,6 +1039,214 @@ bool LingoCompiler::visitWithinNode(WithinNode *node) {
COMPILE(node->sprite2);
code1(LC::c_within);
return true;
-};
+}
+
+/* TheNode */
+
+bool LingoCompiler::visitTheNode(TheNode *node) {
+ if (g_lingo->_theEntities.contains(*node->prop) && !g_lingo->_theEntities[*node->prop]->hasId) {
+ code1(LC::c_intpush);
+ codeInt(0); // Put dummy id
+ code1(LC::c_theentitypush);
+ codeInt(g_lingo->_theEntities[*node->prop]->entity);
+ codeInt(0); // No field
+ return true;
+ }
+
+ warning("LingoCompiler:visitTheNode: Unhandled the entity '%s'", node->prop->c_str());
+ return false;
+}
+
+/* TheOfNode */
+
+bool LingoCompiler::codeTheFieldGet(int entity, Node *id, const Common::String &field) {
+ Common::String fieldId = Common::String::format("%d%s", entity, field.c_str());
+ if (!g_lingo->_theEntityFields.contains(fieldId)) {
+ warning("LingoCompiler::codeTheFieldGet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
+ return false;
+ }
+ COMPILE(id);
+ code1(LC::c_theentitypush);
+ codeInt(entity);
+ codeInt(g_lingo->_theEntityFields[fieldId]->field);
+ return true;
+}
+
+bool LingoCompiler::visitTheOfNode(TheOfNode *node) {
+ switch (node->obj->type) {
+ case kFuncNode:
+ {
+ FuncNode *func = static_cast<FuncNode *>(node->obj);
+ if (func->args->size() == 1) {
+ if (func->name->equalsIgnoreCase("cast")) {
+ return codeTheFieldGet(kTheCast, (*func->args)[0], *node->prop);
+ }
+ if (func->name->equalsIgnoreCase("field")) {
+ return codeTheFieldGet(kTheField, (*func->args)[0], *node->prop);
+ }
+ // window is an object and is handled by that case
+ }
+ }
+ break;
+ case kMenuNode:
+ {
+ MenuNode *menu = static_cast<MenuNode *>(node->obj);
+ return codeTheFieldGet(kTheMenu, menu->arg, *node->prop);
+ }
+ break;
+ case kMenuItemNode:
+ {
+ MenuItemNode *menuItem = static_cast<MenuItemNode *>(node->obj);
+ Common::String fieldId = Common::String::format("%d%s", kTheMenuItem, node->prop->c_str());
+ if (!g_lingo->_theEntityFields.contains(fieldId)) {
+ warning("LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", node->prop->c_str());
+ return false;
+ }
+ COMPILE(menuItem->arg1)
+ COMPILE(menuItem->arg2);
+ code1(LC::c_theentitypush);
+ codeInt(kTheMenuItem);
+ codeInt(g_lingo->_theEntityFields[fieldId]->field);
+ return true;
+ }
+ break;
+ case kSoundNode:
+ {
+ SoundNode *sound = static_cast<SoundNode *>(node->obj);
+ return codeTheFieldGet(kTheSoundEntity, sound->arg, *node->prop);
+ }
+ break;
+ case kSpriteNode:
+ {
+ SpriteNode *sprite = static_cast<SpriteNode *>(node->obj);
+ return codeTheFieldGet(kTheSprite, sprite->arg, *node->prop);
+ }
+ break;
+ case kVarNode:
+ {
+ VarNode *var = static_cast<VarNode *>(node->obj);
+ if (node->prop->equalsIgnoreCase("number") && var->name->equalsIgnoreCase("castMembers")) {
+ code1(LC::c_intpush);
+ codeInt(0); // Put dummy id
+ code1(LC::c_theentitypush);
+ codeInt(kTheCastMembers);
+ codeInt(kTheNumber);
+ return true;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (g_director->getVersion() >= 400) {
+ COMPILE(node->obj);
+ code1(LC::c_objectproppush);
+ codeString(node->prop->c_str());
+ return true;
+ }
+
+ if (g_lingo->_builtinFuncs.contains(*node->prop)) {
+ COMPILE(node->obj);
+ codeFunc(*node->prop, 1);
+ return true;
+ }
+
+ warning("LingoCompiler::visitTheOfNode: Unhandled the field %s", node->prop->c_str());
+ return false;
+}
+
+/* TheNumberOfNode */
+
+bool LingoCompiler::visitTheNumberOfNode(TheNumberOfNode *node) {
+ switch (node->type) {
+ case kNumberOfChars:
+ COMPILE(node->arg);
+ codeFunc("numberOfChars", 1);
+ break;
+ case kNumberOfWords:
+ COMPILE(node->arg);
+ codeFunc("numberOfWords", 1);
+ break;
+ case kNumberOfItems:
+ COMPILE(node->arg);
+ codeFunc("numberOfItems", 1);
+ break;
+ case kNumberOfLines:
+ COMPILE(node->arg);
+ codeFunc("numberOfLines", 1);
+ break;
+ case kNumberOfMenuItems:
+ {
+ if (node->arg->type != kMenuNode) {
+ warning("LingoCompiler::visitTheNumberOfNode: expected menu");
+ return false;
+ }
+ MenuNode *menu = static_cast<MenuNode *>(node->arg);
+ COMPILE(menu->arg);
+ code1(LC::c_theentitypush);
+ codeInt(kTheMenuItems);
+ codeInt(kTheNumber);
+ }
+ break;
+ }
+ return true;
+}
+
+/* TheLastNode */
+
+bool LingoCompiler::visitTheLastNode(TheLastNode *node) {
+ COMPILE(node->arg);
+ switch (node->type) {
+ case kNumberOfChars:
+ codeFunc("lastCharOf", 1);
+ break;
+ case kNumberOfWords:
+ codeFunc("lastWordOf", 1);
+ break;
+ case kNumberOfItems:
+ codeFunc("lastItemOf", 1);
+ break;
+ case kNumberOfLines:
+ codeFunc("lastLineOf", 1);
+ break;
+ }
+ return true;
+}
+
+/* TheDateTimeNode */
+
+bool LingoCompiler::visitTheDateTimeNode(TheDateTimeNode *node) {
+ code1(LC::c_intpush);
+ codeInt(0); // Put dummy id
+ code1(LC::c_theentitypush);
+ codeInt(node->entity);
+ codeInt(node->field);
+ return true;
+}
+
+/* MenuNode */
+
+bool LingoCompiler::visitMenuNode(MenuNode *node) {
+ return true;
+}
+
+/* MenuItemNode */
+
+bool LingoCompiler::visitMenuItemNode(MenuItemNode *node) {
+ return true;
+}
+
+/* SoundItem */
+
+bool LingoCompiler::visitSoundNode(SoundNode *node) {
+ return true;
+}
+
+/* SpriteNode */
+
+bool LingoCompiler::visitSpriteNode(SpriteNode *node) {
+ return true;
+}
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 28671ceee9..b210ff291b 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -50,6 +50,8 @@ public:
void codeVarSet(const Common::String &name);
void codeVarRef(const Common::String &name);
void codeVarGet(const Common::String &name);
+ bool codeTheFieldSet(int entity, Node *id, const Common::String &field);
+ bool codeTheFieldGet(int entity, Node *id, const Common::String &field);
void registerFactory(Common::String &s);
void registerMethodVar(const Common::String &name, VarType type = kVarGeneric);
void updateLoopJumps(uint nextTargetPos, uint exitTargetPos);
@@ -110,6 +112,15 @@ public:
virtual bool visitMovieNode(MovieNode *node);
virtual bool visitIntersectsNode(IntersectsNode *node);
virtual bool visitWithinNode(WithinNode *node);
+ virtual bool visitTheNode(TheNode *node);
+ virtual bool visitTheOfNode(TheOfNode *node);
+ virtual bool visitTheNumberOfNode(TheNumberOfNode *node);
+ virtual bool visitTheLastNode(TheLastNode *node);
+ virtual bool visitTheDateTimeNode(TheDateTimeNode *node);
+ virtual bool visitMenuNode(MenuNode *node);
+ virtual bool visitMenuItemNode(MenuItemNode *node);
+ virtual bool visitSoundNode(SoundNode *node);
+ virtual bool visitSpriteNode(SpriteNode *node);
private:
int parse(const char *code);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 6feac1ba4f..d2bdec6bd7 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -82,6 +82,7 @@
#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-the.h"
extern int yylex();
extern int yyparse();
@@ -124,7 +125,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
}
-#line 128 "engines/director/lingo/lingo-gr.cpp"
+#line 129 "engines/director/lingo/lingo-gr.cpp"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -287,25 +288,30 @@ enum yysymbol_kind_t
YYSYMBOL_stmtlist = 132, /* stmtlist */
YYSYMBOL_nonemptystmtlist = 133, /* nonemptystmtlist */
YYSYMBOL_stmtlistline = 134, /* stmtlistline */
- YYSYMBOL_simpleexpr_noparens_nounarymath = 135, /* simpleexpr_noparens_nounarymath */
+ YYSYMBOL_simpleexpr_nounarymath = 135, /* simpleexpr_nounarymath */
YYSYMBOL_var = 136, /* var */
YYSYMBOL_varorchunk = 137, /* varorchunk */
YYSYMBOL_varorthe = 138, /* varorthe */
YYSYMBOL_chunk = 139, /* chunk */
YYSYMBOL_object = 140, /* object */
- YYSYMBOL_list = 141, /* list */
- YYSYMBOL_proplist = 142, /* proplist */
- YYSYMBOL_proppair = 143, /* proppair */
- YYSYMBOL_parens = 144, /* parens */
- YYSYMBOL_unarymath = 145, /* unarymath */
- YYSYMBOL_simpleexpr = 146, /* simpleexpr */
- YYSYMBOL_simpleexpr_noparens = 147, /* simpleexpr_noparens */
- YYSYMBOL_simpleexpr_nounarymath = 148, /* simpleexpr_nounarymath */
- YYSYMBOL_expr = 149, /* expr */
- YYSYMBOL_expr_nounarymath = 150, /* expr_nounarymath */
- YYSYMBOL_sprite = 151, /* sprite */
- YYSYMBOL_exprlist = 152, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 153 /* nonemptyexprlist */
+ YYSYMBOL_the = 141, /* the */
+ YYSYMBOL_theobj = 142, /* theobj */
+ YYSYMBOL_menu = 143, /* menu */
+ YYSYMBOL_writablethe = 144, /* writablethe */
+ YYSYMBOL_thedatetime = 145, /* thedatetime */
+ YYSYMBOL_thenumberof = 146, /* thenumberof */
+ YYSYMBOL_chunktype = 147, /* chunktype */
+ YYSYMBOL_inof = 148, /* inof */
+ YYSYMBOL_list = 149, /* list */
+ YYSYMBOL_proplist = 150, /* proplist */
+ YYSYMBOL_proppair = 151, /* proppair */
+ YYSYMBOL_unarymath = 152, /* unarymath */
+ YYSYMBOL_simpleexpr = 153, /* simpleexpr */
+ YYSYMBOL_expr = 154, /* expr */
+ YYSYMBOL_expr_nounarymath = 155, /* expr_nounarymath */
+ YYSYMBOL_sprite = 156, /* sprite */
+ YYSYMBOL_exprlist = 157, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 158 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -625,18 +631,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 143
+#define YYFINAL 149
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3493
+#define YYLAST 3926
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 50
+#define YYNNTS 55
/* YYNRULES -- Number of rules. */
-#define YYNRULES 218
+#define YYNRULES 249
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 393
+#define YYNSTATES 457
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -694,28 +700,31 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 197, 197, 199, 205, 212, 213, 214, 215, 216,
- 245, 249, 251, 253, 254, 257, 263, 270, 271, 276,
- 280, 284, 285, 286, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 308, 309, 313,
- 315, 316, 317, 318, 319, 320, 321, 322, 324, 325,
- 326, 328, 329, 330, 331, 332, 333, 335, 336, 338,
- 341, 342, 343, 344, 345, 346, 347, 348, 349, 352,
- 353, 355, 356, 357, 358, 359, 360, 363, 364, 367,
- 371, 381, 382, 383, 384, 385, 386, 389, 390, 391,
- 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
- 406, 409, 414, 418, 424, 429, 432, 442, 447, 453,
- 459, 465, 473, 474, 475, 476, 479, 479, 481, 482,
- 483, 486, 490, 494, 500, 504, 508, 512, 514, 516,
- 520, 524, 528, 530, 531, 535, 541, 548, 549, 555,
- 556, 557, 558, 559, 560, 561, 562, 563, 564, 567,
- 569, 570, 573, 577, 581, 587, 591, 597, 598, 599,
- 602, 606, 611, 612, 613, 616, 618, 619, 622, 623,
- 624, 627, 628, 631, 632, 636, 637, 638, 639, 640,
- 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
- 651, 652, 653, 654, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 672, 673, 674, 675, 676,
- 677, 678, 679, 682, 683, 686, 687, 690, 694
+ 0, 195, 195, 197, 203, 210, 211, 212, 213, 214,
+ 243, 247, 249, 251, 252, 255, 261, 268, 269, 274,
+ 278, 282, 283, 284, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 306, 307, 311,
+ 313, 314, 315, 316, 317, 318, 319, 320, 322, 323,
+ 324, 326, 327, 328, 329, 330, 331, 333, 334, 336,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 350,
+ 351, 353, 354, 355, 356, 357, 358, 361, 362, 365,
+ 369, 379, 380, 381, 382, 383, 384, 387, 388, 389,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
+ 404, 407, 412, 416, 422, 427, 430, 440, 445, 451,
+ 457, 463, 471, 472, 473, 474, 477, 477, 479, 480,
+ 481, 484, 488, 492, 498, 502, 506, 510, 512, 514,
+ 518, 522, 526, 528, 529, 533, 539, 546, 547, 553,
+ 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
+ 564, 567, 569, 570, 573, 574, 577, 581, 587, 591,
+ 597, 598, 599, 600, 603, 604, 605, 606, 607, 610,
+ 612, 613, 614, 617, 618, 619, 620, 621, 622, 623,
+ 624, 625, 626, 630, 631, 632, 633, 634, 637, 638,
+ 639, 640, 643, 643, 645, 646, 647, 650, 654, 659,
+ 660, 661, 664, 665, 668, 669, 673, 674, 675, 676,
+ 677, 678, 679, 680, 681, 682, 683, 684, 685, 686,
+ 687, 688, 689, 690, 691, 698, 699, 700, 701, 702,
+ 703, 704, 705, 706, 707, 708, 709, 710, 711, 712,
+ 713, 714, 715, 716, 719, 720, 723, 724, 727, 731
};
#endif
@@ -752,10 +761,11 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "cmdargs",
"frameargs", "asgn", "to", "definevars", "ifstmt", "ifelsestmt", "loop",
"tell", "when", "stmtlist", "nonemptystmtlist", "stmtlistline",
- "simpleexpr_noparens_nounarymath", "var", "varorchunk", "varorthe",
- "chunk", "object", "list", "proplist", "proppair", "parens", "unarymath",
- "simpleexpr", "simpleexpr_noparens", "simpleexpr_nounarymath", "expr",
- "expr_nounarymath", "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
+ "object", "the", "theobj", "menu", "writablethe", "thedatetime",
+ "thenumberof", "chunktype", "inof", "list", "proplist", "proppair",
+ "unarymath", "simpleexpr", "expr", "expr_nounarymath", "sprite",
+ "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -780,7 +790,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-297)
+#define YYPACT_NINF (-325)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -794,46 +804,52 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 1883, -297, -297, -297, -297, -297, -297, -21, -297, 3086,
- 1119, 1216, -297, -297, 3086, -297, -12, -297, -297, 1313,
- 57, 3086, -297, 3086, -297, -297, 3086, -297, 1119, 3086,
- -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
- -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
- -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
- -297, -297, 1216, 3086, 3086, 2930, -297, 37, 1883, -297,
- -297, -297, -297, 1313, -297, -297, -297, -297, -297, -297,
- -297, -297, -297, -297, -54, -297, -297, -297, -297, -297,
- -297, -297, -47, -44, -297, -297, -297, -297, 1507, 1507,
- 1507, 1507, 1216, 1216, 1410, 1216, 1410, 1410, 1022, 535,
- -40, -31, -1, -297, -297, -297, -297, -297, -297, -297,
- -297, 634, -297, 1216, 205, 3086, 10, 20, 731, 3086,
- 1216, -297, -297, -16, 36, 24, 25, 26, 27, 124,
- 29, 3086, -297, -297, -297, 31, 828, -297, -297, 3086,
- -297, -297, -297, -297, -297, -297, 925, 3372, -297, 3318,
- -297, -297, -297, 421, -22, 28, -11, -83, -62, -297,
- 3372, 32, 45, 1216, -297, -297, 104, 1216, 1216, 1216,
- 1216, 1598, 1598, 1792, 1216, 1695, 1695, 1216, 1216, 1216,
- 1216, 1216, 1216, 1216, 1216, -297, -297, -297, 3204, -297,
- 222, 2610, 1216, 1216, 1216, 1216, 1216, 47, -297, -297,
- 3164, 3164, 3164, 106, 3217, -297, -297, 1216, 1216, -59,
- -297, -297, -297, 2930, 2690, -297, 51, -297, -297, 125,
- 3385, 1410, 1410, 1216, -297, 1216, 1216, -297, 1216, 3008,
- -297, -297, 1216, 52, 1216, 9, 9, 9, 9, 3398,
- 3398, -297, -8, 9, 9, 9, 9, -8, -38, -38,
- -297, -297, 45, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
- 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
- 1216, 2690, 137, 2690, -297, 58, -297, 59, 60, 1216,
- 2690, 3230, 3372, 3086, -297, -297, 62, -297, -297, -297,
- -297, -297, 2043, -297, -297, 2690, 1216, -297, -297, -18,
- 3372, 3372, 3372, -22, 28, 61, -297, 3372, -297, 3372,
- 9, 9, 9, 9, 3398, 3398, -297, -8, 9, 9,
- 9, 9, -8, -38, -38, -297, -297, 45, 1963, 2770,
- 2690, -297, -297, -297, 93, 2130, -297, 3086, -59, 63,
- -297, 2210, 3372, -297, 2850, 64, 2690, -297, 120, 1216,
- 66, 68, -297, -297, 3086, 2690, -297, -297, 2290, 1216,
- 3286, -297, 2690, 13, -297, 2370, 75, 3299, 2690, 2690,
- -297, 3086, 77, -297, 2690, 2450, -297, -297, 2530, 78,
- 82, -297, -297
+ 2029, -325, -325, -325, -325, -325, -325, -27, -325, 3310,
+ 1162, 1259, -325, -325, 3310, -325, -12, -325, -325, 1356,
+ 12, 3232, -325, 3310, -325, -325, 3310, -325, 1162, 3310,
+ -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+ -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+ -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+ -325, -325, 1259, 3310, 3310, 3076, -325, 75, 2029, -325,
+ -325, -325, -325, 1356, -325, -325, -325, -325, -325, -325,
+ -325, -325, -325, -325, -61, -325, -325, -325, -325, -325,
+ -325, -325, -5, -2, -325, -325, -325, -325, 1453, 1453,
+ 1453, 1453, 1259, 1259, 1453, 3388, 1259, 1453, 1453, 1065,
+ 578, 8, 16, 18, -325, -325, -325, -325, -325, -325,
+ -325, -325, -325, -325, -325, 677, -325, 1259, 452, 3310,
+ 19, 24, 774, 3310, 1259, 3466, -325, -325, -17, -325,
+ 89, 26, 29, 30, 33, 204, 35, 3310, -325, -325,
+ -325, 37, 871, -325, -325, 3310, -325, -325, -325, -325,
+ 968, 3761, -325, -36, -31, -30, -7, 5, 36, 108,
+ 109, 3748, -325, -325, -325, 261, 38, 39, 41, -83,
+ -4, -325, 3761, 42, 48, 1259, -325, -325, 113, 1259,
+ 1259, 1259, 1259, 1744, 1744, 1938, 1259, 1841, 1841, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, -325, 3597, -325,
+ 3584, 2756, 1259, 1259, 1259, 1259, 1259, 43, -325, -325,
+ 3544, 3544, 3544, 104, 3610, 122, -325, -325, 1259, 1259,
+ -73, -325, -325, -325, 3076, 2836, -325, 54, -325, -325,
+ 126, 3777, -325, -325, -325, -325, -325, -325, -325, -325,
+ -325, -325, -325, -325, -325, -325, 60, 1550, 1647, 1453,
+ 1453, 1259, -325, 1259, 1259, -325, 1259, 3154, -325, -325,
+ 1259, 53, 1259, -15, -15, -15, -15, 3831, 3831, -325,
+ -39, -15, -15, -15, -15, -39, -37, -37, -325, -325,
+ 48, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 2836,
+ 138, 2836, -325, 59, -325, 61, 62, 1259, 2836, 1647,
+ 3666, 3761, 3310, -325, -325, 63, -325, -325, -325, -325,
+ -325, 2189, -325, -325, 2836, 1259, -325, -325, 1453, 60,
+ 60, 60, 60, 1453, 1453, 60, 1453, 1453, -325, -325,
+ -325, -325, -325, -325, -70, 3761, 3761, 3761, 38, 39,
+ 58, -325, 3761, -325, 3761, -15, -15, -15, -15, 3831,
+ 3831, -325, -39, -15, -15, -15, -15, -39, -37, -37,
+ -325, -325, 48, 2109, 2916, 2836, -325, -325, -325, 134,
+ 2276, -325, 3310, -73, 65, -325, 2356, 3761, -325, 1453,
+ 1453, 1453, 1453, -325, 129, 92, -325, -325, -325, 2996,
+ 67, 2836, -325, 131, 1259, 69, 70, -325, -325, 3310,
+ -325, -325, -325, -325, 98, 1453, -325, 2836, -325, -325,
+ 2436, 1259, 3679, -325, 2836, 2, -325, 1453, 2516, 73,
+ 3692, 2836, 2836, -325, 3310, -325, 76, -325, 2836, 2596,
+ -325, -325, 2676, 77, 78, -325, -325
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -851,56 +867,64 @@ static const yytype_uint8 yydefact[] =
6, 7, 8, 100, 9, 81, 87, 88, 89, 82,
83, 84, 85, 86, 0, 98, 53, 60, 63, 68,
62, 79, 0, 78, 139, 140, 142, 141, 31, 37,
- 61, 72, 38, 52, 54, 66, 0, 0, 0, 215,
- 149, 0, 0, 168, 145, 146, 147, 148, 169, 170,
- 175, 101, 176, 0, 0, 77, 0, 0, 101, 0,
- 0, 149, 152, 0, 0, 0, 0, 0, 0, 0,
- 0, 77, 99, 1, 4, 0, 101, 97, 118, 0,
- 171, 172, 154, 153, 155, 156, 107, 108, 143, 0,
- 166, 167, 105, 0, 142, 141, 0, 149, 0, 160,
- 217, 0, 216, 215, 92, 93, 56, 0, 0, 0,
- 0, 29, 58, 51, 0, 34, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 173, 174, 194, 103, 195,
+ 61, 72, 38, 52, 54, 0, 66, 0, 0, 0,
+ 246, 151, 0, 0, 204, 146, 147, 148, 149, 160,
+ 161, 162, 150, 205, 206, 101, 207, 0, 0, 77,
+ 0, 0, 101, 0, 0, 0, 151, 154, 0, 155,
+ 0, 0, 0, 0, 0, 0, 0, 77, 99, 1,
+ 4, 0, 101, 97, 118, 0, 157, 156, 158, 159,
+ 107, 108, 143, 25, 26, 27, 47, 64, 44, 55,
+ 170, 0, 202, 203, 105, 0, 142, 141, 0, 151,
+ 0, 197, 248, 0, 247, 246, 92, 93, 56, 0,
+ 0, 0, 0, 29, 58, 51, 0, 34, 67, 0,
+ 0, 0, 0, 0, 0, 0, 0, 225, 103, 226,
0, 0, 0, 0, 0, 0, 0, 0, 96, 91,
- 41, 28, 30, 0, 0, 116, 117, 0, 0, 13,
- 94, 95, 120, 0, 133, 119, 0, 90, 80, 56,
- 111, 0, 0, 0, 165, 0, 0, 158, 0, 0,
- 159, 157, 0, 0, 0, 186, 187, 184, 185, 188,
- 189, 181, 191, 192, 193, 183, 182, 190, 177, 178,
- 179, 180, 102, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 133, 121, 133, 150, 0, 151, 0, 0, 0,
- 133, 0, 132, 0, 17, 18, 11, 14, 15, 130,
- 137, 138, 0, 134, 135, 133, 0, 213, 214, 0,
- 164, 162, 163, 0, 0, 0, 161, 218, 144, 110,
- 205, 206, 203, 204, 207, 208, 200, 210, 211, 212,
- 202, 201, 209, 196, 197, 198, 199, 104, 0, 0,
- 10, 112, 113, 114, 0, 0, 115, 77, 0, 0,
- 136, 20, 109, 106, 0, 0, 133, 123, 0, 0,
- 0, 0, 16, 131, 21, 133, 125, 122, 0, 0,
- 0, 127, 133, 0, 22, 0, 0, 0, 133, 12,
- 19, 0, 0, 124, 133, 0, 23, 126, 0, 0,
- 0, 128, 129
+ 41, 28, 30, 0, 0, 55, 116, 117, 0, 0,
+ 13, 94, 95, 120, 0, 133, 119, 0, 90, 80,
+ 56, 111, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 188, 190, 191, 189, 0, 0, 0, 0,
+ 0, 0, 145, 0, 0, 195, 0, 0, 196, 194,
+ 0, 0, 0, 217, 218, 215, 216, 219, 220, 212,
+ 222, 223, 224, 214, 213, 221, 208, 209, 210, 211,
+ 102, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 133,
+ 121, 133, 152, 0, 153, 0, 0, 0, 133, 0,
+ 0, 132, 0, 17, 18, 11, 14, 15, 130, 137,
+ 138, 0, 134, 135, 133, 0, 192, 193, 0, 33,
+ 43, 46, 76, 48, 49, 50, 65, 66, 172, 165,
+ 164, 171, 244, 245, 0, 201, 199, 200, 0, 0,
+ 0, 198, 249, 144, 110, 236, 237, 234, 235, 238,
+ 239, 231, 241, 242, 243, 233, 232, 240, 227, 228,
+ 229, 230, 104, 0, 0, 10, 112, 113, 114, 0,
+ 0, 115, 77, 0, 0, 136, 20, 109, 163, 0,
+ 0, 0, 0, 169, 0, 0, 167, 168, 106, 0,
+ 0, 133, 123, 0, 0, 0, 0, 16, 131, 21,
+ 183, 185, 186, 184, 0, 0, 187, 133, 125, 122,
+ 0, 0, 0, 127, 133, 0, 22, 0, 0, 0,
+ 0, 133, 12, 19, 0, 166, 0, 124, 133, 0,
+ 23, 126, 0, 0, 0, 128, 129
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -297, -297, -297, 112, -297, -297, -297, -297, -297, -167,
- -297, -297, 0, -28, -297, 3, -61, -297, -6, 161,
- -297, -297, -297, -297, -297, -297, -297, -297, -266, -297,
- -296, -68, -19, -92, -297, -137, -297, -297, -297, -49,
- -94, -53, -99, 15, -297, 218, 38, -51, 22, -182
+ -325, -325, -325, 114, -325, -325, -325, -325, -325, -221,
+ -325, -325, 0, -28, -325, 3, -63, -325, -6, 156,
+ -325, -325, -325, -325, -325, -325, -325, -325, -303, -325,
+ -324, -100, -16, -110, -325, -118, -325, -325, -69, -220,
+ 169, -325, -325, -325, -255, -325, -325, -76, -325, -57,
+ 264, 32, -43, 9, -188
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 67, 68, 69, 70, 71, 295, 296, 297, 298,
- 72, 373, 110, 92, 93, 301, 75, 76, 111, 112,
- 77, 217, 78, 79, 80, 81, 82, 83, 302, 303,
- 304, 113, 114, 285, 133, 115, 116, 117, 168, 169,
- 118, 119, 120, 152, 197, 170, 198, 122, 171, 172
+ 0, 67, 68, 69, 70, 71, 324, 325, 326, 327,
+ 72, 435, 111, 92, 93, 330, 75, 76, 112, 113,
+ 77, 228, 78, 79, 80, 81, 82, 83, 331, 332,
+ 333, 114, 115, 313, 138, 116, 117, 118, 348, 349,
+ 119, 120, 121, 256, 338, 122, 180, 181, 123, 124,
+ 182, 208, 126, 183, 184
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -908,315 +932,353 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 73, 138, 132, 74, 142, 158, 350, 160, 161, 91,
- 84, 204, 262, 127, 125, 338, 173, 340, 215, 126,
- 238, 131, 136, 134, 345, 293, 135, 196, 216, 91,
- 150, 150, 150, 150, 196, 140, 239, 143, 294, 351,
- 240, 204, 350, 147, 350, 151, 151, 151, 151, 350,
- 148, 309, 196, 195, 149, 350, 192, 193, 204, 173,
- 195, 184, 196, 91, 141, 73, 174, 145, 73, 218,
- 199, 74, 350, 286, 286, 286, 85, 199, 195, 350,
- 242, 235, 353, 350, 190, 191, 192, 193, 195, 350,
- 368, 237, 350, 129, 130, 199, 175, 207, 337, 375,
- 189, 190, 191, 192, 193, 199, 379, 208, 358, 167,
- 380, 381, 385, 226, 153, 154, 155, 209, 388, 287,
- 288, 219, 220, 221, 222, 91, 225, 359, 227, 213,
- 244, 236, 307, 308, 241, 177, 178, 179, 180, 202,
- 203, 91, 204, 242, 283, 184, 205, 206, 305, 228,
- 289, 306, 318, 339, 369, 341, 342, 343, 223, 348,
- 363, 367, 299, 371, 238, 372, 177, 178, 179, 180,
- 202, 203, 383, 204, 387, 391, 184, 205, 206, 392,
- 144, 362, 187, 188, 189, 190, 191, 192, 193, 137,
- 316, 284, 284, 284, 230, 243, 0, 0, 0, 0,
- 0, 73, 0, 0, 282, 0, 0, 0, 0, 0,
- 131, 131, 131, 187, 188, 189, 190, 191, 192, 193,
- 0, 224, 0, 73, 73, 0, 0, 0, 121, 124,
- 0, 0, 0, 0, 0, 0, 0, 128, 201, 315,
- 0, 0, 0, 0, 0, 0, 121, 177, 178, 179,
- 180, 202, 203, 0, 204, 0, 0, 184, 205, 206,
- 0, 0, 0, 0, 177, 178, 179, 180, 202, 203,
- 0, 204, 0, 0, 184, 205, 206, 0, 0, 0,
- 139, 73, 0, 73, 0, 0, 0, 0, 0, 0,
- 73, 146, 0, 347, 187, 188, 189, 190, 191, 192,
- 193, 0, 73, 0, 0, 73, 0, 0, 0, 0,
- 0, 187, 188, 189, 190, 191, 192, 193, 0, 361,
- 156, 157, 234, 159, 0, 0, 163, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 73, 73,
- 73, 200, 357, 0, 0, 73, 0, 91, 214, 0,
- 0, 73, 0, 0, 73, 0, 73, 366, 0, 0,
- 0, 0, 0, 0, 374, 73, 0, 0, 73, 0,
- 0, 0, 73, 0, 0, 73, 0, 0, 73, 73,
- 0, 386, 0, 0, 73, 73, 0, 0, 73, 0,
- 0, 0, 0, 0, 0, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
- 260, 261, 0, 0, 0, 0, 0, 0, 0, 0,
- 249, 250, 251, 253, 254, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 291, 292, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 310, 311, 0, 312, 0, 0, 0,
- 317, 0, 319, 177, 178, 179, 180, 202, 203, 0,
- 204, 0, 0, 184, 205, 206, 0, 0, 0, 0,
- 0, 320, 321, 322, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 332, 333, 334, 335, 336, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 344, 0, 0,
- 187, 188, 189, 190, 191, 192, 193, 0, 0, 233,
- 0, 234, 0, 0, 352, 0, 0, 0, 0, 0,
+ 73, 144, 148, 74, 84, 137, 383, 395, 385, 91,
+ 214, 322, 214, 131, 129, 390, 185, 226, 290, 130,
+ 266, 136, 142, 140, 323, 207, 141, 227, 270, 91,
+ 408, 396, 207, 242, 214, 146, 153, 196, 244, 246,
+ 243, 156, 157, 158, 159, 245, 247, 162, 133, 134,
+ 172, 173, 207, 202, 203, 204, 205, 204, 205, 395,
+ 207, 395, 248, 91, 147, 73, 395, 151, 73, 249,
+ 85, 74, 395, 354, 250, 149, 201, 202, 203, 204,
+ 205, 251, 209, 336, 399, 400, 401, 402, 337, 209,
+ 405, 252, 154, 253, 267, 254, 155, 255, 268, 443,
+ 444, 217, 314, 314, 314, 170, 395, 185, 430, 209,
+ 179, 315, 316, 186, 395, 187, 218, 209, 395, 237,
+ 382, 219, 229, 230, 438, 395, 231, 232, 395, 91,
+ 233, 442, 236, 223, 238, 170, 257, 258, 449, 272,
+ 311, 263, 264, 265, 269, 452, 270, 91, 317, 413,
+ 319, 334, 335, 363, 384, 239, 386, 424, 387, 388,
+ 393, 266, 418, 425, 429, 431, 433, 434, 414, 437,
+ 447, 328, 417, 451, 455, 456, 189, 190, 191, 192,
+ 212, 213, 150, 214, 143, 426, 196, 215, 216, 351,
+ 139, 361, 241, 0, 271, 0, 0, 0, 0, 0,
+ 350, 350, 352, 353, 312, 312, 312, 0, 0, 0,
+ 0, 73, 0, 0, 310, 0, 0, 0, 0, 0,
+ 136, 136, 136, 199, 200, 201, 202, 203, 204, 205,
+ 0, 0, 0, 0, 73, 73, 0, 0, 234, 0,
+ 0, 0, 0, 0, 0, 0, 189, 190, 191, 192,
+ 212, 213, 0, 214, 0, 0, 196, 215, 216, 0,
+ 0, 0, 350, 0, 0, 0, 0, 360, 0, 0,
+ 0, 0, 0, 0, 125, 128, 0, 0, 0, 0,
+ 0, 398, 0, 132, 0, 0, 403, 404, 0, 406,
+ 407, 0, 125, 199, 200, 201, 202, 203, 204, 205,
+ 0, 235, 0, 189, 190, 191, 192, 212, 213, 73,
+ 214, 73, 0, 196, 215, 216, 0, 0, 73, 0,
+ 0, 0, 392, 0, 0, 0, 145, 0, 0, 0,
+ 0, 73, 0, 0, 73, 0, 0, 152, 0, 0,
+ 0, 0, 420, 421, 422, 423, 0, 0, 0, 0,
+ 199, 200, 201, 202, 203, 204, 205, 0, 0, 261,
+ 0, 262, 0, 0, 416, 0, 160, 161, 403, 0,
+ 171, 0, 0, 175, 0, 0, 0, 0, 0, 0,
+ 445, 0, 0, 73, 73, 73, 0, 412, 0, 0,
+ 73, 210, 91, 0, 0, 0, 73, 0, 224, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
+ 0, 73, 428, 0, 0, 0, 0, 0, 0, 436,
+ 0, 0, 0, 0, 0, 0, 0, 73, 0, 0,
+ 73, 0, 0, 0, 73, 0, 0, 0, 73, 0,
+ 0, 73, 73, 0, 450, 0, 0, 0, 73, 73,
+ 0, 0, 73, 273, 274, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+ 0, 0, 0, 0, 0, 0, 277, 278, 279, 281,
+ 282, 0, 0, 0, 0, 211, 0, 0, 0, 0,
+ 0, 0, 320, 321, 189, 190, 191, 192, 212, 213,
+ 0, 214, 0, 0, 196, 215, 216, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 95, 1, 164, 165, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 370, 0, 0,
- 0, 30, 31, 104, 33, 34, 35, 377, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 0, 0, 0, 106, 107, 0,
- 0, 0, 0, 0, 123, 0, 109, 0, 166, 94,
+ 0, 0, 0, 0, 0, 0, 0, 355, 356, 0,
+ 357, 0, 0, 0, 362, 0, 364, 0, 0, 0,
+ 0, 199, 200, 201, 202, 203, 204, 205, 0, 0,
+ 0, 0, 0, 0, 0, 365, 366, 367, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 389, 0, 94, 95, 1, 176, 177, 0, 98,
+ 99, 100, 101, 6, 0, 0, 0, 8, 0, 397,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
+ 0, 0, 0, 0, 30, 31, 104, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
+ 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
+ 107, 108, 0, 0, 0, 0, 0, 127, 432, 110,
+ 0, 178, 94, 95, 1, 96, 97, 0, 98, 99,
+ 100, 101, 6, 0, 0, 440, 8, 0, 0, 0,
+ 12, 13, 0, 15, 86, 188, 18, 0, 87, 88,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 189,
+ 190, 191, 192, 193, 194, 104, 195, 34, 35, 196,
+ 197, 198, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 105, 57, 58, 106, 60, 61, 89, 0,
+ 0, 0, 0, 0, 0, 90, 199, 200, 201, 202,
+ 203, 204, 205, 0, 0, 206, 127, 0, 110, 94,
95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 176, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 177, 178, 179, 180,
- 181, 182, 104, 183, 34, 35, 184, 185, 186, 38,
+ 0, 0, 0, 8, 0, 0, 0, 12, 220, 0,
+ 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 189, 190, 191, 192,
+ 193, 194, 104, 195, 221, 222, 196, 197, 198, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
- 57, 58, 105, 60, 61, 89, 0, 0, 0, 0,
- 0, 0, 90, 187, 188, 189, 190, 191, 192, 193,
- 0, 0, 194, 123, 0, 109, 94, 95, 1, 96,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 105,
+ 57, 58, 106, 60, 61, 89, 0, 0, 0, 0,
+ 0, 0, 90, 199, 200, 201, 202, 203, 204, 205,
+ 0, 0, 206, 127, 0, 110, 94, 95, 1, 96,
97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 210, 0, 15, 86, 17,
+ 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 177, 178, 179, 180, 181, 182, 104,
- 183, 211, 212, 184, 185, 186, 38, 39, 40, 41,
+ 27, 0, 0, 189, 190, 191, 192, 193, 194, 104,
+ 195, 34, 35, 196, 197, 198, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 0, 57, 58, 105,
+ 51, 52, 53, 54, 55, 56, 105, 57, 58, 106,
60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
- 187, 188, 189, 190, 191, 192, 193, 0, 0, 194,
- 123, 0, 109, 94, 95, 1, 96, 97, 0, 98,
+ 199, 200, 201, 202, 203, 204, 205, 0, 0, 206,
+ 127, 0, 110, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 0, 12, 13, 0, 15, 86, 240, 18, 0, 87,
88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 177, 178, 179, 180, 181, 182, 104, 183, 34, 35,
- 184, 185, 186, 38, 39, 40, 41, 42, 43, 44,
+ 189, 190, 191, 192, 193, 194, 104, 195, 34, 35,
+ 196, 197, 198, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 0, 57, 58, 105, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 187, 188, 189,
- 190, 191, 192, 193, 0, 0, 194, 123, 0, 109,
+ 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
+ 0, 0, 0, 0, 0, 0, 90, 199, 200, 201,
+ 202, 203, 204, 205, 0, 0, 0, 127, 0, 110,
94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 229, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 177, 178, 179,
- 180, 181, 182, 104, 183, 34, 35, 184, 185, 186,
+ 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 104, 33, 34, 35, 0, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 187, 188, 189, 190, 191, 192,
- 193, 0, 0, 0, 123, 0, 109, 94, 95, 1,
+ 105, 57, 58, 106, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 0, 0, 0, 107, 108, 0,
+ 0, 0, 0, 0, 127, 174, 110, 94, 95, 1,
96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
+ 0, 102, 0, 0, 0, 12, 13, 0, 103, 86,
17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
104, 33, 34, 35, 0, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 0, 57, 58,
- 105, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 0, 0, 0, 106, 107, 0, 0, 0, 0,
- 0, 123, 162, 109, 94, 95, 1, 96, 97, 0,
- 98, 99, 100, 101, 6, 0, 0, 0, 102, 0,
- 0, 0, 12, 13, 0, 103, 86, 17, 18, 0,
+ 0, 51, 52, 53, 54, 55, 56, 105, 57, 58,
+ 106, 60, 61, 89, 0, 0, 0, 0, 0, 0,
+ 90, 0, 0, 0, 107, 108, 0, 0, 0, 0,
+ 0, 109, 0, 110, 94, 95, 1, 96, 97, 0,
+ 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
0, 0, 0, 0, 0, 30, 31, 104, 33, 34,
35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 0, 57, 58, 105, 60, 61,
+ 53, 54, 55, 56, 105, 57, 58, 106, 60, 61,
89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 106, 107, 0, 0, 0, 0, 0, 108, 0,
- 109, 94, 95, 1, 96, 97, 0, 98, 99, 100,
+ 0, 107, 108, 0, 0, 0, 0, 0, 127, 0,
+ 110, 94, 95, 1, 96, 97, 0, 98, 99, 100,
101, 6, 0, 0, 0, 8, 0, 0, 0, 12,
13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
0, 0, 30, 31, 104, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 105, 60, 61, 89, 0, 0,
- 0, 0, 0, 0, 90, 0, 0, 0, 106, 107,
- 0, 0, 0, 0, 0, 123, 0, 109, 94, 95,
+ 56, 105, 57, 58, 106, 60, 61, 89, 0, 0,
+ 0, 0, 0, 0, 90, 0, 0, 0, 107, 108,
+ 0, 0, 0, 0, 0, 109, 0, 110, 94, 95,
1, 96, 97, 0, 98, 99, 100, 101, 6, 0,
0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
31, 104, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 105, 60, 61, 89, 0, 0, 0, 0, 0,
- 0, 90, 0, 0, 0, 106, 107, 0, 0, 0,
- 0, 0, 108, 0, 109, 94, 95, 1, 96, 97,
+ 50, 0, 51, 52, 53, 54, 55, 56, 105, 57,
+ 58, 59, 60, 61, 89, 0, 0, 0, 0, 0,
+ 0, 90, 0, 0, 0, 107, 108, 0, 0, 0,
+ 0, 0, 127, 0, 110, 94, 95, 1, 96, 97,
0, 98, 99, 100, 101, 6, 0, 0, 0, 8,
0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
0, 0, 0, 0, 0, 0, 30, 31, 104, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 34, 35, 0, 36, 37, 38, 339, 40, 340, 42,
+ 341, 44, 342, 46, 47, 48, 49, 50, 0, 51,
+ 52, 343, 344, 345, 56, 105, 57, 346, 347, 60,
61, 89, 0, 0, 0, 0, 0, 0, 90, 0,
- 0, 0, 106, 107, 0, 0, 0, 0, 0, 123,
- 0, 109, 94, 95, 1, 96, 97, 0, 98, 99,
+ 0, 0, 107, 108, 0, 0, 0, 0, 0, 127,
+ 0, 110, 94, 95, 1, 96, 97, 0, 98, 99,
100, 101, 6, 0, 0, 0, 8, 0, 0, 0,
12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
0, 0, 0, 30, 31, 104, 33, 34, 35, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 89, 0,
- 0, 0, 0, 0, 0, 90, 0, 0, 0, 106,
- 107, 0, 0, 94, 95, 1, 96, 97, 109, 98,
+ 46, 47, 48, 49, 50, 0, 51, 52, 343, 344,
+ 55, 56, 105, 57, 346, 347, 60, 61, 89, 0,
+ 0, 0, 0, 0, 0, 90, 0, 0, 0, 107,
+ 108, 0, 0, 0, 0, 0, 127, 0, 110, 94,
+ 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 104, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 105,
+ 57, 58, 106, 60, 61, 89, 0, 0, 0, 0,
+ 0, 0, 90, 0, 0, 0, 107, 108, 0, 0,
+ 0, 0, 0, 127, 0, 110, 94, 95, 1, 96,
+ 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
+ 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 0, 0, 104,
+ 33, 34, 35, 0, 0, 0, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 105, 57, 58, 106,
+ 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
+ 0, 0, 0, 107, 108, 0, 0, 0, 0, 0,
+ 127, 0, 110, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 104, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 0, 0, 0, 0, 0, 0, 104, 0, 34, 35,
+ 0, 0, 0, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 0, 57, 58, 105, 60, 61, 89,
+ 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
- 106, 107, 0, 0, 0, 0, 0, 123, 0, 109,
- 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 33, 34, 35, 0, 0, 0,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 0, 57, 58, 105, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 0, 0, 0, 106, 107, 0,
- 0, 0, 0, 0, 123, 0, 109, 94, 95, 1,
- 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 127, 0, 110,
+ 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
+ 62, 63, 64, 0, 0, 0, 1, 65, 0, 0,
+ 2, 3, 4, 5, 6, 409, 66, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
+ 62, 63, 0, 0, 410, 0, 1, 65, 0, 0,
+ 2, 3, 4, 5, 6, 0, 329, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
+ 62, 63, 0, 0, 0, 0, 394, 65, 0, 0,
+ 0, 0, 0, 1, 0, 0, 329, 2, 3, 4,
+ 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 415, 1, 65, 0, 419, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 439, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 446, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 453, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 454, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 309, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 411, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
+ 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
+ 5, 6, 0, 427, 7, 8, 9, 10, 0, 12,
+ 13, 0, 15, 16, 17, 18, 19, 87, 21, 0,
+ 22, 0, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 89, 63, 0,
+ 0, 1, 358, 359, 65, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
+ 57, 58, 59, 60, 61, 89, 0, 0, 0, 1,
+ 0, 0, 90, 2, 3, 4, 5, 6, 0, 0,
0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 104, 0, 34, 35, 0, 0, 0, 38, 39, 40,
+ 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 0, 57, 58,
- 105, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 123, 0, 109, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
- 1, 65, 0, 0, 2, 3, 4, 5, 6, 354,
- 66, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 0, 0, 355, 0,
- 1, 65, 0, 0, 2, 3, 4, 5, 6, 0,
- 300, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
- 349, 65, 0, 0, 0, 0, 0, 1, 0, 0,
- 300, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 360, 1, 65, 0,
- 364, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 376, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 382, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 389, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 390, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 281, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 300, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 356, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 365, 7, 8,
- 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
- 19, 87, 21, 0, 22, 0, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 0, 51, 52, 53, 54, 55, 56, 135, 57, 58,
+ 59, 60, 61, 89, 0, 0, 0, 1, 0, 0,
+ 90, 2, 3, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
+ 0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
+ 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 89, 63, 0, 0, 1, 313, 314, 65, 2,
+ 61, 89, 0, 0, 0, 1, 0, 0, 90, 2,
3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 0, 57, 58, 59, 60, 61, 89,
+ 45, 163, 164, 165, 166, 167, 0, 51, 168, 53,
+ 54, 55, 169, 0, 57, 58, 59, 60, 61, 89,
0, 0, 0, 1, 0, 0, 90, 2, 3, 4,
5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
@@ -1224,7 +1286,7 @@ static const yytype_int16 yytable[] =
0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
+ 225, 0, 57, 58, 59, 60, 61, 89, 0, 0,
0, 1, 0, 0, 90, 98, 99, 4, 5, 6,
0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
@@ -1232,107 +1294,126 @@ static const yytype_int16 yytable[] =
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
- 57, 58, 59, 60, 61, 89, 263, 264, 265, 266,
- 267, 268, 90, 269, 0, 0, 270, 271, 272, 177,
- 178, 179, 180, 202, 203, 0, 204, 0, 0, 184,
- 205, 206, 177, 178, 179, 180, 202, 203, 0, 204,
- 0, 0, 184, 205, 206, 0, 0, 0, 0, 0,
- 0, 0, 0, 273, 274, 275, 276, 277, 278, 279,
- 0, 0, 280, 0, 0, 0, 187, 188, 189, 190,
- 191, 192, 193, 0, 290, 0, 0, 0, 0, 187,
- 188, 189, 190, 191, 192, 193, 0, 346, 177, 178,
- 179, 180, 202, 203, 0, 204, 0, 0, 184, 205,
- 206, 177, 178, 179, 180, 202, 203, 0, 204, 0,
- 0, 184, 205, 206, 0, 0, 0, 0, 0, 0,
- 177, 178, 179, 180, 202, 203, 0, 204, 0, 0,
- 184, 205, 206, 0, 0, 187, 188, 189, 190, 191,
- 192, 193, 0, 378, 0, 0, 0, 0, 187, 188,
- 189, 190, 191, 192, 193, 0, 384, 231, 232, 0,
- 0, 0, 0, 0, 0, 0, 0, 187, 188, 189,
- 190, 191, 192, 193, 177, 178, 179, 180, 202, 203,
- 0, 204, 0, 0, 184, 205, 206, 263, 264, 265,
- 266, 267, 268, 0, 269, 0, 0, 270, 271, 272,
- 177, 178, 179, 180, 0, 0, 0, 204, 0, 0,
- 184, 205, 206, 0, 0, 0, 0, 0, 0, 0,
- 0, 187, 188, 189, 190, 191, 192, 193, 0, 0,
- 0, 0, 0, 0, 273, 274, 275, 276, 277, 278,
- 279, 0, 0, 0, 0, 0, 0, 187, 188, 189,
- 190, 191, 192, 193
+ 57, 58, 59, 60, 61, 89, 189, 190, 191, 192,
+ 212, 213, 90, 214, 0, 0, 196, 215, 216, 291,
+ 292, 293, 294, 295, 296, 0, 297, 0, 0, 298,
+ 299, 300, 189, 190, 191, 192, 212, 213, 0, 214,
+ 0, 0, 196, 215, 216, 0, 0, 0, 0, 0,
+ 0, 0, 0, 199, 200, 201, 202, 203, 204, 205,
+ 0, 0, 0, 0, 262, 0, 301, 302, 303, 304,
+ 305, 306, 307, 0, 0, 308, 0, 0, 0, 199,
+ 200, 201, 202, 203, 204, 205, 0, 318, 189, 190,
+ 191, 192, 212, 213, 0, 214, 0, 0, 196, 215,
+ 216, 189, 190, 191, 192, 212, 213, 0, 214, 0,
+ 0, 196, 215, 216, 189, 190, 191, 192, 212, 213,
+ 0, 214, 0, 0, 196, 215, 216, 0, 0, 0,
+ 0, 0, 0, 0, 0, 199, 200, 201, 202, 203,
+ 204, 205, 0, 391, 0, 0, 0, 0, 199, 200,
+ 201, 202, 203, 204, 205, 0, 441, 0, 0, 0,
+ 0, 199, 200, 201, 202, 203, 204, 205, 0, 448,
+ 189, 190, 191, 192, 212, 213, 0, 214, 0, 0,
+ 196, 215, 216, 189, 190, 191, 192, 212, 213, 0,
+ 214, 0, 0, 196, 215, 216, 0, 0, 0, 291,
+ 292, 293, 294, 295, 296, 0, 297, 259, 260, 298,
+ 299, 300, 0, 0, 0, 0, 0, 199, 200, 201,
+ 202, 203, 204, 205, 0, 0, 0, 0, 0, 0,
+ 199, 200, 201, 202, 203, 204, 205, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
+ 305, 306, 307, 189, 190, 191, 192, 0, 0, 0,
+ 214, 0, 0, 196, 215, 216, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 199, 200, 201, 202, 203, 204, 205
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 0, 65, 104, 302, 106, 107, 9,
- 31, 49, 194, 19, 14, 281, 99, 283, 34, 31,
- 103, 21, 28, 23, 290, 84, 26, 121, 44, 29,
- 98, 99, 100, 101, 128, 63, 98, 0, 97, 305,
- 102, 49, 338, 97, 340, 98, 99, 100, 101, 345,
- 97, 233, 146, 121, 98, 351, 94, 95, 49, 99,
- 128, 52, 156, 63, 64, 65, 97, 73, 68, 33,
- 121, 68, 368, 210, 211, 212, 97, 128, 146, 375,
- 98, 103, 100, 379, 92, 93, 94, 95, 156, 385,
- 356, 102, 388, 36, 37, 146, 97, 125, 280, 365,
- 91, 92, 93, 94, 95, 156, 372, 97, 15, 109,
- 97, 98, 378, 141, 99, 100, 101, 97, 384, 211,
- 212, 97, 97, 97, 97, 125, 97, 34, 97, 129,
- 26, 103, 231, 232, 102, 42, 43, 44, 45, 46,
- 47, 141, 49, 98, 97, 52, 53, 54, 97, 149,
- 44, 26, 100, 16, 34, 97, 97, 97, 34, 97,
- 97, 97, 223, 97, 103, 97, 42, 43, 44, 45,
- 46, 47, 97, 49, 97, 97, 52, 53, 54, 97,
- 68, 348, 89, 90, 91, 92, 93, 94, 95, 28,
- 239, 210, 211, 212, 156, 173, -1, -1, -1, -1,
- -1, 201, -1, -1, 201, -1, -1, -1, -1, -1,
- 210, 211, 212, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, 223, 224, -1, -1, -1, 10, 11,
- -1, -1, -1, -1, -1, -1, -1, 19, 33, 239,
- -1, -1, -1, -1, -1, -1, 28, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- 62, 281, -1, 283, -1, -1, -1, -1, -1, -1,
- 290, 73, -1, 293, 89, 90, 91, 92, 93, 94,
- 95, -1, 302, -1, -1, 305, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 347,
- 102, 103, 100, 105, -1, -1, 108, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
- 340, 123, 339, -1, -1, 345, -1, 347, 130, -1,
- -1, 351, -1, -1, 354, -1, 356, 354, -1, -1,
- -1, -1, -1, -1, 364, 365, -1, -1, 368, -1,
- -1, -1, 372, -1, -1, 375, -1, -1, 378, 379,
- -1, 381, -1, -1, 384, 385, -1, -1, 388, -1,
- -1, -1, -1, -1, -1, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, -1, -1, -1, -1, -1, -1, -1, -1,
- 202, 203, 204, 205, 206, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 217, 218, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 235, 236, -1, 238, -1, -1, -1,
- 242, -1, 244, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 277, 278, 279, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 289, -1, -1,
+ 0, 29, 65, 0, 31, 21, 309, 331, 311, 9,
+ 49, 84, 49, 19, 14, 318, 99, 34, 206, 31,
+ 103, 21, 28, 23, 97, 125, 26, 44, 98, 29,
+ 100, 334, 132, 69, 49, 63, 97, 52, 69, 69,
+ 76, 98, 99, 100, 101, 76, 76, 104, 36, 37,
+ 107, 108, 152, 92, 93, 94, 95, 94, 95, 383,
+ 160, 385, 69, 63, 64, 65, 390, 73, 68, 76,
+ 97, 68, 396, 261, 69, 0, 91, 92, 93, 94,
+ 95, 76, 125, 23, 339, 340, 341, 342, 28, 132,
+ 345, 55, 97, 57, 98, 59, 98, 61, 102, 97,
+ 98, 129, 220, 221, 222, 105, 430, 99, 411, 152,
+ 110, 221, 222, 97, 438, 97, 97, 160, 442, 147,
+ 308, 97, 33, 97, 427, 449, 97, 97, 452, 129,
+ 97, 434, 97, 133, 97, 135, 28, 28, 441, 26,
+ 97, 103, 103, 102, 102, 448, 98, 147, 44, 15,
+ 28, 97, 26, 100, 16, 155, 97, 28, 97, 97,
+ 97, 103, 97, 71, 97, 34, 97, 97, 34, 71,
+ 97, 234, 393, 97, 97, 97, 42, 43, 44, 45,
+ 46, 47, 68, 49, 28, 405, 52, 53, 54, 258,
+ 21, 267, 160, -1, 185, -1, -1, -1, -1, -1,
+ 257, 258, 259, 260, 220, 221, 222, -1, -1, -1,
+ -1, 211, -1, -1, 211, -1, -1, -1, -1, -1,
+ 220, 221, 222, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, 234, 235, -1, -1, 34, -1,
+ -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, 319, -1, -1, -1, -1, 267, -1, -1,
+ -1, -1, -1, -1, 10, 11, -1, -1, -1, -1,
+ -1, 338, -1, 19, -1, -1, 343, 344, -1, 346,
+ 347, -1, 28, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, -1, 42, 43, 44, 45, 46, 47, 309,
+ 49, 311, -1, 52, 53, 54, -1, -1, 318, -1,
+ -1, -1, 322, -1, -1, -1, 62, -1, -1, -1,
+ -1, 331, -1, -1, 334, -1, -1, 73, -1, -1,
+ -1, -1, 399, 400, 401, 402, -1, -1, -1, -1,
89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- -1, 100, -1, -1, 306, -1, -1, -1, -1, -1,
+ -1, 100, -1, -1, 392, -1, 102, 103, 425, -1,
+ 106, -1, -1, 109, -1, -1, -1, -1, -1, -1,
+ 437, -1, -1, 383, 384, 385, -1, 384, -1, -1,
+ 390, 127, 392, -1, -1, -1, 396, -1, 134, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 409,
+ -1, 411, 409, -1, -1, -1, -1, -1, -1, 419,
+ -1, -1, -1, -1, -1, -1, -1, 427, -1, -1,
+ 430, -1, -1, -1, 434, -1, -1, -1, 438, -1,
+ -1, 441, 442, -1, 444, -1, -1, -1, 448, 449,
+ -1, -1, 452, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ -1, -1, -1, -1, -1, -1, 212, 213, 214, 215,
+ 216, -1, -1, -1, -1, 33, -1, -1, -1, -1,
+ -1, -1, 228, 229, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, 359, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, 369, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
+ -1, -1, -1, -1, -1, -1, -1, 263, 264, -1,
+ 266, -1, -1, -1, 270, -1, 272, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, -1, 291, 292, 293, 294, 295,
+ 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
+ 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 317, -1, 5, 6, 7, 8, 9, -1, 11,
+ 12, 13, 14, 15, -1, -1, -1, 19, -1, 335,
+ -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
+ 92, 93, -1, -1, -1, -1, -1, 99, 414, 101,
+ -1, 103, 5, 6, 7, 8, 9, -1, 11, 12,
+ 13, 14, 15, -1, -1, 431, 19, -1, -1, -1,
+ 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, -1, -1, 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, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
+ -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 98, 99, -1, 101, 5,
6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
-1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
36, 37, -1, 39, -1, -1, 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, -1, 69, 70, 71, 72, 73, 74, -1,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
-1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
-1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
@@ -1342,7 +1423,7 @@ static const yytype_int16 yycheck[] =
39, -1, -1, 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, -1,
- 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
@@ -1352,36 +1433,36 @@ static const yytype_int16 yycheck[] =
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, -1, 69, 70, 71,
- 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
-1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
+ 92, 93, 94, 95, -1, -1, -1, 99, -1, 101,
5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
-1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, 100, 101, 5, 6, 7,
8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
-1, 39, -1, -1, -1, -1, -1, -1, 46, 47,
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, 100, 101, 5, 6, 7, 8, 9, -1,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
-1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
-1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
-1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
101, 5, 6, 7, 8, 9, -1, 11, 12, 13,
@@ -1391,7 +1472,7 @@ static const yytype_int16 yycheck[] =
-1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
+ 74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
-1, -1, -1, -1, 88, -1, -1, -1, 92, 93,
-1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
@@ -1400,7 +1481,7 @@ static const yytype_int16 yycheck[] =
37, -1, 39, -1, -1, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, -1, -1, -1, -1, -1,
-1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
-1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
@@ -1410,7 +1491,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, -1, -1, -1, -1, -1, -1, 88, -1,
-1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
-1, 101, 5, 6, 7, 8, 9, -1, 11, 12,
@@ -1420,150 +1501,174 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, -1,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
-1, -1, -1, -1, -1, 88, -1, -1, -1, 92,
- 93, -1, -1, 5, 6, 7, 8, 9, 101, 11,
+ 93, -1, -1, -1, -1, -1, 99, -1, 101, 5,
+ 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
+ -1, -1, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ -1, -1, 88, -1, -1, -1, 92, 93, -1, -1,
+ -1, -1, -1, 99, -1, 101, 5, 6, 7, 8,
+ 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
+ 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
+ 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, -1, -1, -1, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
+ -1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
+ 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ -1, -1, -1, -1, -1, -1, 48, -1, 50, 51,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
-1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
- 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
- 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
+ -1, -1, -1, -1, -1, -1, 7, 99, -1, 101,
+ 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, 16, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, 85, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, -1, -1, 87, 88, -1, -1,
+ -1, -1, -1, 7, -1, -1, 97, 11, 12, 13,
+ 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, 10, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, -1, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, -1, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 7, 8, 9, 88, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
+ 76, 77, 78, 79, 80, 81, -1, -1, -1, 7,
+ -1, -1, 88, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
+ -1, 39, -1, -1, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
- 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
- -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, 16,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 87, 88, -1, -1, -1, -1, -1, 7, -1, -1,
- 97, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- 10, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, -1, -1, -1, 7, -1, -1,
+ 88, 11, 12, 13, 14, 15, -1, -1, -1, 19,
+ -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
+ -1, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 7, 8, 9, 88, 11,
+ 80, 81, -1, -1, -1, 7, -1, -1, 88, 11,
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
@@ -1592,26 +1697,31 @@ static const yytype_int16 yycheck[] =
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
-1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, 98, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
+ -1, -1, -1, -1, 100, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 98, -1, -1, -1, 89,
90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, 79, 80, -1,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- 42, 43, 44, 45, -1, -1, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, 42,
+ 43, 44, 45, 46, 47, -1, 49, 79, 80, 52,
+ 53, 54, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, 42, 43, 44, 45, -1, -1, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1628,36 +1738,42 @@ static const yytype_uint8 yystos[] =
108, 109, 114, 116, 119, 120, 121, 124, 126, 127,
128, 129, 130, 131, 31, 97, 27, 31, 32, 81,
88, 116, 117, 118, 5, 6, 8, 9, 11, 12,
- 13, 14, 19, 26, 48, 78, 92, 93, 99, 101,
- 116, 122, 123, 135, 136, 139, 140, 141, 144, 145,
- 146, 149, 151, 99, 149, 116, 31, 122, 149, 36,
- 37, 116, 136, 138, 116, 116, 122, 123, 117, 149,
- 117, 116, 120, 0, 107, 122, 149, 97, 97, 98,
- 135, 145, 147, 147, 147, 147, 149, 149, 146, 149,
- 146, 146, 100, 149, 8, 9, 103, 116, 142, 143,
- 149, 152, 153, 99, 97, 97, 28, 42, 43, 44,
- 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
- 92, 93, 94, 95, 98, 135, 144, 148, 150, 151,
- 149, 33, 46, 47, 49, 53, 54, 117, 97, 97,
- 24, 50, 51, 116, 149, 34, 44, 125, 33, 97,
- 97, 97, 97, 34, 97, 97, 117, 97, 116, 28,
- 150, 79, 80, 98, 100, 103, 103, 102, 103, 98,
- 102, 102, 98, 152, 26, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 153, 42, 43, 44, 45, 46, 47, 49,
- 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
- 98, 97, 119, 97, 136, 137, 139, 137, 137, 44,
- 97, 149, 149, 84, 97, 110, 111, 112, 113, 120,
- 97, 119, 132, 133, 134, 97, 26, 146, 146, 153,
- 149, 149, 149, 8, 9, 116, 143, 149, 100, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 153, 132, 16,
- 132, 97, 97, 97, 149, 132, 97, 116, 97, 87,
- 134, 132, 149, 100, 16, 85, 97, 119, 15, 34,
- 86, 117, 113, 97, 10, 97, 119, 97, 132, 34,
- 149, 97, 97, 115, 116, 132, 85, 149, 97, 132,
- 97, 98, 85, 97, 97, 132, 116, 97, 132, 86,
- 86, 97, 97
+ 13, 14, 19, 26, 48, 75, 78, 92, 93, 99,
+ 101, 116, 122, 123, 135, 136, 139, 140, 141, 144,
+ 145, 146, 149, 152, 153, 154, 156, 99, 154, 116,
+ 31, 122, 154, 36, 37, 75, 116, 136, 138, 144,
+ 116, 116, 122, 123, 117, 154, 117, 116, 120, 0,
+ 107, 122, 154, 97, 97, 98, 153, 153, 153, 153,
+ 154, 154, 153, 63, 64, 65, 66, 67, 70, 74,
+ 116, 154, 153, 153, 100, 154, 8, 9, 103, 116,
+ 150, 151, 154, 157, 158, 99, 97, 97, 28, 42,
+ 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
+ 90, 91, 92, 93, 94, 95, 98, 135, 155, 156,
+ 154, 33, 46, 47, 49, 53, 54, 117, 97, 97,
+ 24, 50, 51, 116, 154, 74, 34, 44, 125, 33,
+ 97, 97, 97, 97, 34, 97, 97, 117, 97, 116,
+ 28, 155, 69, 76, 69, 76, 69, 76, 69, 76,
+ 69, 76, 55, 57, 59, 61, 147, 28, 28, 79,
+ 80, 98, 100, 103, 103, 102, 103, 98, 102, 102,
+ 98, 157, 26, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 158, 42, 43, 44, 45, 46, 47, 49, 52, 53,
+ 54, 89, 90, 91, 92, 93, 94, 95, 98, 97,
+ 119, 97, 136, 137, 139, 137, 137, 44, 97, 28,
+ 154, 154, 84, 97, 110, 111, 112, 113, 120, 97,
+ 119, 132, 133, 134, 97, 26, 23, 28, 148, 56,
+ 58, 60, 62, 71, 72, 73, 77, 78, 142, 143,
+ 153, 142, 153, 153, 158, 154, 154, 154, 8, 9,
+ 116, 151, 154, 100, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 158, 132, 16, 132, 97, 97, 97, 154,
+ 132, 97, 116, 97, 87, 134, 132, 154, 153, 148,
+ 148, 148, 148, 153, 153, 148, 153, 153, 100, 16,
+ 85, 97, 119, 15, 34, 86, 117, 113, 97, 10,
+ 153, 153, 153, 153, 28, 71, 143, 97, 119, 97,
+ 132, 34, 154, 97, 97, 115, 116, 71, 132, 85,
+ 154, 97, 132, 97, 98, 153, 85, 97, 97, 132,
+ 116, 97, 132, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1677,14 +1793,17 @@ static const yytype_uint8 yyr1[] =
123, 123, 124, 124, 124, 124, 125, 125, 126, 126,
126, 127, 127, 128, 128, 128, 128, 129, 129, 129,
130, 130, 131, 132, 132, 133, 133, 134, 134, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 136,
- 137, 137, 138, 139, 139, 140, 140, 141, 141, 141,
- 142, 142, 143, 143, 143, 144, 145, 145, 146, 146,
- 146, 147, 147, 148, 148, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 151, 151, 152, 152, 153, 153
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 136, 137, 137, 138, 138, 139, 139, 140, 140,
+ 141, 141, 141, 141, 142, 142, 142, 142, 142, 143,
+ 144, 144, 144, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 145, 146, 146, 146, 146, 146, 147, 147,
+ 147, 147, 148, 148, 149, 149, 149, 150, 150, 151,
+ 151, 151, 152, 152, 153, 153, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 156, 156, 157, 157, 158, 158
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1704,14 +1823,17 @@ static const yytype_int8 yyr2[] =
4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 2, 4, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 2, 2, 2, 3, 3, 3,
- 1, 3, 3, 3, 3, 3, 2, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
+ 1, 1, 1, 2, 4, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+ 1, 1, 1, 5, 1, 1, 5, 2, 2, 2,
+ 2, 4, 4, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 6, 6, 6, 6, 6, 1, 1,
+ 1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
+ 3, 3, 2, 2, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 1, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -1983,33 +2105,33 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tVARID: /* tVARID */
-#line 191 "engines/director/lingo/lingo-gr.y"
+#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 2111 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 191 "engines/director/lingo/lingo-gr.y"
+#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2117 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 191 "engines/director/lingo/lingo-gr.y"
+#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2123 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 191 "engines/director/lingo/lingo-gr.y"
+#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2129 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 191 "engines/director/lingo/lingo-gr.y"
+#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2135 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2275,1191 +2397,1353 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 197 "engines/director/lingo/lingo-gr.y"
+#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2281 "engines/director/lingo/lingo-gr.cpp"
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 199 "engines/director/lingo/lingo-gr.y"
+#line 197 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2292 "engines/director/lingo/lingo-gr.cpp"
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 205 "engines/director/lingo/lingo-gr.y"
+#line 203 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2302 "engines/director/lingo/lingo-gr.cpp"
+#line 2424 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 212 "engines/director/lingo/lingo-gr.y"
+#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2308 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 245 "engines/director/lingo/lingo-gr.y"
+#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2314 "engines/director/lingo/lingo-gr.cpp"
+#line 2436 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 249 "engines/director/lingo/lingo-gr.y"
+#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2320 "engines/director/lingo/lingo-gr.cpp"
+#line 2442 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 251 "engines/director/lingo/lingo-gr.y"
+#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2326 "engines/director/lingo/lingo-gr.cpp"
+#line 2448 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 253 "engines/director/lingo/lingo-gr.y"
+#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2332 "engines/director/lingo/lingo-gr.cpp"
+#line 2454 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 257 "engines/director/lingo/lingo-gr.y"
+#line 255 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2343 "engines/director/lingo/lingo-gr.cpp"
+#line 2465 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
-#line 263 "engines/director/lingo/lingo-gr.y"
+#line 261 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2353 "engines/director/lingo/lingo-gr.cpp"
+#line 2475 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 270 "engines/director/lingo/lingo-gr.y"
+#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2359 "engines/director/lingo/lingo-gr.cpp"
+#line 2481 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 276 "engines/director/lingo/lingo-gr.y"
+#line 274 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2368 "engines/director/lingo/lingo-gr.cpp"
+#line 2490 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 280 "engines/director/lingo/lingo-gr.y"
+#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2375 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 285 "engines/director/lingo/lingo-gr.y"
+#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2381 "engines/director/lingo/lingo-gr.cpp"
+#line 2503 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 286 "engines/director/lingo/lingo-gr.y"
+#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2387 "engines/director/lingo/lingo-gr.cpp"
+#line 2509 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tABBREVIATED */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2393 "engines/director/lingo/lingo-gr.cpp"
+#line 2515 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tABBREV */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2399 "engines/director/lingo/lingo-gr.cpp"
+#line 2521 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tABBR */
-#line 294 "engines/director/lingo/lingo-gr.y"
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2405 "engines/director/lingo/lingo-gr.cpp"
+#line 2527 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tAFTER */
-#line 295 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2411 "engines/director/lingo/lingo-gr.cpp"
+#line 2533 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tAND */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2417 "engines/director/lingo/lingo-gr.cpp"
+#line 2539 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tBEFORE */
-#line 297 "engines/director/lingo/lingo-gr.y"
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2423 "engines/director/lingo/lingo-gr.cpp"
+#line 2545 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tCAST */
-#line 298 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2429 "engines/director/lingo/lingo-gr.cpp"
+#line 2551 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tCHAR */
-#line 299 "engines/director/lingo/lingo-gr.y"
+#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2435 "engines/director/lingo/lingo-gr.cpp"
+#line 2557 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tCHARS */
-#line 300 "engines/director/lingo/lingo-gr.y"
+#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2563 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tCONTAINS */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2447 "engines/director/lingo/lingo-gr.cpp"
+#line 2569 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tDATE */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2453 "engines/director/lingo/lingo-gr.cpp"
+#line 2575 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tDOWN */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2459 "engines/director/lingo/lingo-gr.cpp"
+#line 2581 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tFIELD */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2465 "engines/director/lingo/lingo-gr.cpp"
+#line 2587 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tFRAME */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2471 "engines/director/lingo/lingo-gr.cpp"
+#line 2593 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tIN */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2477 "engines/director/lingo/lingo-gr.cpp"
+#line 2599 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tINTERSECTS */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2483 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tINTO */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2489 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tITEM */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2495 "engines/director/lingo/lingo-gr.cpp"
+#line 2617 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tITEMS */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2501 "engines/director/lingo/lingo-gr.cpp"
+#line 2623 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tLAST */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2507 "engines/director/lingo/lingo-gr.cpp"
+#line 2629 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tLINE */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2513 "engines/director/lingo/lingo-gr.cpp"
+#line 2635 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tLINES */
-#line 321 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2519 "engines/director/lingo/lingo-gr.cpp"
+#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tLONG */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2647 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tMENU */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2531 "engines/director/lingo/lingo-gr.cpp"
+#line 2653 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tMENUITEM */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2537 "engines/director/lingo/lingo-gr.cpp"
+#line 2659 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tMENUITEMS */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2543 "engines/director/lingo/lingo-gr.cpp"
+#line 2665 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tMOD */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2549 "engines/director/lingo/lingo-gr.cpp"
+#line 2671 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tMOVIE */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2555 "engines/director/lingo/lingo-gr.cpp"
+#line 2677 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tNEXT */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2561 "engines/director/lingo/lingo-gr.cpp"
+#line 2683 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tNOT */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2567 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tNUMBER */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tOF */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2579 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tOPEN */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2585 "engines/director/lingo/lingo-gr.cpp"
+#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tOR */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tPREVIOUS */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tREPEAT */
-#line 341 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tSCRIPT */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2609 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* ID: tASSERTERROR */
-#line 343 "engines/director/lingo/lingo-gr.y"
+#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* ID: tSET */
-#line 344 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* ID: tSHORT */
-#line 345 "engines/director/lingo/lingo-gr.y"
+#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* ID: tSOUND */
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 344 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* ID: tSPRITE */
-#line 347 "engines/director/lingo/lingo-gr.y"
+#line 345 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* ID: tSTARTS */
-#line 348 "engines/director/lingo/lingo-gr.y"
+#line 346 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2767 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* ID: tTELL */
-#line 349 "engines/director/lingo/lingo-gr.y"
+#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2773 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* ID: tTIME */
-#line 352 "engines/director/lingo/lingo-gr.y"
+#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2779 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* ID: tTO */
-#line 353 "engines/director/lingo/lingo-gr.y"
+#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2785 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* ID: tWHILE */
-#line 355 "engines/director/lingo/lingo-gr.y"
+#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* ID: tWINDOW */
-#line 356 "engines/director/lingo/lingo-gr.y"
+#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2797 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* ID: tWITH */
-#line 357 "engines/director/lingo/lingo-gr.y"
+#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* ID: tWITHIN */
-#line 358 "engines/director/lingo/lingo-gr.y"
+#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* ID: tWORD */
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2815 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* ID: tWORDS */
-#line 360 "engines/director/lingo/lingo-gr.y"
+#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2821 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* idlist: %empty */
-#line 363 "engines/director/lingo/lingo-gr.y"
+#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2827 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* nonemptyidlist: ID */
-#line 367 "engines/director/lingo/lingo-gr.y"
+#line 365 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2714 "engines/director/lingo/lingo-gr.cpp"
+#line 2836 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 371 "engines/director/lingo/lingo-gr.y"
+#line 369 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2722 "engines/director/lingo/lingo-gr.cpp"
+#line 2844 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* proc: ID cmdargs '\n' */
-#line 394 "engines/director/lingo/lingo-gr.y"
+#line 392 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2728 "engines/director/lingo/lingo-gr.cpp"
+#line 2850 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* proc: tPUT cmdargs '\n' */
-#line 395 "engines/director/lingo/lingo-gr.y"
+#line 393 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2734 "engines/director/lingo/lingo-gr.cpp"
+#line 2856 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* proc: tGO cmdargs '\n' */
-#line 396 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2740 "engines/director/lingo/lingo-gr.cpp"
+#line 2862 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* proc: tGO frameargs '\n' */
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2746 "engines/director/lingo/lingo-gr.cpp"
+#line 2868 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* proc: tPLAY cmdargs '\n' */
-#line 398 "engines/director/lingo/lingo-gr.y"
+#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2752 "engines/director/lingo/lingo-gr.cpp"
+#line 2874 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* proc: tPLAY frameargs '\n' */
-#line 399 "engines/director/lingo/lingo-gr.y"
+#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2758 "engines/director/lingo/lingo-gr.cpp"
+#line 2880 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* proc: tNEXT tREPEAT '\n' */
-#line 400 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2764 "engines/director/lingo/lingo-gr.cpp"
+#line 2886 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* proc: tEXIT tREPEAT '\n' */
-#line 401 "engines/director/lingo/lingo-gr.y"
+#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2770 "engines/director/lingo/lingo-gr.cpp"
+#line 2892 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* proc: tEXIT '\n' */
-#line 402 "engines/director/lingo/lingo-gr.y"
+#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2776 "engines/director/lingo/lingo-gr.cpp"
+#line 2898 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* proc: tASSERTERROR stmtoneliner */
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2782 "engines/director/lingo/lingo-gr.cpp"
+#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* cmdargs: %empty */
-#line 406 "engines/director/lingo/lingo-gr.y"
+#line 404 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2790 "engines/director/lingo/lingo-gr.cpp"
+#line 2912 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* cmdargs: expr */
-#line 409 "engines/director/lingo/lingo-gr.y"
+#line 407 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2800 "engines/director/lingo/lingo-gr.cpp"
+#line 2922 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* cmdargs: expr ',' nonemptyexprlist */
-#line 414 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* cmdargs: expr expr_nounarymath */
-#line 418 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2820 "engines/director/lingo/lingo-gr.cpp"
+#line 2942 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 424 "engines/director/lingo/lingo-gr.y"
+#line 422 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2830 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* cmdargs: '(' ')' */
-#line 429 "engines/director/lingo/lingo-gr.y"
+#line 427 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2838 "engines/director/lingo/lingo-gr.cpp"
+#line 2960 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 432 "engines/director/lingo/lingo-gr.y"
+#line 430 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* frameargs: tFRAME expr */
-#line 442 "engines/director/lingo/lingo-gr.y"
+#line 440 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* frameargs: tMOVIE expr */
-#line 447 "engines/director/lingo/lingo-gr.y"
+#line 445 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2868 "engines/director/lingo/lingo-gr.cpp"
+#line 2990 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 453 "engines/director/lingo/lingo-gr.y"
+#line 451 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 3001 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* frameargs: expr tOF tMOVIE expr */
-#line 459 "engines/director/lingo/lingo-gr.y"
+#line 457 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 3012 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* frameargs: tFRAME expr expr_nounarymath */
-#line 465 "engines/director/lingo/lingo-gr.y"
+#line 463 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 473 "engines/director/lingo/lingo-gr.y"
+#line 471 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2907 "engines/director/lingo/lingo-gr.cpp"
+#line 3029 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 474 "engines/director/lingo/lingo-gr.y"
+#line 472 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2913 "engines/director/lingo/lingo-gr.cpp"
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 475 "engines/director/lingo/lingo-gr.y"
+#line 473 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 3041 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* asgn: tSET varorthe to expr '\n' */
-#line 476 "engines/director/lingo/lingo-gr.y"
+#line 474 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* definevars: tGLOBAL idlist '\n' */
-#line 481 "engines/director/lingo/lingo-gr.y"
+#line 479 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 3053 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* definevars: tPROPERTY idlist '\n' */
-#line 482 "engines/director/lingo/lingo-gr.y"
+#line 480 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 3059 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* definevars: tINSTANCE idlist '\n' */
-#line 483 "engines/director/lingo/lingo-gr.y"
+#line 481 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 2943 "engines/director/lingo/lingo-gr.cpp"
+#line 3065 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* ifstmt: tIF expr tTHEN stmt */
-#line 486 "engines/director/lingo/lingo-gr.y"
+#line 484 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 2952 "engines/director/lingo/lingo-gr.cpp"
+#line 3074 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+#line 488 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 2959 "engines/director/lingo/lingo-gr.cpp"
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 494 "engines/director/lingo/lingo-gr.y"
+#line 492 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 2970 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 500 "engines/director/lingo/lingo-gr.y"
+#line 498 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 3101 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 504 "engines/director/lingo/lingo-gr.y"
+#line 502 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 2988 "engines/director/lingo/lingo-gr.cpp"
+#line 3110 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 508 "engines/director/lingo/lingo-gr.y"
+#line 506 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 512 "engines/director/lingo/lingo-gr.y"
+#line 510 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3002 "engines/director/lingo/lingo-gr.cpp"
+#line 3124 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 514 "engines/director/lingo/lingo-gr.y"
+#line 512 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+#line 3131 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 516 "engines/director/lingo/lingo-gr.y"
+#line 514 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3138 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* tell: tTELL expr tTO stmtoneliner */
-#line 520 "engines/director/lingo/lingo-gr.y"
+#line 518 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3147 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 524 "engines/director/lingo/lingo-gr.y"
+#line 522 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* when: tWHEN ID tTHEN expr */
-#line 528 "engines/director/lingo/lingo-gr.y"
+#line 526 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3038 "engines/director/lingo/lingo-gr.cpp"
+#line 3160 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* stmtlist: %empty */
-#line 530 "engines/director/lingo/lingo-gr.y"
+#line 528 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3166 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* nonemptystmtlist: stmtlistline */
-#line 535 "engines/director/lingo/lingo-gr.y"
+#line 533 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3177 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 541 "engines/director/lingo/lingo-gr.y"
+#line 539 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3065 "engines/director/lingo/lingo-gr.cpp"
+#line 3187 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* stmtlistline: '\n' */
-#line 548 "engines/director/lingo/lingo-gr.y"
+#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+#line 3193 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* simpleexpr_noparens_nounarymath: tINT */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 139: /* simpleexpr_nounarymath: tINT */
+#line 553 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3077 "engines/director/lingo/lingo-gr.cpp"
+#line 3199 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* simpleexpr_noparens_nounarymath: tFLOAT */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 140: /* simpleexpr_nounarymath: tFLOAT */
+#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3083 "engines/director/lingo/lingo-gr.cpp"
+#line 3205 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* simpleexpr_noparens_nounarymath: tSYMBOL */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 141: /* simpleexpr_nounarymath: tSYMBOL */
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3089 "engines/director/lingo/lingo-gr.cpp"
+#line 3211 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* simpleexpr_noparens_nounarymath: tSTRING */
-#line 558 "engines/director/lingo/lingo-gr.y"
+ case 142: /* simpleexpr_nounarymath: tSTRING */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+#line 3217 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* simpleexpr_noparens_nounarymath: tNOT simpleexpr */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 143: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3101 "engines/director/lingo/lingo-gr.cpp"
+#line 3223 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* simpleexpr_noparens_nounarymath: ID '(' exprlist ')' */
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 144: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3107 "engines/director/lingo/lingo-gr.cpp"
+#line 3229 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 145: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 559 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = (yyvsp[-1].node); }
+#line 3235 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* var: ID */
+ case 151: /* var: ID */
#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3113 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* chunk: tFIELD simpleexpr_noparens */
+ case 156: /* chunk: tFIELD simpleexpr */
#line 577 "engines/director/lingo/lingo-gr.y"
- {
+ {
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3122 "engines/director/lingo/lingo-gr.cpp"
+#line 3250 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* chunk: tCAST simpleexpr_noparens */
+ case 157: /* chunk: tCAST simpleexpr */
#line 581 "engines/director/lingo/lingo-gr.y"
- {
+ {
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3131 "engines/director/lingo/lingo-gr.cpp"
+#line 3259 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* object: tSCRIPT simpleexpr_noparens */
+ case 158: /* object: tSCRIPT simpleexpr */
#line 587 "engines/director/lingo/lingo-gr.y"
- {
+ {
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3140 "engines/director/lingo/lingo-gr.cpp"
+#line 3268 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* object: tWINDOW simpleexpr_noparens */
+ case 159: /* object: tWINDOW simpleexpr */
#line 591 "engines/director/lingo/lingo-gr.y"
- {
+ {
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3149 "engines/director/lingo/lingo-gr.cpp"
+#line 3277 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 163: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 600 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
+#line 3283 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 166: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 605 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
+#line 3289 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 167: /* theobj: tSOUND simpleexpr */
+#line 606 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SoundNode((yyvsp[0].node)); }
+#line 3295 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 168: /* theobj: tSPRITE simpleexpr */
+#line 607 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
+#line 3301 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 169: /* menu: tMENU simpleexpr */
+#line 610 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuNode((yyvsp[0].node)); }
+#line 3307 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 170: /* writablethe: tTHE ID */
+#line 612 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNode((yyvsp[0].s)); }
+#line 3313 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 171: /* writablethe: tTHE ID tOF theobj */
+#line 613 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
+#line 3319 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 172: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 614 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
+#line 3325 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 173: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 617 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
+#line 3331 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 174: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 618 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
+#line 3337 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 175: /* thedatetime: tTHE tABBREV tDATE */
+#line 619 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
+#line 3343 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 176: /* thedatetime: tTHE tABBREV tTIME */
+#line 620 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
+#line 3349 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 177: /* thedatetime: tTHE tABBR tDATE */
+#line 621 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
+#line 3355 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 178: /* thedatetime: tTHE tABBR tTIME */
+#line 622 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
+#line 3361 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 179: /* thedatetime: tTHE tLONG tDATE */
+#line 623 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
+#line 3367 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 180: /* thedatetime: tTHE tLONG tTIME */
+#line 624 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
+#line 3373 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 181: /* thedatetime: tTHE tSHORT tDATE */
+#line 625 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
+#line 3379 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 182: /* thedatetime: tTHE tSHORT tTIME */
+#line 626 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
+#line 3385 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 183: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 630 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
+#line 3391 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 184: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 631 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 185: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 186: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 633 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 187: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 634 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
+#line 3415 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 188: /* chunktype: tCHAR */
+#line 637 "engines/director/lingo/lingo-gr.y"
+ { (yyval.chunktype) = kChunkChar; }
+#line 3421 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 189: /* chunktype: tWORD */
+#line 638 "engines/director/lingo/lingo-gr.y"
+ { (yyval.chunktype) = kChunkWord; }
+#line 3427 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 190: /* chunktype: tITEM */
+#line 639 "engines/director/lingo/lingo-gr.y"
+ { (yyval.chunktype) = kChunkItem; }
+#line 3433 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 191: /* chunktype: tLINE */
+#line 640 "engines/director/lingo/lingo-gr.y"
+ { (yyval.chunktype) = kChunkLine; }
+#line 3439 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* list: '[' exprlist ']' */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 194: /* list: '[' exprlist ']' */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3155 "engines/director/lingo/lingo-gr.cpp"
+#line 3445 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* list: '[' ':' ']' */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 195: /* list: '[' ':' ']' */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3161 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* list: '[' proplist ']' */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 196: /* list: '[' proplist ']' */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3167 "engines/director/lingo/lingo-gr.cpp"
+#line 3457 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* proplist: proppair */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 197: /* proplist: proppair */
+#line 650 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3466 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* proplist: proplist ',' proppair */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 198: /* proplist: proplist ',' proppair */
+#line 654 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3184 "engines/director/lingo/lingo-gr.cpp"
+#line 3474 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* proppair: tSYMBOL ':' expr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 199: /* proppair: tSYMBOL ':' expr */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3190 "engines/director/lingo/lingo-gr.cpp"
+#line 3480 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* proppair: ID ':' expr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 200: /* proppair: ID ':' expr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3196 "engines/director/lingo/lingo-gr.cpp"
+#line 3486 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* proppair: tSTRING ':' expr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 201: /* proppair: tSTRING ':' expr */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3202 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 165: /* parens: '(' expr ')' */
-#line 616 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = (yyvsp[-1].node); }
-#line 3208 "engines/director/lingo/lingo-gr.cpp"
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* unarymath: '+' simpleexpr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 202: /* unarymath: '+' simpleexpr */
+#line 664 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
+#line 3498 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* unarymath: '-' simpleexpr */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 203: /* unarymath: '-' simpleexpr */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3220 "engines/director/lingo/lingo-gr.cpp"
+#line 3504 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* expr: expr '+' expr */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 208: /* expr: expr '+' expr */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3226 "engines/director/lingo/lingo-gr.cpp"
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* expr: expr '-' expr */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 209: /* expr: expr '-' expr */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3232 "engines/director/lingo/lingo-gr.cpp"
+#line 3516 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* expr: expr '*' expr */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 210: /* expr: expr '*' expr */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3238 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* expr: expr '/' expr */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 211: /* expr: expr '/' expr */
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3244 "engines/director/lingo/lingo-gr.cpp"
+#line 3528 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* expr: expr tMOD expr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 212: /* expr: expr tMOD expr */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3250 "engines/director/lingo/lingo-gr.cpp"
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* expr: expr '>' expr */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 213: /* expr: expr '>' expr */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3256 "engines/director/lingo/lingo-gr.cpp"
+#line 3540 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* expr: expr '<' expr */
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 214: /* expr: expr '<' expr */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3546 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* expr: expr tEQ expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 215: /* expr: expr tEQ expr */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3268 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* expr: expr tNEQ expr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 216: /* expr: expr tNEQ expr */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3274 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* expr: expr tGE expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 217: /* expr: expr tGE expr */
+#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3280 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* expr: expr tLE expr */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 218: /* expr: expr tLE expr */
+#line 685 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+#line 3570 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* expr: expr tAND expr */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 219: /* expr: expr tAND expr */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3292 "engines/director/lingo/lingo-gr.cpp"
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* expr: expr tOR expr */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 220: /* expr: expr tOR expr */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3298 "engines/director/lingo/lingo-gr.cpp"
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* expr: expr '&' expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 221: /* expr: expr '&' expr */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3588 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* expr: expr tCONCAT expr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 222: /* expr: expr tCONCAT expr */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3310 "engines/director/lingo/lingo-gr.cpp"
+#line 3594 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* expr: expr tCONTAINS expr */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 223: /* expr: expr tCONTAINS expr */
+#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3316 "engines/director/lingo/lingo-gr.cpp"
+#line 3600 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* expr: expr tSTARTS expr */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 224: /* expr: expr tSTARTS expr */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3606 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 227: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3328 "engines/director/lingo/lingo-gr.cpp"
+#line 3612 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 664 "engines/director/lingo/lingo-gr.y"
+ case 228: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3334 "engines/director/lingo/lingo-gr.cpp"
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 229: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+#line 3624 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 230: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3346 "engines/director/lingo/lingo-gr.cpp"
+#line 3630 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 231: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3352 "engines/director/lingo/lingo-gr.cpp"
+#line 3636 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 232: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3358 "engines/director/lingo/lingo-gr.cpp"
+#line 3642 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 233: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+#line 3648 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 234: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3370 "engines/director/lingo/lingo-gr.cpp"
+#line 3654 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 671 "engines/director/lingo/lingo-gr.y"
+ case 235: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3376 "engines/director/lingo/lingo-gr.cpp"
+#line 3660 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 236: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3382 "engines/director/lingo/lingo-gr.cpp"
+#line 3666 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 673 "engines/director/lingo/lingo-gr.y"
+ case 237: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3388 "engines/director/lingo/lingo-gr.cpp"
+#line 3672 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 238: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3394 "engines/director/lingo/lingo-gr.cpp"
+#line 3678 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 239: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3400 "engines/director/lingo/lingo-gr.cpp"
+#line 3684 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 240: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3406 "engines/director/lingo/lingo-gr.cpp"
+#line 3690 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 241: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3412 "engines/director/lingo/lingo-gr.cpp"
+#line 3696 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 242: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 715 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3418 "engines/director/lingo/lingo-gr.cpp"
+#line 3702 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 243: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+#line 3708 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 244: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3430 "engines/director/lingo/lingo-gr.cpp"
+#line 3714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 245: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3436 "engines/director/lingo/lingo-gr.cpp"
+#line 3720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* exprlist: %empty */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 246: /* exprlist: %empty */
+#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+#line 3726 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* nonemptyexprlist: expr */
-#line 690 "engines/director/lingo/lingo-gr.y"
+ case 248: /* nonemptyexprlist: expr */
+#line 727 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+#line 3735 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 249: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3459 "engines/director/lingo/lingo-gr.cpp"
+#line 3743 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3463 "engines/director/lingo/lingo-gr.cpp"
+#line 3747 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3658,7 +3942,7 @@ yyreturn:
return yyresult;
}
-#line 699 "engines/director/lingo/lingo-gr.y"
+#line 736 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 826068afdc..246cc1d60b 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -148,23 +148,18 @@ extern int yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
-#line 111 "engines/director/lingo/lingo-gr.y"
+#line 112 "engines/director/lingo/lingo-gr.y"
Common::String *s;
int i;
double f;
- int e[2]; // Entity + field
-
- struct {
- Common::String *obj;
- Common::String *prop;
- } objectprop;
+ Director::ChunkType chunktype;
Director::IDList *idlist;
Director::Node *node;
Director::NodeList *nodelist;
-#line 168 "engines/director/lingo/lingo-gr.h"
+#line 163 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 38ccf713b7..d95d9cf5e6 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -65,6 +65,7 @@
#include "director/lingo/lingo-codegen.h"
#include "director/lingo/lingo-gr.h"
#include "director/lingo/lingo-object.h"
+#include "director/lingo/lingo-the.h"
extern int yylex();
extern int yyparse();
@@ -112,12 +113,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
Common::String *s;
int i;
double f;
- int e[2]; // Entity + field
-
- struct {
- Common::String *obj;
- Common::String *prop;
- } objectprop;
+ Director::ChunkType chunktype;
Director::IDList *idlist;
Director::Node *node;
@@ -171,10 +167,12 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> stmtlistline
// EXPRESSION
-%type<node> simpleexpr_noparens_nounarymath simpleexpr simpleexpr_noparens simpleexpr_nounarymath
-%type<node> parens unarymath
+%type<node> simpleexpr_nounarymath simpleexpr
+%type<node> unarymath
%type<node> expr expr_nounarymath sprite
%type<node> var varorchunk varorthe
+%type<chunktype> chunktype
+%type<node> the writablethe theobj menu thedatetime thenumberof
%type<node> list proppair
%type<node> chunk object
%type<nodelist> proplist exprlist nonemptyexprlist
@@ -551,16 +549,18 @@ stmtlistline: '\n' { $$ = nullptr; }
// EXPRESSION
-simpleexpr_noparens_nounarymath:
+simpleexpr_nounarymath:
tINT { $$ = new IntNode($tINT); }
| tFLOAT { $$ = new FloatNode($tFLOAT); }
| tSYMBOL { $$ = new SymbolNode($tSYMBOL); } // D3
| tSTRING { $$ = new StringNode($tSTRING); }
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
| ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
+ | '(' expr ')' { $$ = $expr; } ;
| var
| chunk
| object
+ | the
| list
;
@@ -571,29 +571,77 @@ varorchunk: var
;
varorthe: var
- // TODO: the
+ | writablethe
;
-chunk: tFIELD simpleexpr_noparens[arg] {
+chunk: tFIELD simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("field"), args); }
- | tCAST simpleexpr_noparens[arg] {
+ | tCAST simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("cast"), args); }
;
-object: tSCRIPT simpleexpr_noparens[arg] {
+object: tSCRIPT simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("script"), args); }
- | tWINDOW simpleexpr_noparens[arg] {
+ | tWINDOW simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("window"), args); }
;
+the: writablethe
+ | thedatetime
+ | thenumberof
+ | tTHE tLAST chunktype inof simpleexpr { $$ = new TheLastNode($chunktype, $simpleexpr); }
+ ;
+
+theobj: simpleexpr
+ | menu
+ | tMENUITEM simpleexpr[item] tOF tMENU simpleexpr[menu] { $$ = new MenuItemNode($item, $menu); }
+ | tSOUND simpleexpr[arg] { $$ = new SoundNode($arg); }
+ | tSPRITE simpleexpr[arg] { $$ = new SpriteNode($arg); }
+ ;
+
+menu: tMENU simpleexpr[arg] { $$ = new MenuNode($arg); } ;
+
+writablethe: tTHE ID { $$ = new TheNode($ID); }
+ | tTHE ID tOF theobj { $$ = new TheOfNode($ID, $theobj); }
+ | tTHE tNUMBER tOF theobj { $$ = new TheOfNode(new Common::String("number"), $theobj); }
+ ;
+
+thedatetime: tTHE tABBREVIATED tDATE { $$ = new TheDateTimeNode(kTheAbbr, kTheDate); }
+ | tTHE tABBREVIATED tTIME { $$ = new TheDateTimeNode(kTheAbbr, kTheTime); }
+ | tTHE tABBREV tDATE { $$ = new TheDateTimeNode(kTheAbbr, kTheDate); }
+ | tTHE tABBREV tTIME { $$ = new TheDateTimeNode(kTheAbbr, kTheTime); }
+ | tTHE tABBR tDATE { $$ = new TheDateTimeNode(kTheAbbr, kTheDate); }
+ | tTHE tABBR tTIME { $$ = new TheDateTimeNode(kTheAbbr, kTheTime); }
+ | tTHE tLONG tDATE { $$ = new TheDateTimeNode(kTheLong, kTheDate); }
+ | tTHE tLONG tTIME { $$ = new TheDateTimeNode(kTheLong, kTheTime); }
+ | tTHE tSHORT tDATE { $$ = new TheDateTimeNode(kTheShort, kTheDate); }
+ | tTHE tSHORT tTIME { $$ = new TheDateTimeNode(kTheShort, kTheTime); }
+ ;
+
+thenumberof:
+ tTHE tNUMBER tOF tCHARS inof simpleexpr { $$ = new TheNumberOfNode(kNumberOfChars, $simpleexpr); }
+ | tTHE tNUMBER tOF tWORDS inof simpleexpr { $$ = new TheNumberOfNode(kNumberOfWords, $simpleexpr); }
+ | tTHE tNUMBER tOF tITEMS inof simpleexpr { $$ = new TheNumberOfNode(kNumberOfItems, $simpleexpr); }
+ | tTHE tNUMBER tOF tLINES inof simpleexpr { $$ = new TheNumberOfNode(kNumberOfLines, $simpleexpr); }
+ | tTHE tNUMBER tOF tMENUITEMS inof menu { $$ = new TheNumberOfNode(kNumberOfMenuItems, $menu); }
+ ;
+
+chunktype: tCHAR { $$ = kChunkChar; }
+ | tWORD { $$ = kChunkWord; }
+ | tITEM { $$ = kChunkItem; }
+ | tLINE { $$ = kChunkLine; }
+ ;
+
+inof: tIN | tOF ;
+
list: '[' exprlist ']' { $$ = new ListNode($exprlist); }
| '[' ':' ']' { $$ = new PropListNode(new NodeList); }
| '[' proplist ']' { $$ = new PropListNode($proplist); }
@@ -613,25 +661,14 @@ proppair: tSYMBOL ':' expr { $$ = new PropPairNode(new SymbolNode($tSYMBOL), $e
| tSTRING ':' expr { $$ = new PropPairNode(new StringNode($tSTRING), $expr); }
;
-parens: '(' expr ')' { $$ = $expr; } ;
-
unarymath: '+' simpleexpr[arg] %prec tUNARY { $$ = $arg; }
| '-' simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_negate, $arg); }
;
-simpleexpr: simpleexpr_noparens_nounarymath
- | parens
+simpleexpr: simpleexpr_nounarymath
| unarymath
;
-simpleexpr_noparens: simpleexpr_noparens_nounarymath
- | unarymath
- ;
-
-simpleexpr_nounarymath: simpleexpr_noparens_nounarymath
- | parens
- ;
-
// REMEMBER TO SYNC THIS WITH expr_nounarymath!
expr: simpleexpr
| sprite
Commit: a37b2f6bb6bd2df59e073795caf2cfed7b37cd19
https://github.com/scummvm/scummvm/commit/a37b2f6bb6bd2df59e073795caf2cfed7b37cd19
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix chunk expr type checks
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 70a3c7764b..827fb41bf3 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1037,7 +1037,7 @@ void LC::c_charOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && !src.isRef())) {
g_lingo->lingoError("LC::c_charOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1052,7 +1052,7 @@ void LC::c_charToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.isRef())) {
+ || (src.type != STRING && !src.isRef())) {
warning("LC::c_charToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1065,7 +1065,7 @@ void LC::c_itemOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && !src.isRef())) {
warning("LC::c_itemOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1080,7 +1080,7 @@ void LC::c_itemToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.isRef())) {
+ || (src.type != STRING && !src.isRef())) {
warning("LC::c_itemToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1093,7 +1093,7 @@ void LC::c_lineOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && !src.isRef())) {
warning("LC::c_lineOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1108,7 +1108,7 @@ void LC::c_lineToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.isRef())) {
+ || (src.type != STRING && !src.isRef())) {
warning("LC::c_lineToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1121,7 +1121,7 @@ void LC::c_wordOf() {
Datum src = g_lingo->pop(false);
Datum index = g_lingo->pop();
- if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && src.isRef())) {
+ if ((index.type != INT && index.type != FLOAT) || (src.type != STRING && !src.isRef())) {
warning("LC::c_wordOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
@@ -1136,7 +1136,7 @@ void LC::c_wordToOf() {
Datum indexFrom = g_lingo->pop();
if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
- || (src.type != STRING && src.isRef())) {
+ || (src.type != STRING && !src.isRef())) {
warning("LC::c_wordToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
Commit: 1a311812cfb53e6332c248d41239aa06907d6109
https://github.com/scummvm/scummvm/commit/1a311812cfb53e6332c248d41239aa06907d6109
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement chunk expressions
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index dac79872de..987b9ba2e8 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -72,6 +72,7 @@ struct MenuNode;
struct MenuItemNode;
struct SoundNode;
struct SpriteNode;
+struct ChunkExprNode;
typedef Common::Array<Node *> NodeList;
typedef Common::Array<Common::String *> IDList;
@@ -132,7 +133,8 @@ enum NodeType {
kMenuNode,
kMenuItemNode,
kSoundNode,
- kSpriteNode
+ kSpriteNode,
+ kChunkExprNode
};
enum NumberOfType {
@@ -196,6 +198,7 @@ public:
virtual bool visitMenuItemNode(MenuItemNode *node) = 0;
virtual bool visitSoundNode(SoundNode *node) = 0;
virtual bool visitSpriteNode(SpriteNode *node) = 0;
+ virtual bool visitChunkExprNode(ChunkExprNode *node) = 0;
};
/* Node */
@@ -943,6 +946,26 @@ struct SpriteNode : ExprNode {
}
};
+/* ChunkExprNode */
+
+struct ChunkExprNode : ExprNode {
+ ChunkType type;
+ Node *start;
+ Node *end;
+ Node *src;
+
+ ChunkExprNode(ChunkType typeIn, Node *startIn, Node *endIn, Node *srcIn)
+ : ExprNode(kChunkExprNode), type(typeIn), start(startIn), end(endIn), src(srcIn) {}
+ virtual ~ChunkExprNode() {
+ delete start;
+ delete end;
+ delete src;
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitChunkExprNode(this);
+ }
+};
+
} // End of namespace Director
#endif
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index fafb6ab4aa..35f340c9b5 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -1249,4 +1249,45 @@ bool LingoCompiler::visitSpriteNode(SpriteNode *node) {
return true;
}
+/* ChunkExprNode */
+
+bool LingoCompiler::visitChunkExprNode(ChunkExprNode *node) {
+ COMPILE(node->start);
+ if (node->end) {
+ COMPILE(node->end);
+ }
+ COMPILE(node->src);
+ switch (node->type) {
+ case kChunkChar:
+ if (node->end) {
+ code1(LC::c_charToOf);
+ } else {
+ code1(LC::c_charOf);
+ }
+ break;
+ case kChunkWord:
+ if (node->end) {
+ code1(LC::c_wordToOf);
+ } else {
+ code1(LC::c_wordOf);
+ }
+ break;
+ case kChunkItem:
+ if (node->end) {
+ code1(LC::c_itemToOf);
+ } else {
+ code1(LC::c_itemOf);
+ }
+ break;
+ case kChunkLine:
+ if (node->end) {
+ code1(LC::c_lineToOf);
+ } else {
+ code1(LC::c_lineOf);
+ }
+ break;
+ }
+ return true;
+}
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index b210ff291b..7b4aef032e 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -121,6 +121,7 @@ public:
virtual bool visitMenuItemNode(MenuItemNode *node);
virtual bool visitSoundNode(SoundNode *node);
virtual bool visitSpriteNode(SpriteNode *node);
+ virtual bool visitChunkExprNode(ChunkExprNode *node);
private:
int parse(const char *code);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index d2bdec6bd7..ec01f11b1d 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -631,18 +631,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 149
+#define YYFINAL 153
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3926
+#define YYLAST 3841
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 55
/* YYNRULES -- Number of rules. */
-#define YYNRULES 249
+#define YYNRULES 257
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 457
+#define YYNSTATES 489
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -715,16 +715,17 @@ static const yytype_int16 yyrline[] =
481, 484, 488, 492, 498, 502, 506, 510, 512, 514,
518, 522, 526, 528, 529, 533, 539, 546, 547, 553,
554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
- 564, 567, 569, 570, 573, 574, 577, 581, 587, 591,
- 597, 598, 599, 600, 603, 604, 605, 606, 607, 610,
- 612, 613, 614, 617, 618, 619, 620, 621, 622, 623,
- 624, 625, 626, 630, 631, 632, 633, 634, 637, 638,
- 639, 640, 643, 643, 645, 646, 647, 650, 654, 659,
- 660, 661, 664, 665, 668, 669, 673, 674, 675, 676,
- 677, 678, 679, 680, 681, 682, 683, 684, 685, 686,
- 687, 688, 689, 690, 691, 698, 699, 700, 701, 702,
- 703, 704, 705, 706, 707, 708, 709, 710, 711, 712,
- 713, 714, 715, 716, 719, 720, 723, 724, 727, 731
+ 564, 567, 569, 570, 573, 574, 577, 581, 585, 587,
+ 589, 591, 593, 595, 597, 599, 603, 607, 613, 614,
+ 615, 616, 619, 620, 621, 622, 623, 626, 628, 629,
+ 630, 633, 634, 635, 636, 637, 638, 639, 640, 641,
+ 642, 646, 647, 648, 649, 650, 653, 654, 655, 656,
+ 659, 659, 661, 662, 663, 666, 670, 675, 676, 677,
+ 680, 681, 684, 685, 689, 690, 691, 692, 693, 694,
+ 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
+ 705, 706, 707, 714, 715, 716, 717, 718, 719, 720,
+ 721, 722, 723, 724, 725, 726, 727, 728, 729, 730,
+ 731, 732, 735, 736, 739, 740, 743, 747
};
#endif
@@ -790,7 +791,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-325)
+#define YYPACT_NINF (-335)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -804,58 +805,61 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2029, -325, -325, -325, -325, -325, -325, -27, -325, 3310,
- 1162, 1259, -325, -325, 3310, -325, -12, -325, -325, 1356,
- 12, 3232, -325, 3310, -325, -325, 3310, -325, 1162, 3310,
- -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
- -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
- -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
- -325, -325, 1259, 3310, 3310, 3076, -325, 75, 2029, -325,
- -325, -325, -325, 1356, -325, -325, -325, -325, -325, -325,
- -325, -325, -325, -325, -61, -325, -325, -325, -325, -325,
- -325, -325, -5, -2, -325, -325, -325, -325, 1453, 1453,
- 1453, 1453, 1259, 1259, 1453, 3388, 1259, 1453, 1453, 1065,
- 578, 8, 16, 18, -325, -325, -325, -325, -325, -325,
- -325, -325, -325, -325, -325, 677, -325, 1259, 452, 3310,
- 19, 24, 774, 3310, 1259, 3466, -325, -325, -17, -325,
- 89, 26, 29, 30, 33, 204, 35, 3310, -325, -325,
- -325, 37, 871, -325, -325, 3310, -325, -325, -325, -325,
- 968, 3761, -325, -36, -31, -30, -7, 5, 36, 108,
- 109, 3748, -325, -325, -325, 261, 38, 39, 41, -83,
- -4, -325, 3761, 42, 48, 1259, -325, -325, 113, 1259,
- 1259, 1259, 1259, 1744, 1744, 1938, 1259, 1841, 1841, 1259,
- 1259, 1259, 1259, 1259, 1259, 1259, 1259, -325, 3597, -325,
- 3584, 2756, 1259, 1259, 1259, 1259, 1259, 43, -325, -325,
- 3544, 3544, 3544, 104, 3610, 122, -325, -325, 1259, 1259,
- -73, -325, -325, -325, 3076, 2836, -325, 54, -325, -325,
- 126, 3777, -325, -325, -325, -325, -325, -325, -325, -325,
- -325, -325, -325, -325, -325, -325, 60, 1550, 1647, 1453,
- 1453, 1259, -325, 1259, 1259, -325, 1259, 3154, -325, -325,
- 1259, 53, 1259, -15, -15, -15, -15, 3831, 3831, -325,
- -39, -15, -15, -15, -15, -39, -37, -37, -325, -325,
- 48, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
- 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 2836,
- 138, 2836, -325, 59, -325, 61, 62, 1259, 2836, 1647,
- 3666, 3761, 3310, -325, -325, 63, -325, -325, -325, -325,
- -325, 2189, -325, -325, 2836, 1259, -325, -325, 1453, 60,
- 60, 60, 60, 1453, 1453, 60, 1453, 1453, -325, -325,
- -325, -325, -325, -325, -70, 3761, 3761, 3761, 38, 39,
- 58, -325, 3761, -325, 3761, -15, -15, -15, -15, 3831,
- 3831, -325, -39, -15, -15, -15, -15, -39, -37, -37,
- -325, -325, 48, 2109, 2916, 2836, -325, -325, -325, 134,
- 2276, -325, 3310, -73, 65, -325, 2356, 3761, -325, 1453,
- 1453, 1453, 1453, -325, 129, 92, -325, -325, -325, 2996,
- 67, 2836, -325, 131, 1259, 69, 70, -325, -325, 3310,
- -325, -325, -325, -325, 98, 1453, -325, 2836, -325, -325,
- 2436, 1259, 3679, -325, 2836, 2, -325, 1453, 2516, 73,
- 3692, 2836, 2836, -325, 3310, -325, 76, -325, 2836, 2596,
- -325, -325, 2676, 77, 78, -325, -325
+ 2170, -335, -335, -335, -335, -335, -335, -20, -335, 3373,
+ 1303, 1400, -335, -335, 3373, -335, -15, -335, -335, 1497,
+ 55, 619, -335, 3373, -335, -335, 3373, -335, 1303, 3373,
+ -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+ -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+ -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+ -335, -335, 1400, 3373, 3373, 3217, -335, 25, 2170, -335,
+ -335, -335, -335, 1497, -335, -335, -335, -335, -335, -335,
+ -335, -335, -335, -335, -63, -335, -335, -335, -335, -335,
+ -335, -335, -31, 9, -335, -335, -335, -335, 1594, 1594,
+ 1594, 1594, 1400, 1400, 1594, 1594, 1594, 1594, 1594, 3451,
+ 1400, 1594, 1594, 1206, 719, -25, 23, 32, -335, -335,
+ -335, -335, -335, -335, -335, -335, -335, -335, -335, 818,
+ -335, 1400, 251, 3373, 35, 44, 915, 3373, 1400, 3529,
+ -335, -335, -3, -335, 93, 49, 58, 61, 63, 123,
+ 65, 3373, -335, -335, -335, 74, 1012, -335, -335, 3373,
+ -335, -335, -335, -335, 1109, 3733, -335, 83, 84, 87,
+ 91, -54, -39, -33, -24, -9, 47, 120, 124, 3679,
+ -335, -335, -335, 333, 75, 76, 78, -75, 29, -335,
+ 3733, 81, 90, 1400, -335, -335, 164, 1400, 1400, 1400,
+ 1400, 1885, 1885, 2079, 1400, 1982, 1982, 1400, 1400, 1400,
+ 1400, 1400, 1400, 1400, 1400, -335, 443, -335, 411, 2897,
+ 1400, 1400, 1400, 1400, 1400, 95, -335, -335, 3607, 3607,
+ 3607, 149, 508, 173, -335, -335, 1400, 1400, -77, -335,
+ -335, -335, 3217, 2977, -335, 105, -335, -335, 178, 3746,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, -335, -335,
+ -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+ -335, -335, 31, 1691, 1788, 1594, 1594, 1400, -335, 1400,
+ 1400, -335, 1400, 3295, -335, -335, 1400, 106, 1400, -10,
+ -10, -10, -10, 142, 142, -335, -5, -10, -10, -10,
+ -10, -5, 6, 6, -335, -335, 90, 1400, 1400, 1400,
+ 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
+ 1400, 1400, 1400, 1400, 1400, 2977, 189, 2977, -335, 110,
+ -335, 111, 126, 1400, 2977, 1788, 527, 3733, 3373, -335,
+ -335, 127, -335, -335, -335, -335, -335, 2330, -335, -335,
+ 2977, 1400, -335, 193, -335, 197, -335, 198, -335, 199,
+ -335, -335, 1594, 31, 31, 31, 31, 1594, 1594, 31,
+ 1594, 1594, -335, -335, -335, -335, -335, -335, -22, 3733,
+ 3733, 3733, 75, 76, 135, -335, 3733, -335, 3733, -10,
+ -10, -10, -10, 142, 142, -335, -5, -10, -10, -10,
+ -10, -5, 6, 6, -335, -335, 90, 2250, 3057, 2977,
+ -335, -335, -335, 4, 2417, -335, 3373, -77, 143, -335,
+ 2497, 3733, 1594, 1594, 1594, 1594, -335, 1594, 1594, 1594,
+ 1594, -335, 211, 170, -335, -335, -335, 3137, 147, 2977,
+ -335, 212, 1400, 148, 150, -335, -335, 3373, -335, -335,
+ -335, -335, -335, -335, -335, -335, 194, 1594, -335, 2977,
+ -335, -335, 2577, 1400, 3647, -335, 2977, 37, -335, 1594,
+ 2657, 169, 3660, 2977, 2977, -335, 3373, -335, 171, -335,
+ 2977, 2737, -335, -335, 2817, 172, 179, -335, -335
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
-static const yytype_uint8 yydefact[] =
+static const yytype_int16 yydefact[] =
{
0, 24, 31, 37, 61, 72, 36, 0, 38, 77,
100, 0, 39, 41, 0, 52, 53, 56, 59, 100,
@@ -867,64 +871,67 @@ static const yytype_uint8 yydefact[] =
6, 7, 8, 100, 9, 81, 87, 88, 89, 82,
83, 84, 85, 86, 0, 98, 53, 60, 63, 68,
62, 79, 0, 78, 139, 140, 142, 141, 31, 37,
- 61, 72, 38, 52, 54, 0, 66, 0, 0, 0,
- 246, 151, 0, 0, 204, 146, 147, 148, 149, 160,
- 161, 162, 150, 205, 206, 101, 207, 0, 0, 77,
- 0, 0, 101, 0, 0, 0, 151, 154, 0, 155,
- 0, 0, 0, 0, 0, 0, 0, 77, 99, 1,
- 4, 0, 101, 97, 118, 0, 157, 156, 158, 159,
- 107, 108, 143, 25, 26, 27, 47, 64, 44, 55,
- 170, 0, 202, 203, 105, 0, 142, 141, 0, 151,
- 0, 197, 248, 0, 247, 246, 92, 93, 56, 0,
- 0, 0, 0, 29, 58, 51, 0, 34, 67, 0,
- 0, 0, 0, 0, 0, 0, 0, 225, 103, 226,
- 0, 0, 0, 0, 0, 0, 0, 0, 96, 91,
- 41, 28, 30, 0, 0, 55, 116, 117, 0, 0,
- 13, 94, 95, 120, 0, 133, 119, 0, 90, 80,
- 56, 111, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 188, 190, 191, 189, 0, 0, 0, 0,
- 0, 0, 145, 0, 0, 195, 0, 0, 196, 194,
- 0, 0, 0, 217, 218, 215, 216, 219, 220, 212,
- 222, 223, 224, 214, 213, 221, 208, 209, 210, 211,
- 102, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 133,
- 121, 133, 152, 0, 153, 0, 0, 0, 133, 0,
- 0, 132, 0, 17, 18, 11, 14, 15, 130, 137,
- 138, 0, 134, 135, 133, 0, 192, 193, 0, 33,
- 43, 46, 76, 48, 49, 50, 65, 66, 172, 165,
- 164, 171, 244, 245, 0, 201, 199, 200, 0, 0,
- 0, 198, 249, 144, 110, 236, 237, 234, 235, 238,
- 239, 231, 241, 242, 243, 233, 232, 240, 227, 228,
- 229, 230, 104, 0, 0, 10, 112, 113, 114, 0,
- 0, 115, 77, 0, 0, 136, 20, 109, 163, 0,
- 0, 0, 0, 169, 0, 0, 167, 168, 106, 0,
- 0, 133, 123, 0, 0, 0, 0, 16, 131, 21,
- 183, 185, 186, 184, 0, 0, 187, 133, 125, 122,
- 0, 0, 0, 127, 133, 0, 22, 0, 0, 0,
- 0, 133, 12, 19, 0, 166, 0, 124, 133, 0,
- 23, 126, 0, 0, 0, 128, 129
+ 61, 72, 38, 52, 54, 32, 42, 45, 75, 0,
+ 66, 0, 0, 0, 254, 151, 0, 0, 212, 146,
+ 147, 148, 149, 168, 169, 170, 150, 213, 214, 101,
+ 215, 0, 0, 77, 0, 0, 101, 0, 0, 0,
+ 151, 154, 0, 155, 0, 0, 0, 0, 0, 0,
+ 0, 77, 99, 1, 4, 0, 101, 97, 118, 0,
+ 157, 156, 166, 167, 107, 108, 143, 0, 0, 0,
+ 0, 25, 26, 27, 47, 64, 44, 55, 178, 0,
+ 210, 211, 105, 0, 142, 141, 0, 151, 0, 205,
+ 256, 0, 255, 254, 92, 93, 56, 0, 0, 0,
+ 0, 29, 58, 51, 0, 34, 67, 0, 0, 0,
+ 0, 0, 0, 0, 0, 233, 103, 234, 0, 0,
+ 0, 0, 0, 0, 0, 0, 96, 91, 41, 28,
+ 30, 0, 0, 55, 116, 117, 0, 0, 13, 94,
+ 95, 120, 0, 133, 119, 0, 90, 80, 56, 111,
+ 0, 0, 0, 0, 0, 0, 0, 0, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 196, 198,
+ 199, 197, 0, 0, 0, 0, 0, 0, 145, 0,
+ 0, 203, 0, 0, 204, 202, 0, 0, 0, 225,
+ 226, 223, 224, 227, 228, 220, 230, 231, 232, 222,
+ 221, 229, 216, 217, 218, 219, 102, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 133, 121, 133, 152, 0,
+ 153, 0, 0, 0, 133, 0, 0, 132, 0, 17,
+ 18, 11, 14, 15, 130, 137, 138, 0, 134, 135,
+ 133, 0, 158, 0, 162, 0, 164, 0, 160, 0,
+ 200, 201, 0, 33, 43, 46, 76, 48, 49, 50,
+ 65, 66, 180, 173, 172, 179, 252, 253, 0, 209,
+ 207, 208, 0, 0, 0, 206, 257, 144, 110, 244,
+ 245, 242, 243, 246, 247, 239, 249, 250, 251, 241,
+ 240, 248, 235, 236, 237, 238, 104, 0, 0, 10,
+ 112, 113, 114, 0, 0, 115, 77, 0, 0, 136,
+ 20, 109, 0, 0, 0, 0, 171, 0, 0, 0,
+ 0, 177, 0, 0, 175, 176, 106, 0, 0, 133,
+ 123, 0, 0, 0, 0, 16, 131, 21, 159, 163,
+ 165, 161, 191, 193, 194, 192, 0, 0, 195, 133,
+ 125, 122, 0, 0, 0, 127, 133, 0, 22, 0,
+ 0, 0, 0, 133, 12, 19, 0, 174, 0, 124,
+ 133, 0, 23, 126, 0, 0, 0, 128, 129
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -325, -325, -325, 114, -325, -325, -325, -325, -325, -221,
- -325, -325, 0, -28, -325, 3, -63, -325, -6, 156,
- -325, -325, -325, -325, -325, -325, -325, -325, -303, -325,
- -324, -100, -16, -110, -325, -118, -325, -325, -69, -220,
- 169, -325, -325, -325, -255, -325, -325, -76, -325, -57,
- 264, 32, -43, 9, -188
+ -335, -335, -335, 202, -335, -335, -335, -335, -335, -150,
+ -335, -335, 0, -28, -335, 3, -61, -335, -1, 249,
+ -335, -335, -335, -335, -335, -335, -335, -335, -317, -335,
+ -334, -124, -19, -56, -335, -85, -335, -335, 5, -155,
+ 259, -335, -335, -335, -166, -335, -335, -2, -335, 292,
+ 51, 118, -26, 92, -208
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 67, 68, 69, 70, 71, 324, 325, 326, 327,
- 72, 435, 111, 92, 93, 330, 75, 76, 112, 113,
- 77, 228, 78, 79, 80, 81, 82, 83, 331, 332,
- 333, 114, 115, 313, 138, 116, 117, 118, 348, 349,
- 119, 120, 121, 256, 338, 122, 180, 181, 123, 124,
- 182, 208, 126, 183, 184
+ 0, 67, 68, 69, 70, 71, 340, 341, 342, 343,
+ 72, 467, 115, 92, 93, 346, 75, 76, 116, 117,
+ 77, 236, 78, 79, 80, 81, 82, 83, 347, 348,
+ 349, 118, 119, 329, 142, 120, 121, 122, 372, 373,
+ 123, 124, 125, 272, 362, 126, 188, 189, 127, 128,
+ 190, 216, 130, 191, 192
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -932,501 +939,478 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 73, 144, 148, 74, 84, 137, 383, 395, 385, 91,
- 214, 322, 214, 131, 129, 390, 185, 226, 290, 130,
- 266, 136, 142, 140, 323, 207, 141, 227, 270, 91,
- 408, 396, 207, 242, 214, 146, 153, 196, 244, 246,
- 243, 156, 157, 158, 159, 245, 247, 162, 133, 134,
- 172, 173, 207, 202, 203, 204, 205, 204, 205, 395,
- 207, 395, 248, 91, 147, 73, 395, 151, 73, 249,
- 85, 74, 395, 354, 250, 149, 201, 202, 203, 204,
- 205, 251, 209, 336, 399, 400, 401, 402, 337, 209,
- 405, 252, 154, 253, 267, 254, 155, 255, 268, 443,
- 444, 217, 314, 314, 314, 170, 395, 185, 430, 209,
- 179, 315, 316, 186, 395, 187, 218, 209, 395, 237,
- 382, 219, 229, 230, 438, 395, 231, 232, 395, 91,
- 233, 442, 236, 223, 238, 170, 257, 258, 449, 272,
- 311, 263, 264, 265, 269, 452, 270, 91, 317, 413,
- 319, 334, 335, 363, 384, 239, 386, 424, 387, 388,
- 393, 266, 418, 425, 429, 431, 433, 434, 414, 437,
- 447, 328, 417, 451, 455, 456, 189, 190, 191, 192,
- 212, 213, 150, 214, 143, 426, 196, 215, 216, 351,
- 139, 361, 241, 0, 271, 0, 0, 0, 0, 0,
- 350, 350, 352, 353, 312, 312, 312, 0, 0, 0,
- 0, 73, 0, 0, 310, 0, 0, 0, 0, 0,
- 136, 136, 136, 199, 200, 201, 202, 203, 204, 205,
- 0, 0, 0, 0, 73, 73, 0, 0, 234, 0,
- 0, 0, 0, 0, 0, 0, 189, 190, 191, 192,
- 212, 213, 0, 214, 0, 0, 196, 215, 216, 0,
- 0, 0, 350, 0, 0, 0, 0, 360, 0, 0,
- 0, 0, 0, 0, 125, 128, 0, 0, 0, 0,
- 0, 398, 0, 132, 0, 0, 403, 404, 0, 406,
- 407, 0, 125, 199, 200, 201, 202, 203, 204, 205,
- 0, 235, 0, 189, 190, 191, 192, 212, 213, 73,
- 214, 73, 0, 196, 215, 216, 0, 0, 73, 0,
- 0, 0, 392, 0, 0, 0, 145, 0, 0, 0,
- 0, 73, 0, 0, 73, 0, 0, 152, 0, 0,
- 0, 0, 420, 421, 422, 423, 0, 0, 0, 0,
- 199, 200, 201, 202, 203, 204, 205, 0, 0, 261,
- 0, 262, 0, 0, 416, 0, 160, 161, 403, 0,
- 171, 0, 0, 175, 0, 0, 0, 0, 0, 0,
- 445, 0, 0, 73, 73, 73, 0, 412, 0, 0,
- 73, 210, 91, 0, 0, 0, 73, 0, 224, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
- 0, 73, 428, 0, 0, 0, 0, 0, 0, 436,
- 0, 0, 0, 0, 0, 0, 0, 73, 0, 0,
- 73, 0, 0, 0, 73, 0, 0, 0, 73, 0,
- 0, 73, 73, 0, 450, 0, 0, 0, 73, 73,
- 0, 0, 73, 273, 274, 275, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 0, 0, 0, 0, 0, 0, 277, 278, 279, 281,
- 282, 0, 0, 0, 0, 211, 0, 0, 0, 0,
- 0, 0, 320, 321, 189, 190, 191, 192, 212, 213,
- 0, 214, 0, 0, 196, 215, 216, 0, 0, 0,
+ 73, 148, 141, 74, 152, 215, 306, 338, 407, 91,
+ 409, 84, 215, 419, 133, 258, 134, 414, 135, 441,
+ 339, 140, 259, 144, 193, 153, 145, 146, 282, 91,
+ 260, 234, 215, 420, 157, 150, 262, 261, 442, 222,
+ 215, 235, 204, 263, 222, 264, 197, 198, 199, 200,
+ 220, 221, 265, 222, 360, 222, 204, 223, 224, 361,
+ 266, 129, 132, 91, 151, 73, 158, 267, 73, 378,
+ 136, 74, 155, 419, 193, 419, 286, 85, 436, 129,
+ 419, 209, 210, 211, 212, 213, 419, 210, 211, 212,
+ 213, 137, 138, 207, 208, 209, 210, 211, 212, 213,
+ 212, 213, 268, 217, 269, 225, 270, 159, 271, 178,
+ 217, 250, 252, 149, 187, 254, 406, 251, 253, 256,
+ 194, 255, 462, 245, 156, 257, 237, 283, 419, 195,
+ 217, 284, 226, 91, 475, 476, 419, 231, 217, 178,
+ 419, 227, 470, 330, 330, 330, 238, 419, 273, 474,
+ 419, 91, 274, 164, 165, 239, 481, 242, 240, 247,
+ 241, 179, 244, 484, 183, 197, 198, 199, 200, 220,
+ 221, 246, 222, 331, 332, 204, 223, 224, 279, 280,
+ 281, 344, 218, 285, 197, 198, 199, 200, 286, 232,
+ 288, 222, 327, 333, 204, 223, 224, 427, 428, 429,
+ 430, 335, 350, 433, 351, 408, 387, 410, 411, 328,
+ 328, 328, 207, 208, 209, 210, 211, 212, 213, 73,
+ 243, 422, 326, 412, 417, 423, 424, 425, 140, 140,
+ 140, 207, 208, 209, 210, 211, 212, 213, 282, 456,
+ 446, 457, 73, 73, 461, 465, 463, 466, 289, 290,
+ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 469, 479, 445, 483, 487,
+ 154, 293, 294, 295, 297, 298, 488, 147, 458, 375,
+ 143, 385, 249, 384, 219, 287, 0, 336, 337, 0,
+ 0, 0, 0, 197, 198, 199, 200, 220, 221, 0,
+ 222, 0, 0, 204, 223, 224, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 355, 356, 0,
- 357, 0, 0, 0, 362, 0, 364, 0, 0, 0,
- 0, 199, 200, 201, 202, 203, 204, 205, 0, 0,
- 0, 0, 0, 0, 0, 365, 366, 367, 368, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
- 380, 381, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 389, 0, 94, 95, 1, 176, 177, 0, 98,
- 99, 100, 101, 6, 0, 0, 0, 8, 0, 397,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 104, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
- 107, 108, 0, 0, 0, 0, 0, 127, 432, 110,
- 0, 178, 94, 95, 1, 96, 97, 0, 98, 99,
- 100, 101, 6, 0, 0, 440, 8, 0, 0, 0,
- 12, 13, 0, 15, 86, 188, 18, 0, 87, 88,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 189,
- 190, 191, 192, 193, 194, 104, 195, 34, 35, 196,
- 197, 198, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 105, 57, 58, 106, 60, 61, 89, 0,
- 0, 0, 0, 0, 0, 90, 199, 200, 201, 202,
- 203, 204, 205, 0, 0, 206, 127, 0, 110, 94,
- 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 220, 0,
- 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 189, 190, 191, 192,
- 193, 194, 104, 195, 221, 222, 196, 197, 198, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 105,
- 57, 58, 106, 60, 61, 89, 0, 0, 0, 0,
- 0, 0, 90, 199, 200, 201, 202, 203, 204, 205,
- 0, 0, 206, 127, 0, 110, 94, 95, 1, 96,
- 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
- 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 189, 190, 191, 192, 193, 194, 104,
- 195, 34, 35, 196, 197, 198, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 105, 57, 58, 106,
- 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
- 199, 200, 201, 202, 203, 204, 205, 0, 0, 206,
- 127, 0, 110, 94, 95, 1, 96, 97, 0, 98,
+ 0, 0, 0, 0, 0, 73, 0, 73, 0, 0,
+ 379, 380, 0, 381, 73, 0, 0, 386, 416, 388,
+ 207, 208, 209, 210, 211, 212, 213, 73, 0, 0,
+ 73, 0, 0, 0, 0, 0, 0, 0, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ 401, 402, 403, 404, 405, 197, 198, 199, 200, 220,
+ 221, 0, 222, 0, 413, 204, 223, 224, 444, 0,
+ 160, 161, 162, 163, 0, 0, 166, 167, 168, 169,
+ 170, 0, 421, 180, 181, 0, 0, 73, 73, 73,
+ 0, 440, 0, 0, 73, 0, 91, 0, 0, 0,
+ 73, 0, 207, 208, 209, 210, 211, 212, 213, 0,
+ 0, 277, 0, 278, 0, 0, 0, 73, 0, 73,
+ 460, 0, 0, 0, 0, 0, 0, 468, 0, 0,
+ 0, 0, 0, 197, 198, 199, 200, 220, 221, 73,
+ 222, 0, 73, 204, 223, 224, 73, 0, 0, 0,
+ 73, 0, 0, 73, 73, 0, 482, 0, 0, 0,
+ 73, 73, 0, 0, 73, 307, 308, 309, 310, 311,
+ 312, 0, 313, 464, 0, 314, 315, 316, 0, 0,
+ 207, 208, 209, 210, 211, 212, 213, 0, 0, 0,
+ 0, 278, 0, 0, 472, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 317, 318, 319, 320, 321, 322, 323, 0,
+ 0, 324, 352, 353, 354, 355, 356, 357, 358, 359,
+ 197, 198, 199, 200, 220, 221, 0, 222, 0, 0,
+ 204, 223, 224, 0, 0, 374, 374, 376, 377, 197,
+ 198, 199, 200, 220, 221, 0, 222, 0, 0, 204,
+ 223, 224, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 207, 208, 209,
+ 210, 211, 212, 213, 0, 334, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 207, 208, 209, 210,
+ 211, 212, 213, 0, 415, 0, 1, 374, 0, 0,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
+ 87, 88, 0, 22, 426, 24, 25, 0, 27, 431,
+ 432, 0, 434, 435, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 139, 57, 58, 59, 60, 61,
+ 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
+ 0, 0, 0, 0, 448, 449, 450, 451, 0, 452,
+ 453, 454, 455, 0, 94, 95, 1, 184, 185, 0,
+ 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 431,
+ 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 477, 0, 0, 0, 30, 31, 104, 33, 34,
+ 35, 0, 36, 37, 105, 39, 106, 41, 107, 43,
+ 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
+ 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
+ 0, 111, 112, 0, 0, 0, 0, 0, 131, 0,
+ 114, 0, 186, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 240, 18, 0, 87,
+ 0, 12, 13, 0, 15, 86, 196, 18, 0, 87,
88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 189, 190, 191, 192, 193, 194, 104, 195, 34, 35,
- 196, 197, 198, 38, 39, 40, 41, 42, 43, 44,
+ 197, 198, 199, 200, 201, 202, 104, 203, 34, 35,
+ 204, 205, 206, 105, 39, 106, 41, 107, 43, 108,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 199, 200, 201,
- 202, 203, 204, 205, 0, 0, 0, 127, 0, 110,
+ 54, 55, 56, 109, 57, 58, 110, 60, 61, 89,
+ 0, 0, 0, 0, 0, 0, 90, 207, 208, 209,
+ 210, 211, 212, 213, 0, 0, 214, 131, 0, 114,
94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 228,
0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 104, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 0, 24, 25, 0, 27, 0, 0, 197, 198, 199,
+ 200, 201, 202, 104, 203, 229, 230, 204, 205, 206,
+ 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 105, 57, 58, 106, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 0, 0, 0, 107, 108, 0,
- 0, 0, 0, 0, 127, 174, 110, 94, 95, 1,
+ 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 207, 208, 209, 210, 211, 212,
+ 213, 0, 0, 214, 131, 0, 114, 94, 95, 1,
96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
- 0, 102, 0, 0, 0, 12, 13, 0, 103, 86,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 104, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 105, 57, 58,
- 106, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 0, 0, 0, 107, 108, 0, 0, 0, 0,
- 0, 109, 0, 110, 94, 95, 1, 96, 97, 0,
+ 0, 27, 0, 0, 197, 198, 199, 200, 201, 202,
+ 104, 203, 34, 35, 204, 205, 206, 105, 39, 106,
+ 41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
+ 110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
+ 90, 207, 208, 209, 210, 211, 212, 213, 0, 0,
+ 214, 131, 0, 114, 94, 95, 1, 96, 97, 0,
98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
+ 0, 0, 12, 13, 0, 15, 86, 248, 18, 0,
87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 104, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 105, 57, 58, 106, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 107, 108, 0, 0, 0, 0, 0, 127, 0,
- 110, 94, 95, 1, 96, 97, 0, 98, 99, 100,
+ 0, 197, 198, 199, 200, 201, 202, 104, 203, 34,
+ 35, 204, 205, 206, 105, 39, 106, 41, 107, 43,
+ 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
+ 89, 0, 0, 0, 0, 0, 0, 90, 207, 208,
+ 209, 210, 211, 212, 213, 0, 0, 0, 131, 0,
+ 114, 94, 95, 1, 96, 97, 0, 98, 99, 100,
101, 6, 0, 0, 0, 8, 0, 0, 0, 12,
13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
0, 0, 30, 31, 104, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 37, 105, 39, 106, 41, 107, 43, 108, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 105, 57, 58, 106, 60, 61, 89, 0, 0,
- 0, 0, 0, 0, 90, 0, 0, 0, 107, 108,
- 0, 0, 0, 0, 0, 109, 0, 110, 94, 95,
+ 56, 109, 57, 58, 110, 60, 61, 89, 0, 0,
+ 0, 0, 0, 0, 90, 0, 0, 0, 111, 112,
+ 0, 0, 0, 0, 0, 131, 182, 114, 94, 95,
1, 96, 97, 0, 98, 99, 100, 101, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 0, 0, 102, 0, 0, 0, 12, 13, 0, 103,
86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
- 31, 104, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 105, 57,
- 58, 59, 60, 61, 89, 0, 0, 0, 0, 0,
- 0, 90, 0, 0, 0, 107, 108, 0, 0, 0,
- 0, 0, 127, 0, 110, 94, 95, 1, 96, 97,
+ 31, 104, 33, 34, 35, 0, 36, 37, 105, 39,
+ 106, 41, 107, 43, 108, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 109, 57,
+ 58, 110, 60, 61, 89, 0, 0, 0, 0, 0,
+ 0, 90, 0, 0, 0, 111, 112, 0, 0, 0,
+ 0, 0, 113, 0, 114, 94, 95, 1, 96, 97,
0, 98, 99, 100, 101, 6, 0, 0, 0, 8,
0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
0, 0, 0, 0, 0, 0, 30, 31, 104, 33,
- 34, 35, 0, 36, 37, 38, 339, 40, 340, 42,
- 341, 44, 342, 46, 47, 48, 49, 50, 0, 51,
- 52, 343, 344, 345, 56, 105, 57, 346, 347, 60,
+ 34, 35, 0, 36, 37, 105, 39, 106, 41, 107,
+ 43, 108, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 109, 57, 58, 110, 60,
61, 89, 0, 0, 0, 0, 0, 0, 90, 0,
- 0, 0, 107, 108, 0, 0, 0, 0, 0, 127,
- 0, 110, 94, 95, 1, 96, 97, 0, 98, 99,
+ 0, 0, 111, 112, 0, 0, 0, 0, 0, 131,
+ 0, 114, 94, 95, 1, 96, 97, 0, 98, 99,
100, 101, 6, 0, 0, 0, 8, 0, 0, 0,
12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
0, 0, 0, 30, 31, 104, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 343, 344,
- 55, 56, 105, 57, 346, 347, 60, 61, 89, 0,
- 0, 0, 0, 0, 0, 90, 0, 0, 0, 107,
- 108, 0, 0, 0, 0, 0, 127, 0, 110, 94,
+ 36, 37, 105, 39, 106, 41, 107, 43, 108, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 109, 57, 58, 110, 60, 61, 89, 0,
+ 0, 0, 0, 0, 0, 90, 0, 0, 0, 111,
+ 112, 0, 0, 0, 0, 0, 113, 0, 114, 94,
95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 104, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 105,
- 57, 58, 106, 60, 61, 89, 0, 0, 0, 0,
- 0, 0, 90, 0, 0, 0, 107, 108, 0, 0,
- 0, 0, 0, 127, 0, 110, 94, 95, 1, 96,
+ 30, 31, 104, 33, 34, 35, 0, 36, 37, 105,
+ 39, 106, 41, 107, 43, 108, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 109,
+ 57, 58, 59, 60, 61, 89, 0, 0, 0, 0,
+ 0, 0, 90, 0, 0, 0, 111, 112, 0, 0,
+ 0, 0, 0, 131, 0, 114, 94, 95, 1, 96,
97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 0, 0, 104,
- 33, 34, 35, 0, 0, 0, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 105, 57, 58, 106,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 104,
+ 33, 34, 35, 0, 36, 37, 105, 363, 106, 364,
+ 107, 365, 108, 366, 46, 47, 48, 49, 50, 0,
+ 51, 52, 367, 368, 369, 56, 109, 57, 370, 371,
60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
- 0, 0, 0, 107, 108, 0, 0, 0, 0, 0,
- 127, 0, 110, 94, 95, 1, 96, 97, 0, 98,
+ 0, 0, 0, 111, 112, 0, 0, 0, 0, 0,
+ 131, 0, 114, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 104, 0, 34, 35,
- 0, 0, 0, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 105, 57, 58, 106, 60, 61, 89,
+ 0, 0, 0, 0, 30, 31, 104, 33, 34, 35,
+ 0, 36, 37, 105, 39, 106, 41, 107, 43, 108,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 367,
+ 368, 55, 56, 109, 57, 370, 371, 60, 61, 89,
0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 127, 0, 110,
- 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
- 62, 63, 64, 0, 0, 0, 1, 65, 0, 0,
- 2, 3, 4, 5, 6, 409, 66, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
- 62, 63, 0, 0, 410, 0, 1, 65, 0, 0,
- 2, 3, 4, 5, 6, 0, 329, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 0, 57, 58, 59, 60, 61,
- 62, 63, 0, 0, 0, 0, 394, 65, 0, 0,
- 0, 0, 0, 1, 0, 0, 329, 2, 3, 4,
- 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 415, 1, 65, 0, 419, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 439, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 446, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 453, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 454, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 309, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 329, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 411, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 62, 63, 0,
- 0, 0, 0, 1, 65, 0, 0, 2, 3, 4,
- 5, 6, 0, 427, 7, 8, 9, 10, 0, 12,
- 13, 0, 15, 16, 17, 18, 19, 87, 21, 0,
- 22, 0, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 89, 63, 0,
- 0, 1, 358, 359, 65, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
- 57, 58, 59, 60, 61, 89, 0, 0, 0, 1,
- 0, 0, 90, 2, 3, 4, 5, 6, 0, 0,
+ 111, 112, 0, 0, 0, 0, 0, 131, 0, 114,
+ 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 33, 34, 35, 0, 36, 37,
+ 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 0, 0, 0, 111, 112, 0,
+ 0, 0, 0, 0, 131, 0, 114, 94, 95, 1,
+ 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 135, 57, 58,
- 59, 60, 61, 89, 0, 0, 0, 1, 0, 0,
- 90, 2, 3, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
- 0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
- 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 33, 34, 35, 0, 0, 0, 105, 39, 106,
+ 41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
+ 110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
+ 90, 0, 0, 0, 111, 112, 0, 0, 0, 0,
+ 0, 131, 0, 114, 94, 95, 1, 96, 97, 0,
+ 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
+ 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 104, 0, 34,
+ 35, 0, 0, 0, 105, 39, 106, 41, 107, 43,
+ 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
+ 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1, 131, 0,
+ 114, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 26, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 89, 0, 0, 0, 1, 0, 0, 90, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 163, 164, 165, 166, 167, 0, 51, 168, 53,
- 54, 55, 169, 0, 57, 58, 59, 60, 61, 89,
- 0, 0, 0, 1, 0, 0, 90, 2, 3, 4,
- 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
- 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 225, 0, 57, 58, 59, 60, 61, 89, 0, 0,
- 0, 1, 0, 0, 90, 98, 99, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 0,
- 57, 58, 59, 60, 61, 89, 189, 190, 191, 192,
- 212, 213, 90, 214, 0, 0, 196, 215, 216, 291,
- 292, 293, 294, 295, 296, 0, 297, 0, 0, 298,
- 299, 300, 189, 190, 191, 192, 212, 213, 0, 214,
- 0, 0, 196, 215, 216, 0, 0, 0, 0, 0,
- 0, 0, 0, 199, 200, 201, 202, 203, 204, 205,
- 0, 0, 0, 0, 262, 0, 301, 302, 303, 304,
- 305, 306, 307, 0, 0, 308, 0, 0, 0, 199,
- 200, 201, 202, 203, 204, 205, 0, 318, 189, 190,
- 191, 192, 212, 213, 0, 214, 0, 0, 196, 215,
- 216, 189, 190, 191, 192, 212, 213, 0, 214, 0,
- 0, 196, 215, 216, 189, 190, 191, 192, 212, 213,
- 0, 214, 0, 0, 196, 215, 216, 0, 0, 0,
- 0, 0, 0, 0, 0, 199, 200, 201, 202, 203,
- 204, 205, 0, 391, 0, 0, 0, 0, 199, 200,
- 201, 202, 203, 204, 205, 0, 441, 0, 0, 0,
- 0, 199, 200, 201, 202, 203, 204, 205, 0, 448,
- 189, 190, 191, 192, 212, 213, 0, 214, 0, 0,
- 196, 215, 216, 189, 190, 191, 192, 212, 213, 0,
- 214, 0, 0, 196, 215, 216, 0, 0, 0, 291,
- 292, 293, 294, 295, 296, 0, 297, 259, 260, 298,
- 299, 300, 0, 0, 0, 0, 0, 199, 200, 201,
- 202, 203, 204, 205, 0, 0, 0, 0, 0, 0,
- 199, 200, 201, 202, 203, 204, 205, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 301, 302, 303, 304,
- 305, 306, 307, 189, 190, 191, 192, 0, 0, 0,
- 214, 0, 0, 196, 215, 216, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 61, 62, 63, 64, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 437, 66, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 438, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 345, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 418, 65, 0,
+ 0, 0, 0, 0, 1, 0, 0, 345, 2, 3,
+ 4, 5, 6, 0, 0, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 443, 1, 65, 0, 447, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 471, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 478, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 485, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 486, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 325, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 439, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
+ 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
+ 4, 5, 6, 0, 459, 7, 8, 9, 10, 0,
+ 12, 13, 0, 15, 16, 17, 18, 19, 87, 21,
+ 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 89, 63,
+ 0, 0, 1, 382, 383, 65, 2, 3, 4, 5,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
+ 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 0, 57, 58, 59, 60, 61, 89, 0, 0, 0,
+ 1, 0, 0, 90, 2, 3, 4, 5, 6, 0,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
+ 86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
+ 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 89, 0, 0, 0, 1, 0,
+ 0, 90, 2, 3, 4, 5, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
+ 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
+ 27, 0, 0, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 171, 172, 173, 174, 175, 0,
+ 51, 176, 53, 54, 55, 177, 0, 57, 58, 59,
+ 60, 61, 89, 0, 0, 0, 1, 0, 0, 90,
+ 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
+ 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
+ 0, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 233, 0, 57, 58, 59, 60, 61,
+ 89, 0, 0, 0, 1, 0, 0, 90, 98, 99,
+ 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
+ 12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
+ 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 105, 39, 106, 41, 107, 43, 108, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 0, 57, 58, 59, 60, 61, 89, 197,
+ 198, 199, 200, 220, 221, 90, 222, 0, 0, 204,
+ 223, 224, 197, 198, 199, 200, 220, 221, 0, 222,
+ 0, 0, 204, 223, 224, 0, 0, 0, 0, 0,
+ 0, 197, 198, 199, 200, 220, 221, 0, 222, 0,
+ 0, 204, 223, 224, 0, 0, 207, 208, 209, 210,
+ 211, 212, 213, 0, 473, 0, 0, 0, 0, 207,
+ 208, 209, 210, 211, 212, 213, 0, 480, 275, 276,
+ 0, 0, 0, 0, 0, 0, 0, 0, 207, 208,
+ 209, 210, 211, 212, 213, 197, 198, 199, 200, 220,
+ 221, 0, 222, 0, 0, 204, 223, 224, 307, 308,
+ 309, 310, 311, 312, 0, 313, 0, 0, 314, 315,
+ 316, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 199, 200, 201, 202, 203, 204, 205
+ 0, 0, 207, 208, 209, 210, 211, 212, 213, 0,
+ 0, 0, 0, 0, 0, 317, 318, 319, 320, 321,
+ 322, 323
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 65, 0, 31, 21, 309, 331, 311, 9,
- 49, 84, 49, 19, 14, 318, 99, 34, 206, 31,
- 103, 21, 28, 23, 97, 125, 26, 44, 98, 29,
- 100, 334, 132, 69, 49, 63, 97, 52, 69, 69,
- 76, 98, 99, 100, 101, 76, 76, 104, 36, 37,
- 107, 108, 152, 92, 93, 94, 95, 94, 95, 383,
- 160, 385, 69, 63, 64, 65, 390, 73, 68, 76,
- 97, 68, 396, 261, 69, 0, 91, 92, 93, 94,
- 95, 76, 125, 23, 339, 340, 341, 342, 28, 132,
- 345, 55, 97, 57, 98, 59, 98, 61, 102, 97,
- 98, 129, 220, 221, 222, 105, 430, 99, 411, 152,
- 110, 221, 222, 97, 438, 97, 97, 160, 442, 147,
- 308, 97, 33, 97, 427, 449, 97, 97, 452, 129,
- 97, 434, 97, 133, 97, 135, 28, 28, 441, 26,
- 97, 103, 103, 102, 102, 448, 98, 147, 44, 15,
- 28, 97, 26, 100, 16, 155, 97, 28, 97, 97,
- 97, 103, 97, 71, 97, 34, 97, 97, 34, 71,
- 97, 234, 393, 97, 97, 97, 42, 43, 44, 45,
- 46, 47, 68, 49, 28, 405, 52, 53, 54, 258,
- 21, 267, 160, -1, 185, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, 220, 221, 222, -1, -1, -1,
- -1, 211, -1, -1, 211, -1, -1, -1, -1, -1,
- 220, 221, 222, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, 234, 235, -1, -1, 34, -1,
- -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, 319, -1, -1, -1, -1, 267, -1, -1,
- -1, -1, -1, -1, 10, 11, -1, -1, -1, -1,
- -1, 338, -1, 19, -1, -1, 343, 344, -1, 346,
- 347, -1, 28, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, 42, 43, 44, 45, 46, 47, 309,
- 49, 311, -1, 52, 53, 54, -1, -1, 318, -1,
- -1, -1, 322, -1, -1, -1, 62, -1, -1, -1,
- -1, 331, -1, -1, 334, -1, -1, 73, -1, -1,
- -1, -1, 399, 400, 401, 402, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- -1, 100, -1, -1, 392, -1, 102, 103, 425, -1,
- 106, -1, -1, 109, -1, -1, -1, -1, -1, -1,
- 437, -1, -1, 383, 384, 385, -1, 384, -1, -1,
- 390, 127, 392, -1, -1, -1, 396, -1, 134, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 409,
- -1, 411, 409, -1, -1, -1, -1, -1, -1, 419,
- -1, -1, -1, -1, -1, -1, -1, 427, -1, -1,
- 430, -1, -1, -1, 434, -1, -1, -1, 438, -1,
- -1, 441, 442, -1, 444, -1, -1, -1, 448, 449,
- -1, -1, 452, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- -1, -1, -1, -1, -1, -1, 212, 213, 214, 215,
- 216, -1, -1, -1, -1, 33, -1, -1, -1, -1,
- -1, -1, 228, 229, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ 0, 29, 21, 0, 65, 129, 214, 84, 325, 9,
+ 327, 31, 136, 347, 14, 69, 31, 334, 19, 15,
+ 97, 21, 76, 23, 99, 0, 26, 28, 103, 29,
+ 69, 34, 156, 350, 97, 63, 69, 76, 34, 49,
+ 164, 44, 52, 76, 49, 69, 42, 43, 44, 45,
+ 46, 47, 76, 49, 23, 49, 52, 53, 54, 28,
+ 69, 10, 11, 63, 64, 65, 97, 76, 68, 277,
+ 19, 68, 73, 407, 99, 409, 98, 97, 100, 28,
+ 414, 91, 92, 93, 94, 95, 420, 92, 93, 94,
+ 95, 36, 37, 89, 90, 91, 92, 93, 94, 95,
+ 94, 95, 55, 129, 57, 133, 59, 98, 61, 109,
+ 136, 28, 28, 62, 114, 28, 324, 34, 34, 28,
+ 97, 34, 439, 151, 73, 34, 33, 98, 462, 97,
+ 156, 102, 97, 133, 97, 98, 470, 137, 164, 139,
+ 474, 97, 459, 228, 229, 230, 97, 481, 28, 466,
+ 484, 151, 28, 102, 103, 97, 473, 34, 97, 159,
+ 97, 110, 97, 480, 113, 42, 43, 44, 45, 46,
+ 47, 97, 49, 229, 230, 52, 53, 54, 103, 103,
+ 102, 242, 131, 102, 42, 43, 44, 45, 98, 138,
+ 26, 49, 97, 44, 52, 53, 54, 363, 364, 365,
+ 366, 28, 97, 369, 26, 16, 100, 97, 97, 228,
+ 229, 230, 89, 90, 91, 92, 93, 94, 95, 219,
+ 97, 28, 219, 97, 97, 28, 28, 28, 228, 229,
+ 230, 89, 90, 91, 92, 93, 94, 95, 103, 28,
+ 97, 71, 242, 243, 97, 97, 34, 97, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
+ 209, 210, 211, 212, 213, 71, 97, 417, 97, 97,
+ 68, 220, 221, 222, 223, 224, 97, 28, 433, 274,
+ 21, 283, 164, 283, 33, 193, -1, 236, 237, -1,
+ -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 263, 264, -1,
- 266, -1, -1, -1, 270, -1, 272, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, -1, -1, -1, -1, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 317, -1, 5, 6, 7, 8, 9, -1, 11,
- 12, 13, 14, 15, -1, -1, -1, 19, -1, 335,
- -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- 92, 93, -1, -1, -1, -1, -1, 99, 414, 101,
- -1, 103, 5, 6, 7, 8, 9, -1, 11, 12,
- 13, 14, 15, -1, -1, 431, 19, -1, -1, -1,
- 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, -1, -1, 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, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
- -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, 98, 99, -1, 101, 5,
- 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, 39, -1, -1, 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, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
- -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
- 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
- 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
- 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- 39, -1, -1, 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, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
+ -1, -1, -1, -1, -1, 325, -1, 327, -1, -1,
+ 279, 280, -1, 282, 334, -1, -1, 286, 338, 288,
+ 89, 90, 91, 92, 93, 94, 95, 347, -1, -1,
+ 350, -1, -1, -1, -1, -1, -1, -1, 307, 308,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, 333, 52, 53, 54, 416, -1,
+ 98, 99, 100, 101, -1, -1, 104, 105, 106, 107,
+ 108, -1, 351, 111, 112, -1, -1, 407, 408, 409,
+ -1, 408, -1, -1, 414, -1, 416, -1, -1, -1,
+ 420, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 98, -1, 100, -1, -1, -1, 437, -1, 439,
+ 437, -1, -1, -1, -1, -1, -1, 447, -1, -1,
+ -1, -1, -1, 42, 43, 44, 45, 46, 47, 459,
+ 49, -1, 462, 52, 53, 54, 466, -1, -1, -1,
+ 470, -1, -1, 473, 474, -1, 476, -1, -1, -1,
+ 480, 481, -1, -1, 484, 42, 43, 44, 45, 46,
+ 47, -1, 49, 442, -1, 52, 53, 54, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, 100, -1, -1, 463, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 98, 250, 251, 252, 253, 254, 255, 256, 257,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, 273, 274, 275, 276, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, 97, -1, 7, 335, -1, -1,
+ 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
+ -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
+ 31, 32, -1, 34, 362, 36, 37, -1, 39, 367,
+ 368, -1, 370, 371, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, -1, -1, -1, 422, 423, 424, 425, -1, 427,
+ 428, 429, 430, -1, 5, 6, 7, 8, 9, -1,
+ 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
+ -1, -1, 23, 24, -1, 26, 27, 28, 29, 457,
+ 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
+ -1, 469, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, -1, 103, 5, 6, 7, 8, 9, -1, 11,
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
@@ -1435,36 +1419,36 @@ static const yytype_int16 yycheck[] =
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
-1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, 99, -1, 101,
+ 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
-1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ -1, 36, 37, -1, 39, -1, -1, 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, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, 100, 101, 5, 6, 7,
+ -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, 98, 99, -1, 101, 5, 6, 7,
8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, 39, -1, -1, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ -1, 39, -1, -1, 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,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
+ 88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ 98, 99, -1, 101, 5, 6, 7, 8, 9, -1,
11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
-1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
- -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ -1, 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, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 81, -1, -1, -1, -1, -1, -1, 88, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, 99, -1,
101, 5, 6, 7, 8, 9, -1, 11, 12, 13,
14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
@@ -1474,7 +1458,7 @@ static const yytype_int16 yycheck[] =
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
-1, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ -1, -1, -1, -1, -1, 99, 100, 101, 5, 6,
7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
-1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
@@ -1508,7 +1492,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, -1, 53, 54, 55,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
@@ -1517,8 +1501,8 @@ static const yytype_int16 yycheck[] =
9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, -1, -1, -1, 55, 56, 57, 58,
+ 39, -1, -1, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
@@ -1527,201 +1511,208 @@ static const yytype_int16 yycheck[] =
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, -1, 50, 51,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
-1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 7, 99, -1, 101,
- 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, 16, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, 85, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, 87, 88, -1, -1,
- -1, -1, -1, 7, -1, -1, 97, 11, 12, 13,
- 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, 10, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, -1, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, -1, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 7, 8, 9, 88, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
- 76, 77, 78, 79, 80, 81, -1, -1, -1, 7,
- -1, -1, 88, 11, 12, 13, 14, 15, -1, -1,
+ 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, 39, -1, -1, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
+ 48, 49, 50, 51, -1, -1, -1, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, -1, -1, -1, 7, -1, -1,
- 88, 11, 12, 13, 14, 15, -1, -1, -1, 19,
- -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
- -1, 31, 32, -1, 34, -1, 36, 37, -1, 39,
- -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
+ 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
+ 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
+ -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
+ 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
+ 51, -1, -1, -1, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 7, 99, -1,
+ 101, 11, 12, 13, 14, 15, -1, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, -1, -1, -1, 7, -1, -1, 88, 11,
- 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
- -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
- -1, -1, -1, 7, -1, -1, 88, 11, 12, 13,
- 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
- 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
- 34, -1, 36, 37, -1, 39, -1, -1, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
- -1, 7, -1, -1, 88, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
- 76, 77, 78, 79, 80, 81, 42, 43, 44, 45,
- 46, 47, 88, 49, -1, -1, 52, 53, 54, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 80, 81, 82, 83, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, 16, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 87, 88, -1,
+ -1, -1, -1, -1, 7, -1, -1, 97, 11, 12,
+ 13, 14, 15, -1, -1, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, 86, 7, 88, -1, 10, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, 85, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, 85, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, 86, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, 86, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
+ 13, 14, 15, -1, 97, 18, 19, 20, 21, -1,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, 7, 8, 9, 88, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
+ -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ 7, -1, -1, 88, 11, 12, 13, 14, 15, -1,
+ -1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
+ 27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
+ 37, -1, 39, -1, -1, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, -1, -1, -1, 7, -1,
+ -1, 88, 11, 12, 13, 14, 15, -1, -1, -1,
+ 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
+ 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
+ 39, -1, -1, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
+ 79, 80, 81, -1, -1, -1, 7, -1, -1, 88,
+ 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
+ -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
+ 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
+ -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
+ 81, -1, -1, -1, 7, -1, -1, 88, 11, 12,
+ 13, 14, 15, -1, -1, -1, 19, -1, -1, -1,
+ 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, -1, -1, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, -1, 76, 77, 78, 79, 80, 81, 42,
+ 43, 44, 45, 46, 47, 88, 49, -1, -1, 52,
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, 100, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, 98, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 79, 80,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, 42,
- 43, 44, 45, 46, 47, -1, 49, 79, 80, 52,
- 53, 54, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, 42, 43, 44, 45, -1, -1, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1738,42 +1729,45 @@ static const yytype_uint8 yystos[] =
108, 109, 114, 116, 119, 120, 121, 124, 126, 127,
128, 129, 130, 131, 31, 97, 27, 31, 32, 81,
88, 116, 117, 118, 5, 6, 8, 9, 11, 12,
- 13, 14, 19, 26, 48, 75, 78, 92, 93, 99,
- 101, 116, 122, 123, 135, 136, 139, 140, 141, 144,
- 145, 146, 149, 152, 153, 154, 156, 99, 154, 116,
- 31, 122, 154, 36, 37, 75, 116, 136, 138, 144,
- 116, 116, 122, 123, 117, 154, 117, 116, 120, 0,
- 107, 122, 154, 97, 97, 98, 153, 153, 153, 153,
- 154, 154, 153, 63, 64, 65, 66, 67, 70, 74,
- 116, 154, 153, 153, 100, 154, 8, 9, 103, 116,
- 150, 151, 154, 157, 158, 99, 97, 97, 28, 42,
- 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
- 90, 91, 92, 93, 94, 95, 98, 135, 155, 156,
- 154, 33, 46, 47, 49, 53, 54, 117, 97, 97,
- 24, 50, 51, 116, 154, 74, 34, 44, 125, 33,
- 97, 97, 97, 97, 34, 97, 97, 117, 97, 116,
- 28, 155, 69, 76, 69, 76, 69, 76, 69, 76,
- 69, 76, 55, 57, 59, 61, 147, 28, 28, 79,
- 80, 98, 100, 103, 103, 102, 103, 98, 102, 102,
- 98, 157, 26, 154, 154, 154, 154, 154, 154, 154,
+ 13, 14, 19, 26, 48, 55, 57, 59, 61, 75,
+ 78, 92, 93, 99, 101, 116, 122, 123, 135, 136,
+ 139, 140, 141, 144, 145, 146, 149, 152, 153, 154,
+ 156, 99, 154, 116, 31, 122, 154, 36, 37, 75,
+ 116, 136, 138, 144, 116, 116, 122, 123, 117, 154,
+ 117, 116, 120, 0, 107, 122, 154, 97, 97, 98,
+ 153, 153, 153, 153, 154, 154, 153, 153, 153, 153,
+ 153, 63, 64, 65, 66, 67, 70, 74, 116, 154,
+ 153, 153, 100, 154, 8, 9, 103, 116, 150, 151,
+ 154, 157, 158, 99, 97, 97, 28, 42, 43, 44,
+ 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
+ 92, 93, 94, 95, 98, 135, 155, 156, 154, 33,
+ 46, 47, 49, 53, 54, 117, 97, 97, 24, 50,
+ 51, 116, 154, 74, 34, 44, 125, 33, 97, 97,
+ 97, 97, 34, 97, 97, 117, 97, 116, 28, 155,
+ 28, 34, 28, 34, 28, 34, 28, 34, 69, 76,
+ 69, 76, 69, 76, 69, 76, 69, 76, 55, 57,
+ 59, 61, 147, 28, 28, 79, 80, 98, 100, 103,
+ 103, 102, 103, 98, 102, 102, 98, 157, 26, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 158, 42, 43, 44, 45, 46, 47, 49, 52, 53,
- 54, 89, 90, 91, 92, 93, 94, 95, 98, 97,
- 119, 97, 136, 137, 139, 137, 137, 44, 97, 28,
- 154, 154, 84, 97, 110, 111, 112, 113, 120, 97,
- 119, 132, 133, 134, 97, 26, 23, 28, 148, 56,
- 58, 60, 62, 71, 72, 73, 77, 78, 142, 143,
- 153, 142, 153, 153, 158, 154, 154, 154, 8, 9,
- 116, 151, 154, 100, 154, 154, 154, 154, 154, 154,
+ 154, 154, 154, 154, 154, 154, 158, 42, 43, 44,
+ 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
+ 92, 93, 94, 95, 98, 97, 119, 97, 136, 137,
+ 139, 137, 137, 44, 97, 28, 154, 154, 84, 97,
+ 110, 111, 112, 113, 120, 97, 119, 132, 133, 134,
+ 97, 26, 153, 153, 153, 153, 153, 153, 153, 153,
+ 23, 28, 148, 56, 58, 60, 62, 71, 72, 73,
+ 77, 78, 142, 143, 153, 142, 153, 153, 158, 154,
+ 154, 154, 8, 9, 116, 151, 154, 100, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 158, 132, 16, 132, 97, 97, 97, 154,
- 132, 97, 116, 97, 87, 134, 132, 154, 153, 148,
- 148, 148, 148, 153, 153, 148, 153, 153, 100, 16,
- 85, 97, 119, 15, 34, 86, 117, 113, 97, 10,
- 153, 153, 153, 153, 28, 71, 143, 97, 119, 97,
- 132, 34, 154, 97, 97, 115, 116, 71, 132, 85,
- 154, 97, 132, 97, 98, 153, 85, 97, 97, 132,
- 116, 97, 132, 86, 86, 97, 97
+ 154, 154, 154, 154, 154, 154, 158, 132, 16, 132,
+ 97, 97, 97, 154, 132, 97, 116, 97, 87, 134,
+ 132, 154, 28, 28, 28, 28, 153, 148, 148, 148,
+ 148, 153, 153, 148, 153, 153, 100, 16, 85, 97,
+ 119, 15, 34, 86, 117, 113, 97, 10, 153, 153,
+ 153, 153, 153, 153, 153, 153, 28, 71, 143, 97,
+ 119, 97, 132, 34, 154, 97, 97, 115, 116, 71,
+ 132, 85, 154, 97, 132, 97, 98, 153, 85, 97,
+ 97, 132, 116, 97, 132, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1794,16 +1788,17 @@ static const yytype_uint8 yyr1[] =
126, 127, 127, 128, 128, 128, 128, 129, 129, 129,
130, 130, 131, 132, 132, 133, 133, 134, 134, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 136, 137, 137, 138, 138, 139, 139, 140, 140,
- 141, 141, 141, 141, 142, 142, 142, 142, 142, 143,
- 144, 144, 144, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 146, 146, 146, 146, 146, 147, 147,
- 147, 147, 148, 148, 149, 149, 149, 150, 150, 151,
- 151, 151, 152, 152, 153, 153, 154, 154, 154, 154,
+ 135, 136, 137, 137, 138, 138, 139, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 140, 140, 141, 141,
+ 141, 141, 142, 142, 142, 142, 142, 143, 144, 144,
+ 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 146, 146, 146, 146, 146, 147, 147, 147, 147,
+ 148, 148, 149, 149, 149, 150, 150, 151, 151, 151,
+ 152, 152, 153, 153, 154, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 155, 155, 155, 155, 155,
+ 154, 154, 154, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 156, 156, 157, 157, 158, 158
+ 155, 155, 156, 156, 157, 157, 158, 158
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1824,16 +1819,17 @@ static const yytype_int8 yyr2[] =
3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
1, 1, 1, 2, 4, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 1, 1, 1, 5, 1, 1, 5, 2, 2, 2,
- 2, 4, 4, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 6, 6, 6, 6, 6, 1, 1,
- 1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
- 3, 3, 2, 2, 1, 1, 1, 1, 3, 3,
+ 1, 1, 1, 1, 1, 1, 2, 2, 4, 6,
+ 4, 6, 4, 6, 4, 6, 2, 2, 1, 1,
+ 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
+ 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
+ 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
+ 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 1, 1, 3, 3, 3,
+ 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2107,31 +2103,31 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2111 "engines/director/lingo/lingo-gr.cpp"
+#line 2107 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2117 "engines/director/lingo/lingo-gr.cpp"
+#line 2113 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2123 "engines/director/lingo/lingo-gr.cpp"
+#line 2119 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2129 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2135 "engines/director/lingo/lingo-gr.cpp"
+#line 2131 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2399,7 +2395,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2399 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2410,7 +2406,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2410 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2420,37 +2416,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2424 "engines/director/lingo/lingo-gr.cpp"
+#line 2420 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+#line 2426 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2436 "engines/director/lingo/lingo-gr.cpp"
+#line 2432 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2442 "engines/director/lingo/lingo-gr.cpp"
+#line 2438 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2448 "engines/director/lingo/lingo-gr.cpp"
+#line 2444 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2454 "engines/director/lingo/lingo-gr.cpp"
+#line 2450 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2461,7 +2457,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2465 "engines/director/lingo/lingo-gr.cpp"
+#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2471,13 +2467,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2475 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
+#line 2477 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2486,344 +2482,344 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2490 "engines/director/lingo/lingo-gr.cpp"
+#line 2486 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2493 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2499 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2509 "engines/director/lingo/lingo-gr.cpp"
+#line 2505 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tABBREVIATED */
#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2511 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tABBREV */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2521 "engines/director/lingo/lingo-gr.cpp"
+#line 2517 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tABBR */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2527 "engines/director/lingo/lingo-gr.cpp"
+#line 2523 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tAFTER */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2529 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tAND */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2539 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tBEFORE */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2545 "engines/director/lingo/lingo-gr.cpp"
+#line 2541 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tCAST */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2551 "engines/director/lingo/lingo-gr.cpp"
+#line 2547 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tCHAR */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2557 "engines/director/lingo/lingo-gr.cpp"
+#line 2553 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tCHARS */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2563 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tCONTAINS */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2569 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tDATE */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2575 "engines/director/lingo/lingo-gr.cpp"
+#line 2571 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tDOWN */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2581 "engines/director/lingo/lingo-gr.cpp"
+#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tFIELD */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2587 "engines/director/lingo/lingo-gr.cpp"
+#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tFRAME */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2593 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tIN */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2599 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tINTERSECTS */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2601 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tINTO */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2611 "engines/director/lingo/lingo-gr.cpp"
+#line 2607 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tITEM */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2617 "engines/director/lingo/lingo-gr.cpp"
+#line 2613 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tITEMS */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2623 "engines/director/lingo/lingo-gr.cpp"
+#line 2619 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tLAST */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2629 "engines/director/lingo/lingo-gr.cpp"
+#line 2625 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tLINE */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2635 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tLINES */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2641 "engines/director/lingo/lingo-gr.cpp"
+#line 2637 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tLONG */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2647 "engines/director/lingo/lingo-gr.cpp"
+#line 2643 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tMENU */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2653 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tMENUITEM */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2659 "engines/director/lingo/lingo-gr.cpp"
+#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tMENUITEMS */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2665 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tMOD */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tMOVIE */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2677 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tNEXT */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2683 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tNOT */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2689 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tNUMBER */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2691 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tOF */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2697 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* ID: tOPEN */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2707 "engines/director/lingo/lingo-gr.cpp"
+#line 2703 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* ID: tOR */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* ID: tPREVIOUS */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2719 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* ID: tREPEAT */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2725 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* ID: tSCRIPT */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2727 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* ID: tASSERTERROR */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2737 "engines/director/lingo/lingo-gr.cpp"
+#line 2733 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* ID: tSET */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2743 "engines/director/lingo/lingo-gr.cpp"
+#line 2739 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* ID: tSHORT */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* ID: tSOUND */
#line 344 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* ID: tSPRITE */
#line 345 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* ID: tSTARTS */
#line 346 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2767 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* ID: tTELL */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2773 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* ID: tTIME */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2779 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* ID: tTO */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2785 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* ID: tWHILE */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* ID: tWINDOW */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2797 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* ID: tWITH */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* ID: tWITHIN */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* ID: tWORD */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2815 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* ID: tWORDS */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2821 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* idlist: %empty */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* nonemptyidlist: ID */
@@ -2832,7 +2828,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2836 "engines/director/lingo/lingo-gr.cpp"
+#line 2832 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2840,67 +2836,67 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2844 "engines/director/lingo/lingo-gr.cpp"
+#line 2840 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* proc: ID cmdargs '\n' */
#line 392 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2850 "engines/director/lingo/lingo-gr.cpp"
+#line 2846 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* proc: tPUT cmdargs '\n' */
#line 393 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2856 "engines/director/lingo/lingo-gr.cpp"
+#line 2852 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* proc: tGO cmdargs '\n' */
#line 394 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2862 "engines/director/lingo/lingo-gr.cpp"
+#line 2858 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* proc: tGO frameargs '\n' */
#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2868 "engines/director/lingo/lingo-gr.cpp"
+#line 2864 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* proc: tPLAY cmdargs '\n' */
#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2874 "engines/director/lingo/lingo-gr.cpp"
+#line 2870 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* proc: tPLAY frameargs '\n' */
#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2880 "engines/director/lingo/lingo-gr.cpp"
+#line 2876 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* proc: tNEXT tREPEAT '\n' */
#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2886 "engines/director/lingo/lingo-gr.cpp"
+#line 2882 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* proc: tEXIT tREPEAT '\n' */
#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2892 "engines/director/lingo/lingo-gr.cpp"
+#line 2888 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* proc: tEXIT '\n' */
#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2898 "engines/director/lingo/lingo-gr.cpp"
+#line 2894 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* proc: tASSERTERROR stmtoneliner */
#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2904 "engines/director/lingo/lingo-gr.cpp"
+#line 2900 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* cmdargs: %empty */
@@ -2908,7 +2904,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+#line 2908 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* cmdargs: expr */
@@ -2918,7 +2914,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2922 "engines/director/lingo/lingo-gr.cpp"
+#line 2918 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* cmdargs: expr ',' nonemptyexprlist */
@@ -2927,7 +2923,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* cmdargs: expr expr_nounarymath */
@@ -2938,7 +2934,7 @@ yyreduce:
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2942 "engines/director/lingo/lingo-gr.cpp"
+#line 2938 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
@@ -2948,7 +2944,7 @@ yyreduce:
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2952 "engines/director/lingo/lingo-gr.cpp"
+#line 2948 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* cmdargs: '(' ')' */
@@ -2956,7 +2952,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2960 "engines/director/lingo/lingo-gr.cpp"
+#line 2956 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -2965,7 +2961,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* frameargs: tFRAME expr */
@@ -2975,7 +2971,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* frameargs: tMOVIE expr */
@@ -2986,7 +2982,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2990 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -2997,7 +2993,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3001 "engines/director/lingo/lingo-gr.cpp"
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* frameargs: expr tOF tMOVIE expr */
@@ -3008,7 +3004,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3012 "engines/director/lingo/lingo-gr.cpp"
+#line 3008 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3019,49 +3015,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 471 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3029 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 472 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3035 "engines/director/lingo/lingo-gr.cpp"
+#line 3031 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 473 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3041 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* asgn: tSET varorthe to expr '\n' */
#line 474 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3047 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* definevars: tGLOBAL idlist '\n' */
#line 479 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3053 "engines/director/lingo/lingo-gr.cpp"
+#line 3049 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* definevars: tPROPERTY idlist '\n' */
#line 480 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3059 "engines/director/lingo/lingo-gr.cpp"
+#line 3055 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* definevars: tINSTANCE idlist '\n' */
#line 481 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3065 "engines/director/lingo/lingo-gr.cpp"
+#line 3061 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* ifstmt: tIF expr tTHEN stmt */
@@ -3070,14 +3066,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3070 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
#line 488 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3081 "engines/director/lingo/lingo-gr.cpp"
+#line 3077 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3088,7 +3084,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3092 "engines/director/lingo/lingo-gr.cpp"
+#line 3088 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
@@ -3097,7 +3093,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3101 "engines/director/lingo/lingo-gr.cpp"
+#line 3097 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
@@ -3106,35 +3102,35 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3110 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
#line 506 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+#line 3113 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 510 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 3120 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 512 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3131 "engines/director/lingo/lingo-gr.cpp"
+#line 3127 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 514 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3138 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* tell: tTELL expr tTO stmtoneliner */
@@ -3143,26 +3139,26 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3147 "engines/director/lingo/lingo-gr.cpp"
+#line 3143 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 522 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
+#line 3150 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* when: tWHEN ID tTHEN expr */
#line 526 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3160 "engines/director/lingo/lingo-gr.cpp"
+#line 3156 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* stmtlist: %empty */
#line 528 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3166 "engines/director/lingo/lingo-gr.cpp"
+#line 3162 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* nonemptystmtlist: stmtlistline */
@@ -3173,7 +3169,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3177 "engines/director/lingo/lingo-gr.cpp"
+#line 3173 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* nonemptystmtlist: stmtlist stmtlistline */
@@ -3183,61 +3179,61 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3187 "engines/director/lingo/lingo-gr.cpp"
+#line 3183 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* stmtlistline: '\n' */
#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3193 "engines/director/lingo/lingo-gr.cpp"
+#line 3189 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* simpleexpr_nounarymath: tINT */
#line 553 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
+#line 3195 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* simpleexpr_nounarymath: tFLOAT */
#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3205 "engines/director/lingo/lingo-gr.cpp"
+#line 3201 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* simpleexpr_nounarymath: tSYMBOL */
#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3211 "engines/director/lingo/lingo-gr.cpp"
+#line 3207 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* simpleexpr_nounarymath: tSTRING */
#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3217 "engines/director/lingo/lingo-gr.cpp"
+#line 3213 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* simpleexpr_nounarymath: tNOT simpleexpr */
#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3223 "engines/director/lingo/lingo-gr.cpp"
+#line 3219 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
#line 558 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3229 "engines/director/lingo/lingo-gr.cpp"
+#line 3225 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* simpleexpr_nounarymath: '(' expr ')' */
#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3235 "engines/director/lingo/lingo-gr.cpp"
+#line 3231 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* var: ID */
#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3241 "engines/director/lingo/lingo-gr.cpp"
+#line 3237 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* chunk: tFIELD simpleexpr */
@@ -3246,7 +3242,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3250 "engines/director/lingo/lingo-gr.cpp"
+#line 3246 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* chunk: tCAST simpleexpr */
@@ -3255,495 +3251,551 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3259 "engines/director/lingo/lingo-gr.cpp"
+#line 3255 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* object: tSCRIPT simpleexpr */
+ case 158: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 585 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 159: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
#line 587 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3269 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 160: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 589 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
+#line 3276 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 161: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 591 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3283 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 162: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 593 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 163: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 595 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3297 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 164: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 597 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 165: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 599 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 3311 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 166: /* object: tSCRIPT simpleexpr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3268 "engines/director/lingo/lingo-gr.cpp"
+#line 3320 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* object: tWINDOW simpleexpr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 167: /* object: tWINDOW simpleexpr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3277 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 171: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3283 "engines/director/lingo/lingo-gr.cpp"
+#line 3335 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 174: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 621 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3289 "engines/director/lingo/lingo-gr.cpp"
+#line 3341 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* theobj: tSOUND simpleexpr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 175: /* theobj: tSOUND simpleexpr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3295 "engines/director/lingo/lingo-gr.cpp"
+#line 3347 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* theobj: tSPRITE simpleexpr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 176: /* theobj: tSPRITE simpleexpr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3301 "engines/director/lingo/lingo-gr.cpp"
+#line 3353 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* menu: tMENU simpleexpr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 177: /* menu: tMENU simpleexpr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3307 "engines/director/lingo/lingo-gr.cpp"
+#line 3359 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* writablethe: tTHE ID */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 178: /* writablethe: tTHE ID */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3313 "engines/director/lingo/lingo-gr.cpp"
+#line 3365 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* writablethe: tTHE ID tOF theobj */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 179: /* writablethe: tTHE ID tOF theobj */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3319 "engines/director/lingo/lingo-gr.cpp"
+#line 3371 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 180: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 630 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3325 "engines/director/lingo/lingo-gr.cpp"
+#line 3377 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 617 "engines/director/lingo/lingo-gr.y"
+ case 181: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 633 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3331 "engines/director/lingo/lingo-gr.cpp"
+#line 3383 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 182: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3337 "engines/director/lingo/lingo-gr.cpp"
+#line 3389 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* thedatetime: tTHE tABBREV tDATE */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 183: /* thedatetime: tTHE tABBREV tDATE */
+#line 635 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3343 "engines/director/lingo/lingo-gr.cpp"
+#line 3395 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* thedatetime: tTHE tABBREV tTIME */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 184: /* thedatetime: tTHE tABBREV tTIME */
+#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3349 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* thedatetime: tTHE tABBR tDATE */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 185: /* thedatetime: tTHE tABBR tDATE */
+#line 637 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3355 "engines/director/lingo/lingo-gr.cpp"
+#line 3407 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* thedatetime: tTHE tABBR tTIME */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 186: /* thedatetime: tTHE tABBR tTIME */
+#line 638 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3361 "engines/director/lingo/lingo-gr.cpp"
+#line 3413 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* thedatetime: tTHE tLONG tDATE */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 187: /* thedatetime: tTHE tLONG tDATE */
+#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3367 "engines/director/lingo/lingo-gr.cpp"
+#line 3419 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* thedatetime: tTHE tLONG tTIME */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 188: /* thedatetime: tTHE tLONG tTIME */
+#line 640 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3373 "engines/director/lingo/lingo-gr.cpp"
+#line 3425 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* thedatetime: tTHE tSHORT tDATE */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 189: /* thedatetime: tTHE tSHORT tDATE */
+#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3379 "engines/director/lingo/lingo-gr.cpp"
+#line 3431 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* thedatetime: tTHE tSHORT tTIME */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 190: /* thedatetime: tTHE tSHORT tTIME */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3385 "engines/director/lingo/lingo-gr.cpp"
+#line 3437 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 191: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3391 "engines/director/lingo/lingo-gr.cpp"
+#line 3443 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 192: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3449 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 193: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3455 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 194: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3461 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 195: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3467 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* chunktype: tCHAR */
-#line 637 "engines/director/lingo/lingo-gr.y"
+ case 196: /* chunktype: tCHAR */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3421 "engines/director/lingo/lingo-gr.cpp"
+#line 3473 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* chunktype: tWORD */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 197: /* chunktype: tWORD */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3427 "engines/director/lingo/lingo-gr.cpp"
+#line 3479 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* chunktype: tITEM */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 198: /* chunktype: tITEM */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3433 "engines/director/lingo/lingo-gr.cpp"
+#line 3485 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* chunktype: tLINE */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 199: /* chunktype: tLINE */
+#line 656 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3439 "engines/director/lingo/lingo-gr.cpp"
+#line 3491 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* list: '[' exprlist ']' */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 202: /* list: '[' exprlist ']' */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3445 "engines/director/lingo/lingo-gr.cpp"
+#line 3497 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* list: '[' ':' ']' */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 203: /* list: '[' ':' ']' */
+#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+#line 3503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* list: '[' proplist ']' */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 204: /* list: '[' proplist ']' */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3457 "engines/director/lingo/lingo-gr.cpp"
+#line 3509 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* proplist: proppair */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 205: /* proplist: proppair */
+#line 666 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3466 "engines/director/lingo/lingo-gr.cpp"
+#line 3518 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* proplist: proplist ',' proppair */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 206: /* proplist: proplist ',' proppair */
+#line 670 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3474 "engines/director/lingo/lingo-gr.cpp"
+#line 3526 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* proppair: tSYMBOL ':' expr */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 207: /* proppair: tSYMBOL ':' expr */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3480 "engines/director/lingo/lingo-gr.cpp"
+#line 3532 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* proppair: ID ':' expr */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 208: /* proppair: ID ':' expr */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3486 "engines/director/lingo/lingo-gr.cpp"
+#line 3538 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* proppair: tSTRING ':' expr */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 209: /* proppair: tSTRING ':' expr */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 3544 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* unarymath: '+' simpleexpr */
-#line 664 "engines/director/lingo/lingo-gr.y"
+ case 210: /* unarymath: '+' simpleexpr */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3498 "engines/director/lingo/lingo-gr.cpp"
+#line 3550 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* unarymath: '-' simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 211: /* unarymath: '-' simpleexpr */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3504 "engines/director/lingo/lingo-gr.cpp"
+#line 3556 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* expr: expr '+' expr */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 216: /* expr: expr '+' expr */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+#line 3562 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* expr: expr '-' expr */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 217: /* expr: expr '-' expr */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3516 "engines/director/lingo/lingo-gr.cpp"
+#line 3568 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* expr: expr '*' expr */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 218: /* expr: expr '*' expr */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 3574 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* expr: expr '/' expr */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 219: /* expr: expr '/' expr */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3528 "engines/director/lingo/lingo-gr.cpp"
+#line 3580 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* expr: expr tMOD expr */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 220: /* expr: expr tMOD expr */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3534 "engines/director/lingo/lingo-gr.cpp"
+#line 3586 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* expr: expr '>' expr */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 221: /* expr: expr '>' expr */
+#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3540 "engines/director/lingo/lingo-gr.cpp"
+#line 3592 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* expr: expr '<' expr */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 222: /* expr: expr '<' expr */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3546 "engines/director/lingo/lingo-gr.cpp"
+#line 3598 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* expr: expr tEQ expr */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 223: /* expr: expr tEQ expr */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3604 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* expr: expr tNEQ expr */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 224: /* expr: expr tNEQ expr */
+#line 699 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3610 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* expr: expr tGE expr */
-#line 684 "engines/director/lingo/lingo-gr.y"
+ case 225: /* expr: expr tGE expr */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3616 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* expr: expr tLE expr */
-#line 685 "engines/director/lingo/lingo-gr.y"
+ case 226: /* expr: expr tLE expr */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 3622 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* expr: expr tAND expr */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 227: /* expr: expr tAND expr */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 3628 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* expr: expr tOR expr */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 228: /* expr: expr tOR expr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+#line 3634 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* expr: expr '&' expr */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 229: /* expr: expr '&' expr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3588 "engines/director/lingo/lingo-gr.cpp"
+#line 3640 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* expr: expr tCONCAT expr */
-#line 689 "engines/director/lingo/lingo-gr.y"
+ case 230: /* expr: expr tCONCAT expr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3594 "engines/director/lingo/lingo-gr.cpp"
+#line 3646 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* expr: expr tCONTAINS expr */
-#line 690 "engines/director/lingo/lingo-gr.y"
+ case 231: /* expr: expr tCONTAINS expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3600 "engines/director/lingo/lingo-gr.cpp"
+#line 3652 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* expr: expr tSTARTS expr */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 232: /* expr: expr tSTARTS expr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3606 "engines/director/lingo/lingo-gr.cpp"
+#line 3658 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 235: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3612 "engines/director/lingo/lingo-gr.cpp"
+#line 3664 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 701 "engines/director/lingo/lingo-gr.y"
+ case 236: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+#line 3670 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 237: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3624 "engines/director/lingo/lingo-gr.cpp"
+#line 3676 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 238: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3630 "engines/director/lingo/lingo-gr.cpp"
+#line 3682 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 239: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3636 "engines/director/lingo/lingo-gr.cpp"
+#line 3688 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 240: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 721 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3642 "engines/director/lingo/lingo-gr.cpp"
+#line 3694 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 241: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 722 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3648 "engines/director/lingo/lingo-gr.cpp"
+#line 3700 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 242: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3654 "engines/director/lingo/lingo-gr.cpp"
+#line 3706 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 243: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 724 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3660 "engines/director/lingo/lingo-gr.cpp"
+#line 3712 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 244: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 725 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3666 "engines/director/lingo/lingo-gr.cpp"
+#line 3718 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 245: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 726 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3672 "engines/director/lingo/lingo-gr.cpp"
+#line 3724 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 246: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 727 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3678 "engines/director/lingo/lingo-gr.cpp"
+#line 3730 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 247: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 728 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3684 "engines/director/lingo/lingo-gr.cpp"
+#line 3736 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3690 "engines/director/lingo/lingo-gr.cpp"
+#line 3742 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3696 "engines/director/lingo/lingo-gr.cpp"
+#line 3748 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 715 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3702 "engines/director/lingo/lingo-gr.cpp"
+#line 3754 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3708 "engines/director/lingo/lingo-gr.cpp"
+#line 3760 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 252: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3714 "engines/director/lingo/lingo-gr.cpp"
+#line 3766 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 253: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3720 "engines/director/lingo/lingo-gr.cpp"
+#line 3772 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* exprlist: %empty */
-#line 723 "engines/director/lingo/lingo-gr.y"
+ case 254: /* exprlist: %empty */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3726 "engines/director/lingo/lingo-gr.cpp"
+#line 3778 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* nonemptyexprlist: expr */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 256: /* nonemptyexprlist: expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3735 "engines/director/lingo/lingo-gr.cpp"
+#line 3787 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 257: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3743 "engines/director/lingo/lingo-gr.cpp"
+#line 3795 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3747 "engines/director/lingo/lingo-gr.cpp"
+#line 3799 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3942,7 +3994,7 @@ yyreturn:
return yyresult;
}
-#line 736 "engines/director/lingo/lingo-gr.y"
+#line 752 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index d95d9cf5e6..cafcb0fdd2 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -582,6 +582,22 @@ chunk: tFIELD simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("cast"), args); }
+ | tCHAR simpleexpr[idx] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkChar, $idx, nullptr, $src); }
+ | tCHAR simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkChar, $start, $end, $src); }
+ | tWORD simpleexpr[idx] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkWord, $idx, nullptr, $src); }
+ | tWORD simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkWord, $start, $end, $src); }
+ | tITEM simpleexpr[idx] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkItem, $idx, nullptr, $src); }
+ | tITEM simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkItem, $start, $end, $src); }
+ | tLINE simpleexpr[idx] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkLine, $idx, nullptr, $src); }
+ | tLINE simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ $$ = new ChunkExprNode(kChunkLine, $start, $end, $src); }
;
object: tSCRIPT simpleexpr[arg] {
Commit: a825a68f554a294206fb2e4cf47ce67e42602e0c
https://github.com/scummvm/scummvm/commit/a825a68f554a294206fb2e4cf47ce67e42602e0c
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement open
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index ec01f11b1d..adf1ad9e8b 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -631,18 +631,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 153
+#define YYFINAL 155
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3841
+#define YYLAST 4062
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 55
/* YYNRULES -- Number of rules. */
-#define YYNRULES 257
+#define YYNRULES 258
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 489
+#define YYNSTATES 495
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -705,27 +705,27 @@ static const yytype_int16 yyrline[] =
278, 282, 283, 284, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 306, 307, 311,
313, 314, 315, 316, 317, 318, 319, 320, 322, 323,
- 324, 326, 327, 328, 329, 330, 331, 333, 334, 336,
- 339, 340, 341, 342, 343, 344, 345, 346, 347, 350,
- 351, 353, 354, 355, 356, 357, 358, 361, 362, 365,
- 369, 379, 380, 381, 382, 383, 384, 387, 388, 389,
- 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
- 404, 407, 412, 416, 422, 427, 430, 440, 445, 451,
- 457, 463, 471, 472, 473, 474, 477, 477, 479, 480,
- 481, 484, 488, 492, 498, 502, 506, 510, 512, 514,
- 518, 522, 526, 528, 529, 533, 539, 546, 547, 553,
- 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
- 564, 567, 569, 570, 573, 574, 577, 581, 585, 587,
- 589, 591, 593, 595, 597, 599, 603, 607, 613, 614,
- 615, 616, 619, 620, 621, 622, 623, 626, 628, 629,
- 630, 633, 634, 635, 636, 637, 638, 639, 640, 641,
- 642, 646, 647, 648, 649, 650, 653, 654, 655, 656,
- 659, 659, 661, 662, 663, 666, 670, 675, 676, 677,
- 680, 681, 684, 685, 689, 690, 691, 692, 693, 694,
- 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
- 705, 706, 707, 714, 715, 716, 717, 718, 719, 720,
- 721, 722, 723, 724, 725, 726, 727, 728, 729, 730,
- 731, 732, 735, 736, 739, 740, 743, 747
+ 324, 326, 327, 328, 329, 330, 331, 334, 336, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 350, 351,
+ 353, 354, 355, 356, 357, 358, 361, 362, 365, 369,
+ 379, 380, 381, 382, 383, 384, 387, 388, 389, 392,
+ 393, 394, 395, 396, 397, 398, 399, 404, 405, 406,
+ 407, 410, 413, 418, 422, 428, 433, 436, 446, 451,
+ 457, 463, 469, 477, 478, 479, 480, 483, 483, 485,
+ 486, 487, 490, 494, 498, 504, 508, 512, 516, 518,
+ 520, 524, 528, 532, 534, 535, 539, 545, 552, 553,
+ 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
+ 569, 570, 573, 575, 576, 579, 580, 583, 587, 591,
+ 593, 595, 597, 599, 601, 603, 605, 609, 613, 619,
+ 620, 621, 622, 625, 626, 627, 628, 629, 632, 634,
+ 635, 636, 639, 640, 641, 642, 643, 644, 645, 646,
+ 647, 648, 652, 653, 654, 655, 656, 659, 660, 661,
+ 662, 665, 665, 667, 668, 669, 672, 676, 681, 682,
+ 683, 686, 687, 690, 691, 695, 696, 697, 698, 699,
+ 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
+ 710, 711, 712, 713, 720, 721, 722, 723, 724, 725,
+ 726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
+ 736, 737, 738, 741, 742, 745, 746, 749, 753
};
#endif
@@ -791,7 +791,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-335)
+#define YYPACT_NINF (-331)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -805,55 +805,56 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2170, -335, -335, -335, -335, -335, -335, -20, -335, 3373,
- 1303, 1400, -335, -335, 3373, -335, -15, -335, -335, 1497,
- 55, 619, -335, 3373, -335, -335, 3373, -335, 1303, 3373,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, 1400, 3373, 3373, 3217, -335, 25, 2170, -335,
- -335, -335, -335, 1497, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -63, -335, -335, -335, -335, -335,
- -335, -335, -31, 9, -335, -335, -335, -335, 1594, 1594,
- 1594, 1594, 1400, 1400, 1594, 1594, 1594, 1594, 1594, 3451,
- 1400, 1594, 1594, 1206, 719, -25, 23, 32, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, 818,
- -335, 1400, 251, 3373, 35, 44, 915, 3373, 1400, 3529,
- -335, -335, -3, -335, 93, 49, 58, 61, 63, 123,
- 65, 3373, -335, -335, -335, 74, 1012, -335, -335, 3373,
- -335, -335, -335, -335, 1109, 3733, -335, 83, 84, 87,
- 91, -54, -39, -33, -24, -9, 47, 120, 124, 3679,
- -335, -335, -335, 333, 75, 76, 78, -75, 29, -335,
- 3733, 81, 90, 1400, -335, -335, 164, 1400, 1400, 1400,
- 1400, 1885, 1885, 2079, 1400, 1982, 1982, 1400, 1400, 1400,
- 1400, 1400, 1400, 1400, 1400, -335, 443, -335, 411, 2897,
- 1400, 1400, 1400, 1400, 1400, 95, -335, -335, 3607, 3607,
- 3607, 149, 508, 173, -335, -335, 1400, 1400, -77, -335,
- -335, -335, 3217, 2977, -335, 105, -335, -335, 178, 3746,
- 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, 31, 1691, 1788, 1594, 1594, 1400, -335, 1400,
- 1400, -335, 1400, 3295, -335, -335, 1400, 106, 1400, -10,
- -10, -10, -10, 142, 142, -335, -5, -10, -10, -10,
- -10, -5, 6, 6, -335, -335, 90, 1400, 1400, 1400,
- 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
- 1400, 1400, 1400, 1400, 1400, 2977, 189, 2977, -335, 110,
- -335, 111, 126, 1400, 2977, 1788, 527, 3733, 3373, -335,
- -335, 127, -335, -335, -335, -335, -335, 2330, -335, -335,
- 2977, 1400, -335, 193, -335, 197, -335, 198, -335, 199,
- -335, -335, 1594, 31, 31, 31, 31, 1594, 1594, 31,
- 1594, 1594, -335, -335, -335, -335, -335, -335, -22, 3733,
- 3733, 3733, 75, 76, 135, -335, 3733, -335, 3733, -10,
- -10, -10, -10, 142, 142, -335, -5, -10, -10, -10,
- -10, -5, 6, 6, -335, -335, 90, 2250, 3057, 2977,
- -335, -335, -335, 4, 2417, -335, 3373, -77, 143, -335,
- 2497, 3733, 1594, 1594, 1594, 1594, -335, 1594, 1594, 1594,
- 1594, -335, 211, 170, -335, -335, -335, 3137, 147, 2977,
- -335, 212, 1400, 148, 150, -335, -335, 3373, -335, -335,
- -335, -335, -335, -335, -335, -335, 194, 1594, -335, 2977,
- -335, -335, 2577, 1400, 3647, -335, 2977, 37, -335, 1594,
- 2657, 169, 3660, 2977, 2977, -335, 3373, -335, 171, -335,
- 2977, 2737, -335, -335, 2817, 172, 179, -335, -335
+ 2243, -331, -331, -331, -331, -331, -331, -24, -331, 3446,
+ 1376, 1473, -331, -331, 3446, -331, 25, -331, -331, 1570,
+ 75, 3368, -331, 3446, -331, -331, 3446, 1570, 1376, 3446,
+ -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+ -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+ -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+ -331, -331, 1473, 3446, 3446, 3290, -331, 31, 2243, -331,
+ -331, -331, -331, 1570, -331, -331, -331, -331, -331, -331,
+ -331, -331, -331, -331, -49, -331, -331, -331, -331, -331,
+ -331, -331, -12, -31, -331, -331, -331, -331, 1667, 1667,
+ 1667, 1667, 1473, 1473, 1667, 1667, 1667, 1667, 1667, 3524,
+ 1473, 1667, 1667, 1279, 695, -11, 10, 21, -331, -331,
+ -331, -331, -331, -331, -331, -331, -331, -331, -331, 794,
+ -331, 1473, 405, 3446, 23, 37, 891, 3446, 1473, 3602,
+ -331, -331, -17, -331, 103, 44, 47, 988, 48, 50,
+ 51, 8, 54, 3446, -331, -331, -331, 55, 1085, -331,
+ -331, 3446, -331, -331, -331, -331, 1182, 3897, -331, -18,
+ 38, 41, 76, -41, -33, -32, -30, 5, 64, 126,
+ 127, 3884, -331, -331, -331, 459, 56, 61, 63, -16,
+ -22, -331, 3897, 65, 60, 1473, -331, -331, 140, 1473,
+ 1473, 1473, 1473, 1958, 1958, 2152, 1473, 2055, 2055, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, -331, 3720, -331,
+ 207, 2970, 1473, 1473, 1473, 1473, 1473, 71, -331, -331,
+ 3680, 3680, 3680, 128, 3733, 145, -331, -331, 1473, 1473,
+ -73, -331, 1473, -331, -331, -331, 3290, 3050, -331, 78,
+ -331, -331, 150, 3913, 1667, 1667, 1667, 1667, 1667, 1667,
+ 1667, 1667, -331, -331, -331, -331, -331, -331, -331, -331,
+ -331, -331, -331, -331, -331, -331, 17, 1764, 1861, 1667,
+ 1667, 1473, -331, 1473, 1473, -331, 1473, 596, -331, -331,
+ 1473, 79, 1473, 122, 122, 122, 122, 3967, 3967, -331,
+ -2, 122, 122, 122, 122, -2, -36, -36, -331, -331,
+ 60, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 3050,
+ 162, 3050, -331, 85, -331, 87, 88, 1473, 3050, 1861,
+ 3746, 3897, 3446, -331, -331, 89, -331, -331, 3802, -331,
+ -331, -331, 2403, -331, -331, 3050, 1473, -331, 159, -331,
+ 160, -331, 167, -331, 169, -331, -331, 1667, 17, 17,
+ 17, 17, 1667, 1667, 17, 1667, 1667, -331, -331, -331,
+ -331, -331, -331, -80, 3897, 3897, 3897, 56, 61, 99,
+ -331, 3897, -331, 3897, 122, 122, 122, 122, 3967, 3967,
+ -331, -2, 122, 122, 122, 122, -2, -36, -36, -331,
+ -331, 60, 2323, 3130, 3050, -331, -331, -331, 147, 2490,
+ -331, 3446, -73, -331, 106, -331, 2570, 3897, 1667, 1667,
+ 1667, 1667, -331, 1667, 1667, 1667, 1667, -331, 176, 135,
+ -331, -331, -331, 3210, 110, 3050, -331, 174, 1473, 112,
+ 121, -331, -331, 3446, -331, -331, -331, -331, -331, -331,
+ -331, -331, 148, 1667, -331, 3050, -331, -331, 2650, 1473,
+ 3815, -331, 3050, 18, -331, 1667, 2730, 123, 3828, 3050,
+ 3050, -331, 3446, -331, 125, -331, 3050, 2810, -331, -331,
+ 2890, 129, 130, -331, -331
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -861,77 +862,78 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 0, 24, 31, 37, 61, 72, 36, 0, 38, 77,
- 100, 0, 39, 41, 0, 52, 53, 56, 59, 100,
- 60, 63, 70, 0, 73, 71, 0, 57, 100, 77,
- 29, 58, 54, 51, 28, 30, 34, 67, 32, 33,
- 42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
- 64, 35, 44, 48, 49, 50, 55, 69, 65, 66,
- 40, 74, 68, 77, 0, 62, 5, 0, 2, 3,
- 6, 7, 8, 100, 9, 81, 87, 88, 89, 82,
- 83, 84, 85, 86, 0, 98, 53, 60, 63, 68,
- 62, 79, 0, 78, 139, 140, 142, 141, 31, 37,
- 61, 72, 38, 52, 54, 32, 42, 45, 75, 0,
- 66, 0, 0, 0, 254, 151, 0, 0, 212, 146,
- 147, 148, 149, 168, 169, 170, 150, 213, 214, 101,
- 215, 0, 0, 77, 0, 0, 101, 0, 0, 0,
- 151, 154, 0, 155, 0, 0, 0, 0, 0, 0,
- 0, 77, 99, 1, 4, 0, 101, 97, 118, 0,
- 157, 156, 166, 167, 107, 108, 143, 0, 0, 0,
- 0, 25, 26, 27, 47, 64, 44, 55, 178, 0,
- 210, 211, 105, 0, 142, 141, 0, 151, 0, 205,
- 256, 0, 255, 254, 92, 93, 56, 0, 0, 0,
- 0, 29, 58, 51, 0, 34, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 233, 103, 234, 0, 0,
- 0, 0, 0, 0, 0, 0, 96, 91, 41, 28,
- 30, 0, 0, 55, 116, 117, 0, 0, 13, 94,
- 95, 120, 0, 133, 119, 0, 90, 80, 56, 111,
- 0, 0, 0, 0, 0, 0, 0, 0, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 196, 198,
- 199, 197, 0, 0, 0, 0, 0, 0, 145, 0,
- 0, 203, 0, 0, 204, 202, 0, 0, 0, 225,
- 226, 223, 224, 227, 228, 220, 230, 231, 232, 222,
- 221, 229, 216, 217, 218, 219, 102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 133, 121, 133, 152, 0,
- 153, 0, 0, 0, 133, 0, 0, 132, 0, 17,
- 18, 11, 14, 15, 130, 137, 138, 0, 134, 135,
- 133, 0, 158, 0, 162, 0, 164, 0, 160, 0,
- 200, 201, 0, 33, 43, 46, 76, 48, 49, 50,
- 65, 66, 180, 173, 172, 179, 252, 253, 0, 209,
- 207, 208, 0, 0, 0, 206, 257, 144, 110, 244,
- 245, 242, 243, 246, 247, 239, 249, 250, 251, 241,
- 240, 248, 235, 236, 237, 238, 104, 0, 0, 10,
- 112, 113, 114, 0, 0, 115, 77, 0, 0, 136,
- 20, 109, 0, 0, 0, 0, 171, 0, 0, 0,
- 0, 177, 0, 0, 175, 176, 106, 0, 0, 133,
- 123, 0, 0, 0, 0, 16, 131, 21, 159, 163,
- 165, 161, 191, 193, 194, 192, 0, 0, 195, 133,
- 125, 122, 0, 0, 0, 127, 133, 0, 22, 0,
- 0, 0, 0, 133, 12, 19, 0, 174, 0, 124,
- 133, 0, 23, 126, 0, 0, 0, 128, 129
+ 0, 24, 31, 37, 60, 71, 36, 0, 38, 76,
+ 101, 0, 39, 41, 0, 52, 53, 56, 58, 101,
+ 59, 62, 69, 0, 72, 70, 0, 101, 101, 76,
+ 29, 57, 54, 51, 28, 30, 34, 66, 32, 33,
+ 42, 43, 45, 46, 74, 75, 25, 26, 27, 47,
+ 63, 35, 44, 48, 49, 50, 55, 68, 64, 65,
+ 40, 73, 67, 76, 0, 61, 5, 0, 2, 3,
+ 6, 7, 8, 101, 9, 80, 86, 87, 88, 81,
+ 82, 83, 84, 85, 0, 99, 53, 59, 62, 67,
+ 61, 78, 0, 77, 140, 141, 143, 142, 31, 37,
+ 60, 71, 38, 52, 54, 32, 42, 45, 74, 0,
+ 65, 0, 0, 0, 255, 152, 0, 0, 213, 147,
+ 148, 149, 150, 169, 170, 171, 151, 214, 215, 102,
+ 216, 0, 0, 76, 0, 0, 102, 0, 0, 0,
+ 152, 155, 0, 156, 0, 0, 0, 102, 0, 0,
+ 0, 0, 0, 76, 100, 1, 4, 0, 102, 98,
+ 119, 0, 158, 157, 167, 168, 108, 109, 144, 0,
+ 0, 0, 0, 25, 26, 27, 47, 63, 44, 55,
+ 179, 0, 211, 212, 106, 0, 143, 142, 0, 152,
+ 0, 206, 257, 0, 256, 255, 91, 92, 56, 0,
+ 0, 0, 0, 29, 57, 51, 0, 34, 66, 0,
+ 0, 0, 0, 0, 0, 0, 0, 234, 104, 235,
+ 0, 0, 0, 0, 0, 0, 0, 0, 97, 90,
+ 41, 28, 30, 0, 0, 55, 117, 118, 0, 0,
+ 13, 95, 72, 93, 94, 121, 0, 134, 120, 0,
+ 89, 79, 56, 112, 0, 0, 0, 0, 0, 0,
+ 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 197, 199, 200, 198, 0, 0, 0, 0,
+ 0, 0, 146, 0, 0, 204, 0, 0, 205, 203,
+ 0, 0, 0, 226, 227, 224, 225, 228, 229, 221,
+ 231, 232, 233, 223, 222, 230, 217, 218, 219, 220,
+ 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
+ 122, 134, 153, 0, 154, 0, 0, 0, 134, 0,
+ 0, 133, 0, 17, 18, 11, 14, 15, 0, 131,
+ 138, 139, 0, 135, 136, 134, 0, 159, 0, 163,
+ 0, 165, 0, 161, 0, 201, 202, 0, 33, 43,
+ 46, 75, 48, 49, 50, 64, 65, 181, 174, 173,
+ 180, 253, 254, 0, 210, 208, 209, 0, 0, 0,
+ 207, 258, 145, 111, 245, 246, 243, 244, 247, 248,
+ 240, 250, 251, 252, 242, 241, 249, 236, 237, 238,
+ 239, 105, 0, 0, 10, 113, 114, 115, 0, 0,
+ 116, 76, 0, 96, 0, 137, 20, 110, 0, 0,
+ 0, 0, 172, 0, 0, 0, 0, 178, 0, 0,
+ 176, 177, 107, 0, 0, 134, 124, 0, 0, 0,
+ 0, 16, 132, 21, 160, 164, 166, 162, 192, 194,
+ 195, 193, 0, 0, 196, 134, 126, 123, 0, 0,
+ 0, 128, 134, 0, 22, 0, 0, 0, 0, 134,
+ 12, 19, 0, 175, 0, 125, 134, 0, 23, 127,
+ 0, 0, 0, 129, 130
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -335, -335, -335, 202, -335, -335, -335, -335, -335, -150,
- -335, -335, 0, -28, -335, 3, -61, -335, -1, 249,
- -335, -335, -335, -335, -335, -335, -335, -335, -317, -335,
- -334, -124, -19, -56, -335, -85, -335, -335, 5, -155,
- 259, -335, -335, -335, -166, -335, -335, -2, -335, 292,
- 51, 118, -26, 92, -208
+ -331, -331, -331, 155, -331, -331, -331, -331, -331, -197,
+ -331, -331, 0, -25, -331, 3, -63, -331, 6, 200,
+ -331, -331, -331, -331, -331, -331, -331, -331, -323, -331,
+ -330, -117, -20, -105, -331, -100, -331, -331, -45, -210,
+ 213, -331, -331, -331, -58, -331, -331, -52, -331, 262,
+ 67, 77, -23, 49, -211
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 67, 68, 69, 70, 71, 340, 341, 342, 343,
- 72, 467, 115, 92, 93, 346, 75, 76, 116, 117,
- 77, 236, 78, 79, 80, 81, 82, 83, 347, 348,
- 349, 118, 119, 329, 142, 120, 121, 122, 372, 373,
- 123, 124, 125, 272, 362, 126, 188, 189, 127, 128,
- 190, 216, 130, 191, 192
+ 0, 67, 68, 69, 70, 71, 344, 345, 346, 347,
+ 72, 473, 115, 92, 93, 351, 75, 76, 116, 117,
+ 77, 238, 78, 79, 80, 81, 82, 83, 352, 353,
+ 354, 118, 119, 333, 142, 120, 121, 122, 377, 378,
+ 123, 124, 125, 276, 367, 126, 190, 191, 127, 128,
+ 192, 218, 130, 193, 194
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -939,200 +941,217 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 73, 148, 141, 74, 152, 215, 306, 338, 407, 91,
- 409, 84, 215, 419, 133, 258, 134, 414, 135, 441,
- 339, 140, 259, 144, 193, 153, 145, 146, 282, 91,
- 260, 234, 215, 420, 157, 150, 262, 261, 442, 222,
- 215, 235, 204, 263, 222, 264, 197, 198, 199, 200,
- 220, 221, 265, 222, 360, 222, 204, 223, 224, 361,
- 266, 129, 132, 91, 151, 73, 158, 267, 73, 378,
- 136, 74, 155, 419, 193, 419, 286, 85, 436, 129,
- 419, 209, 210, 211, 212, 213, 419, 210, 211, 212,
- 213, 137, 138, 207, 208, 209, 210, 211, 212, 213,
- 212, 213, 268, 217, 269, 225, 270, 159, 271, 178,
- 217, 250, 252, 149, 187, 254, 406, 251, 253, 256,
- 194, 255, 462, 245, 156, 257, 237, 283, 419, 195,
- 217, 284, 226, 91, 475, 476, 419, 231, 217, 178,
- 419, 227, 470, 330, 330, 330, 238, 419, 273, 474,
- 419, 91, 274, 164, 165, 239, 481, 242, 240, 247,
- 241, 179, 244, 484, 183, 197, 198, 199, 200, 220,
- 221, 246, 222, 331, 332, 204, 223, 224, 279, 280,
- 281, 344, 218, 285, 197, 198, 199, 200, 286, 232,
- 288, 222, 327, 333, 204, 223, 224, 427, 428, 429,
- 430, 335, 350, 433, 351, 408, 387, 410, 411, 328,
- 328, 328, 207, 208, 209, 210, 211, 212, 213, 73,
- 243, 422, 326, 412, 417, 423, 424, 425, 140, 140,
- 140, 207, 208, 209, 210, 211, 212, 213, 282, 456,
- 446, 457, 73, 73, 461, 465, 463, 466, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 469, 479, 445, 483, 487,
- 154, 293, 294, 295, 297, 298, 488, 147, 458, 375,
- 143, 385, 249, 384, 219, 287, 0, 336, 337, 0,
- 0, 0, 0, 197, 198, 199, 200, 220, 221, 0,
- 222, 0, 0, 204, 223, 224, 0, 0, 0, 0,
+ 73, 141, 154, 74, 150, 310, 412, 84, 414, 91,
+ 254, 342, 217, 224, 133, 419, 255, 236, 290, 217,
+ 442, 140, 425, 144, 343, 135, 145, 237, 262, 91,
+ 217, 155, 426, 146, 148, 263, 264, 266, 152, 268,
+ 365, 217, 246, 265, 267, 366, 269, 224, 159, 217,
+ 199, 200, 201, 202, 222, 223, 134, 224, 214, 215,
+ 206, 225, 226, 91, 153, 73, 256, 161, 73, 258,
+ 383, 74, 257, 85, 270, 259, 287, 129, 132, 157,
+ 288, 271, 425, 195, 425, 160, 136, 286, 195, 425,
+ 212, 213, 214, 215, 147, 129, 425, 209, 210, 211,
+ 212, 213, 214, 215, 260, 247, 219, 196, 227, 180,
+ 261, 137, 138, 219, 189, 481, 482, 411, 197, 272,
+ 228, 273, 468, 274, 219, 275, 335, 336, 249, 151,
+ 334, 334, 334, 91, 229, 219, 239, 233, 425, 180,
+ 158, 240, 476, 219, 241, 243, 425, 244, 245, 480,
+ 425, 248, 250, 91, 277, 278, 487, 425, 290, 283,
+ 425, 251, 447, 490, 284, 285, 292, 289, 331, 166,
+ 167, 224, 337, 339, 206, 355, 356, 181, 413, 392,
+ 185, 448, 415, 349, 416, 417, 422, 428, 429, 199,
+ 200, 201, 202, 222, 223, 430, 224, 431, 220, 206,
+ 225, 226, 286, 452, 462, 234, 463, 467, 469, 471,
+ 332, 332, 332, 211, 212, 213, 214, 215, 472, 475,
+ 485, 73, 489, 156, 330, 451, 493, 494, 149, 464,
+ 140, 140, 140, 380, 143, 390, 209, 210, 211, 212,
+ 213, 214, 215, 253, 291, 0, 73, 73, 0, 199,
+ 200, 201, 202, 222, 223, 0, 224, 0, 0, 206,
+ 225, 226, 0, 0, 0, 0, 293, 294, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 0, 0, 0, 0, 389, 0, 297,
+ 298, 299, 301, 302, 0, 0, 209, 210, 211, 212,
+ 213, 214, 215, 0, 0, 340, 341, 282, 0, 348,
+ 433, 434, 435, 436, 0, 0, 439, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
+ 0, 73, 0, 0, 0, 0, 0, 0, 73, 0,
+ 0, 0, 421, 0, 0, 0, 0, 0, 0, 0,
+ 384, 385, 73, 386, 0, 73, 0, 391, 0, 393,
+ 162, 163, 164, 165, 0, 0, 168, 169, 170, 171,
+ 172, 0, 0, 182, 183, 0, 0, 0, 394, 395,
+ 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
+ 406, 407, 408, 409, 410, 0, 450, 0, 0, 0,
+ 0, 0, 0, 0, 418, 0, 0, 0, 0, 0,
+ 0, 0, 73, 73, 73, 0, 446, 0, 0, 73,
+ 0, 91, 0, 427, 0, 0, 73, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 221, 0,
+ 0, 0, 0, 73, 0, 73, 466, 199, 200, 201,
+ 202, 222, 223, 474, 224, 0, 0, 206, 225, 226,
+ 0, 0, 0, 0, 0, 73, 0, 0, 73, 0,
+ 0, 0, 73, 0, 0, 0, 73, 0, 0, 73,
+ 73, 0, 488, 0, 0, 0, 73, 73, 0, 0,
+ 73, 0, 0, 0, 209, 210, 211, 212, 213, 214,
+ 215, 199, 200, 201, 202, 222, 223, 0, 224, 0,
+ 0, 206, 225, 226, 0, 470, 357, 358, 359, 360,
+ 361, 362, 363, 364, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 478, 0, 0, 379,
+ 379, 381, 382, 0, 0, 0, 0, 0, 209, 210,
+ 211, 212, 213, 214, 215, 0, 0, 281, 0, 282,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 73, 0, 73, 0, 0,
- 379, 380, 0, 381, 73, 0, 0, 386, 416, 388,
- 207, 208, 209, 210, 211, 212, 213, 73, 0, 0,
- 73, 0, 0, 0, 0, 0, 0, 0, 389, 390,
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 402, 403, 404, 405, 197, 198, 199, 200, 220,
- 221, 0, 222, 0, 413, 204, 223, 224, 444, 0,
- 160, 161, 162, 163, 0, 0, 166, 167, 168, 169,
- 170, 0, 421, 180, 181, 0, 0, 73, 73, 73,
- 0, 440, 0, 0, 73, 0, 91, 0, 0, 0,
- 73, 0, 207, 208, 209, 210, 211, 212, 213, 0,
- 0, 277, 0, 278, 0, 0, 0, 73, 0, 73,
- 460, 0, 0, 0, 0, 0, 0, 468, 0, 0,
- 0, 0, 0, 197, 198, 199, 200, 220, 221, 73,
- 222, 0, 73, 204, 223, 224, 73, 0, 0, 0,
- 73, 0, 0, 73, 73, 0, 482, 0, 0, 0,
- 73, 73, 0, 0, 73, 307, 308, 309, 310, 311,
- 312, 0, 313, 464, 0, 314, 315, 316, 0, 0,
- 207, 208, 209, 210, 211, 212, 213, 0, 0, 0,
- 0, 278, 0, 0, 472, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 317, 318, 319, 320, 321, 322, 323, 0,
- 0, 324, 352, 353, 354, 355, 356, 357, 358, 359,
- 197, 198, 199, 200, 220, 221, 0, 222, 0, 0,
- 204, 223, 224, 0, 0, 374, 374, 376, 377, 197,
- 198, 199, 200, 220, 221, 0, 222, 0, 0, 204,
- 223, 224, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 207, 208, 209,
- 210, 211, 212, 213, 0, 334, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 207, 208, 209, 210,
- 211, 212, 213, 0, 415, 0, 1, 374, 0, 0,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
- 87, 88, 0, 22, 426, 24, 25, 0, 27, 431,
- 432, 0, 434, 435, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 139, 57, 58, 59, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 0, 0, 0, 448, 449, 450, 451, 0, 452,
- 453, 454, 455, 0, 94, 95, 1, 184, 185, 0,
- 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 431,
- 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 477, 0, 0, 0, 30, 31, 104, 33, 34,
- 35, 0, 36, 37, 105, 39, 106, 41, 107, 43,
- 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 111, 112, 0, 0, 0, 0, 0, 131, 0,
- 114, 0, 186, 94, 95, 1, 96, 97, 0, 98,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 379, 0, 1, 387, 388, 0, 2, 3, 4,
+ 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 86, 17, 18, 0, 87, 88, 432,
+ 22, 0, 24, 25, 437, 438, 0, 440, 441, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
+ 0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
+ 454, 455, 456, 457, 0, 458, 459, 460, 461, 0,
+ 94, 95, 1, 186, 187, 0, 98, 99, 100, 101,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
+ 0, 15, 86, 17, 18, 437, 87, 88, 0, 22,
+ 0, 24, 25, 0, 0, 0, 0, 483, 0, 0,
+ 0, 30, 31, 104, 33, 34, 35, 0, 36, 37,
+ 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
+ 0, 0, 0, 90, 0, 0, 0, 111, 112, 0,
+ 0, 0, 0, 0, 131, 0, 114, 0, 188, 94,
+ 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 86, 198, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 0, 0, 0, 199, 200, 201, 202,
+ 203, 204, 104, 205, 34, 35, 206, 207, 208, 105,
+ 39, 106, 41, 107, 43, 108, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 109,
+ 57, 58, 110, 60, 61, 89, 0, 0, 0, 0,
+ 0, 0, 90, 209, 210, 211, 212, 213, 214, 215,
+ 0, 0, 216, 131, 0, 114, 94, 95, 1, 96,
+ 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
+ 8, 0, 0, 0, 12, 230, 0, 15, 86, 17,
+ 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
+ 0, 0, 0, 199, 200, 201, 202, 203, 204, 104,
+ 205, 231, 232, 206, 207, 208, 105, 39, 106, 41,
+ 107, 43, 108, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 109, 57, 58, 110,
+ 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
+ 209, 210, 211, 212, 213, 214, 215, 0, 0, 216,
+ 131, 0, 114, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 196, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 197, 198, 199, 200, 201, 202, 104, 203, 34, 35,
- 204, 205, 206, 105, 39, 106, 41, 107, 43, 108,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 242, 25, 0, 0, 0, 0,
+ 199, 200, 201, 202, 203, 204, 104, 205, 34, 35,
+ 206, 207, 208, 105, 39, 106, 41, 107, 43, 108,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 109, 57, 58, 110, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 207, 208, 209,
- 210, 211, 212, 213, 0, 0, 214, 131, 0, 114,
+ 0, 0, 0, 0, 0, 0, 90, 209, 210, 211,
+ 212, 213, 214, 215, 0, 0, 216, 131, 0, 114,
94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 228,
+ 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 197, 198, 199,
- 200, 201, 202, 104, 203, 229, 230, 204, 205, 206,
+ 0, 24, 25, 0, 0, 0, 0, 199, 200, 201,
+ 202, 203, 204, 104, 205, 34, 35, 206, 207, 208,
105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 207, 208, 209, 210, 211, 212,
- 213, 0, 0, 214, 131, 0, 114, 94, 95, 1,
+ 0, 0, 0, 90, 209, 210, 211, 212, 213, 214,
+ 215, 0, 0, 216, 131, 0, 114, 94, 95, 1,
96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
- 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 197, 198, 199, 200, 201, 202,
- 104, 203, 34, 35, 204, 205, 206, 105, 39, 106,
+ 252, 18, 0, 87, 88, 0, 22, 0, 24, 25,
+ 0, 0, 0, 0, 199, 200, 201, 202, 203, 204,
+ 104, 205, 34, 35, 206, 207, 208, 105, 39, 106,
41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 207, 208, 209, 210, 211, 212, 213, 0, 0,
- 214, 131, 0, 114, 94, 95, 1, 96, 97, 0,
+ 90, 209, 210, 211, 212, 213, 214, 215, 0, 0,
+ 0, 131, 0, 114, 94, 95, 1, 96, 97, 0,
98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 248, 18, 0,
- 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 197, 198, 199, 200, 201, 202, 104, 203, 34,
- 35, 204, 205, 206, 105, 39, 106, 41, 107, 43,
+ 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
+ 87, 88, 0, 22, 0, 24, 25, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 31, 104, 33, 34,
+ 35, 0, 36, 37, 105, 39, 106, 41, 107, 43,
108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 207, 208,
- 209, 210, 211, 212, 213, 0, 0, 0, 131, 0,
+ 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
+ 0, 111, 112, 0, 0, 0, 0, 0, 131, 184,
114, 94, 95, 1, 96, 97, 0, 98, 99, 100,
- 101, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
- 22, 0, 24, 25, 0, 27, 0, 0, 0, 0,
+ 101, 6, 0, 0, 0, 102, 0, 0, 0, 12,
+ 13, 0, 103, 86, 17, 18, 0, 87, 88, 0,
+ 22, 0, 24, 25, 0, 0, 0, 0, 0, 0,
0, 0, 30, 31, 104, 33, 34, 35, 0, 36,
37, 105, 39, 106, 41, 107, 43, 108, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 109, 57, 58, 110, 60, 61, 89, 0, 0,
0, 0, 0, 0, 90, 0, 0, 0, 111, 112,
- 0, 0, 0, 0, 0, 131, 182, 114, 94, 95,
+ 0, 0, 0, 0, 0, 113, 0, 114, 94, 95,
1, 96, 97, 0, 98, 99, 100, 101, 6, 0,
- 0, 0, 102, 0, 0, 0, 12, 13, 0, 103,
+ 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
- 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 30,
31, 104, 33, 34, 35, 0, 36, 37, 105, 39,
106, 41, 107, 43, 108, 45, 46, 47, 48, 49,
50, 0, 51, 52, 53, 54, 55, 56, 109, 57,
58, 110, 60, 61, 89, 0, 0, 0, 0, 0,
0, 90, 0, 0, 0, 111, 112, 0, 0, 0,
- 0, 0, 113, 0, 114, 94, 95, 1, 96, 97,
+ 0, 0, 131, 0, 114, 94, 95, 1, 96, 97,
0, 98, 99, 100, 101, 6, 0, 0, 0, 8,
0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
- 0, 87, 88, 0, 22, 0, 24, 25, 0, 27,
+ 0, 87, 88, 0, 22, 0, 24, 25, 0, 0,
0, 0, 0, 0, 0, 0, 30, 31, 104, 33,
34, 35, 0, 36, 37, 105, 39, 106, 41, 107,
43, 108, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 109, 57, 58, 110, 60,
61, 89, 0, 0, 0, 0, 0, 0, 90, 0,
- 0, 0, 111, 112, 0, 0, 0, 0, 0, 131,
+ 0, 0, 111, 112, 0, 0, 0, 0, 0, 113,
0, 114, 94, 95, 1, 96, 97, 0, 98, 99,
100, 101, 6, 0, 0, 0, 8, 0, 0, 0,
12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
+ 0, 22, 0, 24, 25, 0, 0, 0, 0, 0,
0, 0, 0, 30, 31, 104, 33, 34, 35, 0,
36, 37, 105, 39, 106, 41, 107, 43, 108, 45,
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 109, 57, 58, 110, 60, 61, 89, 0,
+ 55, 56, 109, 57, 58, 59, 60, 61, 89, 0,
0, 0, 0, 0, 0, 90, 0, 0, 0, 111,
- 112, 0, 0, 0, 0, 0, 113, 0, 114, 94,
+ 112, 0, 0, 0, 0, 0, 131, 0, 114, 94,
95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 27, 0, 0, 0, 0, 0, 0,
+ 24, 25, 0, 0, 0, 0, 0, 0, 0, 0,
30, 31, 104, 33, 34, 35, 0, 36, 37, 105,
- 39, 106, 41, 107, 43, 108, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 109,
- 57, 58, 59, 60, 61, 89, 0, 0, 0, 0,
+ 368, 106, 369, 107, 370, 108, 371, 46, 47, 48,
+ 49, 50, 0, 51, 52, 372, 373, 374, 56, 109,
+ 57, 375, 376, 60, 61, 89, 0, 0, 0, 0,
0, 0, 90, 0, 0, 0, 111, 112, 0, 0,
0, 0, 0, 131, 0, 114, 94, 95, 1, 96,
97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 104,
- 33, 34, 35, 0, 36, 37, 105, 363, 106, 364,
- 107, 365, 108, 366, 46, 47, 48, 49, 50, 0,
- 51, 52, 367, 368, 369, 56, 109, 57, 370, 371,
+ 0, 0, 0, 0, 0, 0, 0, 30, 31, 104,
+ 33, 34, 35, 0, 36, 37, 105, 39, 106, 41,
+ 107, 43, 108, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 372, 373, 55, 56, 109, 57, 375, 376,
60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
0, 0, 0, 111, 112, 0, 0, 0, 0, 0,
131, 0, 114, 94, 95, 1, 96, 97, 0, 98,
99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 27, 0, 0,
- 0, 0, 0, 0, 30, 31, 104, 33, 34, 35,
+ 88, 0, 22, 0, 24, 25, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 104, 33, 34, 35,
0, 36, 37, 105, 39, 106, 41, 107, 43, 108,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 367,
- 368, 55, 56, 109, 57, 370, 371, 60, 61, 89,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 109, 57, 58, 110, 60, 61, 89,
0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
111, 112, 0, 0, 0, 0, 0, 131, 0, 114,
94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 33, 34, 35, 0, 36, 37,
+ 0, 24, 25, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 33, 34, 35, 0, 0, 0,
105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
@@ -1141,279 +1160,301 @@ static const yytype_int16 yytable[] =
96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 104, 33, 34, 35, 0, 0, 0, 105, 39, 106,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 34, 35, 0, 0, 0, 105, 39, 106,
41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 0, 0, 0, 111, 112, 0, 0, 0, 0,
- 0, 131, 0, 114, 94, 95, 1, 96, 97, 0,
- 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
- 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 104, 0, 34,
- 35, 0, 0, 0, 105, 39, 106, 41, 107, 43,
- 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 131, 0,
- 114, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 26, 27,
+ 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 131, 0, 114, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
+ 1, 65, 0, 0, 2, 3, 4, 5, 6, 443,
+ 66, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 0, 0, 444, 0,
+ 1, 65, 0, 0, 2, 3, 4, 5, 6, 0,
+ 350, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
+ 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
+ 424, 65, 0, 0, 0, 0, 0, 1, 0, 0,
+ 350, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 64, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 437, 66, 7, 8,
+ 61, 62, 63, 0, 0, 0, 449, 1, 65, 0,
+ 453, 2, 3, 4, 5, 6, 0, 350, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 438, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 345, 7, 8,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 418, 65, 0,
- 0, 0, 0, 0, 1, 0, 0, 345, 2, 3,
- 4, 5, 6, 0, 0, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 443, 1, 65, 0, 447, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 471, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 478, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 485, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 486, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 325, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 345, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 439, 7, 8, 9, 10, 11,
- 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
- 0, 22, 23, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 62, 63,
- 0, 0, 0, 0, 1, 65, 0, 0, 2, 3,
- 4, 5, 6, 0, 459, 7, 8, 9, 10, 0,
- 12, 13, 0, 15, 16, 17, 18, 19, 87, 21,
- 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 89, 63,
- 0, 0, 1, 382, 383, 65, 2, 3, 4, 5,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 27, 0, 0, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 0, 57, 58, 59, 60, 61, 89, 0, 0, 0,
- 1, 0, 0, 90, 2, 3, 4, 5, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
- 25, 0, 27, 0, 0, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 89, 0, 0, 0, 1, 0,
- 0, 90, 2, 3, 4, 5, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
- 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 27, 0, 0, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 171, 172, 173, 174, 175, 0,
- 51, 176, 53, 54, 55, 177, 0, 57, 58, 59,
- 60, 61, 89, 0, 0, 0, 1, 0, 0, 90,
- 2, 3, 4, 5, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
- 87, 88, 0, 22, 0, 24, 25, 0, 27, 0,
- 0, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 233, 0, 57, 58, 59, 60, 61,
- 89, 0, 0, 0, 1, 0, 0, 90, 98, 99,
- 4, 5, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
- 0, 22, 0, 24, 25, 0, 27, 0, 0, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 105, 39, 106, 41, 107, 43, 108, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 0, 57, 58, 59, 60, 61, 89, 197,
- 198, 199, 200, 220, 221, 90, 222, 0, 0, 204,
- 223, 224, 197, 198, 199, 200, 220, 221, 0, 222,
- 0, 0, 204, 223, 224, 0, 0, 0, 0, 0,
- 0, 197, 198, 199, 200, 220, 221, 0, 222, 0,
- 0, 204, 223, 224, 0, 0, 207, 208, 209, 210,
- 211, 212, 213, 0, 473, 0, 0, 0, 0, 207,
- 208, 209, 210, 211, 212, 213, 0, 480, 275, 276,
- 0, 0, 0, 0, 0, 0, 0, 0, 207, 208,
- 209, 210, 211, 212, 213, 197, 198, 199, 200, 220,
- 221, 0, 222, 0, 0, 204, 223, 224, 307, 308,
- 309, 310, 311, 312, 0, 313, 0, 0, 314, 315,
- 316, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 61, 62, 63, 0, 0, 477, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 484, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 491, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 492, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 329, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 445, 7, 8,
+ 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
+ 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
+ 0, 2, 3, 4, 5, 6, 0, 465, 7, 8,
+ 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
+ 19, 87, 21, 0, 22, 0, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 89, 63, 0, 0, 1, 0, 0, 65, 2,
+ 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
+ 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
+ 88, 0, 22, 0, 24, 25, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 139, 57, 58, 59, 60, 61, 89,
+ 0, 0, 0, 1, 0, 0, 90, 2, 3, 4,
+ 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
+ 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
+ 22, 0, 24, 25, 0, 0, 0, 0, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
+ 0, 1, 0, 0, 90, 2, 3, 4, 5, 6,
+ 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
+ 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
+ 24, 25, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 173, 174, 175,
+ 176, 177, 0, 51, 178, 53, 54, 55, 179, 0,
+ 57, 58, 59, 60, 61, 89, 0, 0, 0, 1,
+ 0, 0, 90, 2, 3, 4, 5, 6, 0, 0,
+ 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
+ 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 235, 0, 57, 58,
+ 59, 60, 61, 89, 0, 0, 0, 1, 0, 0,
+ 90, 98, 99, 4, 5, 6, 0, 0, 0, 8,
+ 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
+ 0, 87, 88, 0, 22, 0, 24, 25, 0, 0,
+ 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 105, 39, 106, 41, 107,
+ 43, 108, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
+ 61, 89, 311, 312, 313, 314, 315, 316, 90, 317,
+ 0, 0, 318, 319, 320, 199, 200, 201, 202, 222,
+ 223, 0, 224, 0, 0, 206, 225, 226, 199, 200,
+ 201, 202, 222, 223, 0, 224, 0, 0, 206, 225,
+ 226, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+ 322, 323, 324, 325, 326, 327, 0, 0, 328, 0,
+ 0, 0, 209, 210, 211, 212, 213, 214, 215, 0,
+ 338, 0, 0, 0, 0, 209, 210, 211, 212, 213,
+ 214, 215, 0, 420, 199, 200, 201, 202, 222, 223,
+ 0, 224, 0, 0, 206, 225, 226, 199, 200, 201,
+ 202, 222, 223, 0, 224, 0, 0, 206, 225, 226,
+ 199, 200, 201, 202, 222, 223, 0, 224, 0, 0,
+ 206, 225, 226, 0, 0, 0, 0, 0, 0, 0,
+ 0, 209, 210, 211, 212, 213, 214, 215, 0, 423,
+ 0, 0, 0, 0, 209, 210, 211, 212, 213, 214,
+ 215, 0, 479, 0, 0, 0, 0, 209, 210, 211,
+ 212, 213, 214, 215, 0, 486, 199, 200, 201, 202,
+ 222, 223, 0, 224, 0, 0, 206, 225, 226, 199,
+ 200, 201, 202, 222, 223, 0, 224, 0, 0, 206,
+ 225, 226, 0, 0, 0, 311, 312, 313, 314, 315,
+ 316, 0, 317, 279, 280, 318, 319, 320, 0, 0,
+ 0, 0, 0, 209, 210, 211, 212, 213, 214, 215,
+ 0, 0, 0, 0, 0, 0, 209, 210, 211, 212,
+ 213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 321, 322, 323, 324, 325, 326, 327, 199,
+ 200, 201, 202, 0, 0, 0, 224, 0, 0, 206,
+ 225, 226, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 207, 208, 209, 210, 211, 212, 213, 0,
- 0, 0, 0, 0, 0, 317, 318, 319, 320, 321,
- 322, 323
+ 0, 0, 0, 0, 0, 0, 209, 210, 211, 212,
+ 213, 214, 215
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 0, 65, 129, 214, 84, 325, 9,
- 327, 31, 136, 347, 14, 69, 31, 334, 19, 15,
- 97, 21, 76, 23, 99, 0, 26, 28, 103, 29,
- 69, 34, 156, 350, 97, 63, 69, 76, 34, 49,
- 164, 44, 52, 76, 49, 69, 42, 43, 44, 45,
- 46, 47, 76, 49, 23, 49, 52, 53, 54, 28,
- 69, 10, 11, 63, 64, 65, 97, 76, 68, 277,
- 19, 68, 73, 407, 99, 409, 98, 97, 100, 28,
- 414, 91, 92, 93, 94, 95, 420, 92, 93, 94,
- 95, 36, 37, 89, 90, 91, 92, 93, 94, 95,
- 94, 95, 55, 129, 57, 133, 59, 98, 61, 109,
- 136, 28, 28, 62, 114, 28, 324, 34, 34, 28,
- 97, 34, 439, 151, 73, 34, 33, 98, 462, 97,
- 156, 102, 97, 133, 97, 98, 470, 137, 164, 139,
- 474, 97, 459, 228, 229, 230, 97, 481, 28, 466,
- 484, 151, 28, 102, 103, 97, 473, 34, 97, 159,
- 97, 110, 97, 480, 113, 42, 43, 44, 45, 46,
- 47, 97, 49, 229, 230, 52, 53, 54, 103, 103,
- 102, 242, 131, 102, 42, 43, 44, 45, 98, 138,
- 26, 49, 97, 44, 52, 53, 54, 363, 364, 365,
- 366, 28, 97, 369, 26, 16, 100, 97, 97, 228,
- 229, 230, 89, 90, 91, 92, 93, 94, 95, 219,
- 97, 28, 219, 97, 97, 28, 28, 28, 228, 229,
- 230, 89, 90, 91, 92, 93, 94, 95, 103, 28,
- 97, 71, 242, 243, 97, 97, 34, 97, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 71, 97, 417, 97, 97,
- 68, 220, 221, 222, 223, 224, 97, 28, 433, 274,
- 21, 283, 164, 283, 33, 193, -1, 236, 237, -1,
- -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 325, -1, 327, -1, -1,
- 279, 280, -1, 282, 334, -1, -1, 286, 338, 288,
- 89, 90, 91, 92, 93, 94, 95, 347, -1, -1,
- 350, -1, -1, -1, -1, -1, -1, -1, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
- 319, 320, 321, 322, 323, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, 333, 52, 53, 54, 416, -1,
+ 0, 21, 65, 0, 29, 216, 329, 31, 331, 9,
+ 28, 84, 129, 49, 14, 338, 34, 34, 98, 136,
+ 100, 21, 352, 23, 97, 19, 26, 44, 69, 29,
+ 147, 0, 355, 27, 28, 76, 69, 69, 63, 69,
+ 23, 158, 34, 76, 76, 28, 76, 49, 97, 166,
+ 42, 43, 44, 45, 46, 47, 31, 49, 94, 95,
+ 52, 53, 54, 63, 64, 65, 28, 98, 68, 28,
+ 281, 68, 34, 97, 69, 34, 98, 10, 11, 73,
+ 102, 76, 412, 99, 414, 97, 19, 103, 99, 419,
+ 92, 93, 94, 95, 27, 28, 426, 89, 90, 91,
+ 92, 93, 94, 95, 28, 97, 129, 97, 133, 109,
+ 34, 36, 37, 136, 114, 97, 98, 328, 97, 55,
+ 97, 57, 445, 59, 147, 61, 231, 232, 153, 62,
+ 230, 231, 232, 133, 97, 158, 33, 137, 468, 139,
+ 73, 97, 465, 166, 97, 97, 476, 97, 97, 472,
+ 480, 97, 97, 153, 28, 28, 479, 487, 98, 103,
+ 490, 161, 15, 486, 103, 102, 26, 102, 97, 102,
+ 103, 49, 44, 28, 52, 97, 26, 110, 16, 100,
+ 113, 34, 97, 246, 97, 97, 97, 28, 28, 42,
+ 43, 44, 45, 46, 47, 28, 49, 28, 131, 52,
+ 53, 54, 103, 97, 28, 138, 71, 97, 34, 97,
+ 230, 231, 232, 91, 92, 93, 94, 95, 97, 71,
+ 97, 221, 97, 68, 221, 422, 97, 97, 28, 439,
+ 230, 231, 232, 278, 21, 287, 89, 90, 91, 92,
+ 93, 94, 95, 166, 195, -1, 246, 247, -1, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, -1, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, -1, -1, -1, -1, 287, -1, 222,
+ 223, 224, 225, 226, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 238, 239, 100, -1, 242,
+ 368, 369, 370, 371, -1, -1, 374, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 329,
+ -1, 331, -1, -1, -1, -1, -1, -1, 338, -1,
+ -1, -1, 342, -1, -1, -1, -1, -1, -1, -1,
+ 283, 284, 352, 286, -1, 355, -1, 290, -1, 292,
98, 99, 100, 101, -1, -1, 104, 105, 106, 107,
- 108, -1, 351, 111, 112, -1, -1, 407, 408, 409,
- -1, 408, -1, -1, 414, -1, 416, -1, -1, -1,
- 420, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, 98, -1, 100, -1, -1, -1, 437, -1, 439,
- 437, -1, -1, -1, -1, -1, -1, 447, -1, -1,
- -1, -1, -1, 42, 43, 44, 45, 46, 47, 459,
- 49, -1, 462, 52, 53, 54, 466, -1, -1, -1,
- 470, -1, -1, 473, 474, -1, 476, -1, -1, -1,
- 480, 481, -1, -1, 484, 42, 43, 44, 45, 46,
- 47, -1, 49, 442, -1, 52, 53, 54, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
- -1, 100, -1, -1, 463, -1, -1, -1, -1, -1,
+ 108, -1, -1, 111, 112, -1, -1, -1, 311, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 326, 327, -1, 421, -1, -1, -1,
+ -1, -1, -1, -1, 337, -1, -1, -1, -1, -1,
+ -1, -1, 412, 413, 414, -1, 413, -1, -1, 419,
+ -1, 421, -1, 356, -1, -1, 426, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
+ -1, -1, -1, 443, -1, 445, 443, 42, 43, 44,
+ 45, 46, 47, 453, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, -1, 465, -1, -1, 468, -1,
+ -1, -1, 472, -1, -1, -1, 476, -1, -1, 479,
+ 480, -1, 482, -1, -1, -1, 486, 487, -1, -1,
+ 490, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, 448, 254, 255, 256, 257,
+ 258, 259, 260, 261, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 469, -1, -1, 277,
+ 278, 279, 280, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, 98, -1, 100,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, 98, 250, 251, 252, 253, 254, 255, 256, 257,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, 273, 274, 275, 276, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, -1, 7, 335, -1, -1,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
- -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
- 31, 32, -1, 34, 362, 36, 37, -1, 39, 367,
- 368, -1, 370, 371, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, -1, -1, -1, 422, 423, 424, 425, -1, 427,
- 428, 429, 430, -1, 5, 6, 7, 8, 9, -1,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
- -1, -1, 23, 24, -1, 26, 27, 28, 29, 457,
- 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
- -1, 469, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
- 101, -1, 103, 5, 6, 7, 8, 9, -1, 11,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 339, -1, 7, 8, 9, -1, 11, 12, 13,
+ 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
+ 24, -1, 26, 27, 28, 29, -1, 31, 32, 367,
+ 34, -1, 36, 37, 372, 373, -1, 375, 376, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
+ -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
+ 428, 429, 430, 431, -1, 433, 434, 435, 436, -1,
+ 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
+ 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
+ -1, 26, 27, 28, 29, 463, 31, 32, -1, 34,
+ -1, 36, 37, -1, -1, -1, -1, 475, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
+ 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, -1, -1, -1, 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, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
+ 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
+ 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
+ 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
+ -1, -1, -1, 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, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
+ 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
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, -1, 69, 70, 71,
@@ -1423,7 +1464,7 @@ static const yytype_int16 yycheck[] =
5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
-1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, 42, 43, 44,
+ -1, 36, 37, -1, -1, -1, -1, 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, -1, 69, 70, 71, 72, 73, 74,
@@ -1433,36 +1474,36 @@ static const yytype_int16 yycheck[] =
8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, 39, -1, -1, 42, 43, 44, 45, 46, 47,
+ -1, -1, -1, -1, 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,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- 98, 99, -1, 101, 5, 6, 7, 8, 9, -1,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
-1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
- 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
- -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 31, 32, -1, 34, -1, 36, 37, -1, -1, -1,
+ -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, 99, -1,
+ 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, 100,
101, 5, 6, 7, 8, 9, -1, 11, 12, 13,
14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
- 34, -1, 36, 37, -1, 39, -1, -1, -1, -1,
+ 34, -1, 36, 37, -1, -1, -1, -1, -1, -1,
-1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
-1, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, 100, 101, 5, 6,
+ -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
-1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
- 37, -1, 39, -1, -1, -1, -1, -1, -1, 46,
+ 37, -1, -1, -1, -1, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
@@ -1471,7 +1512,7 @@ static const yytype_int16 yycheck[] =
-1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
-1, 11, 12, 13, 14, 15, -1, -1, -1, 19,
-1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
- -1, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ -1, 31, 32, -1, 34, -1, 36, 37, -1, -1,
-1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
@@ -1481,7 +1522,7 @@ static const yytype_int16 yycheck[] =
-1, 101, 5, 6, 7, 8, 9, -1, 11, 12,
13, 14, 15, -1, -1, -1, 19, -1, -1, -1,
23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, -1, -1, -1,
+ -1, 34, -1, 36, 37, -1, -1, -1, -1, -1,
-1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
@@ -1491,7 +1532,7 @@ static const yytype_int16 yycheck[] =
6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
-1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, 39, -1, -1, -1, -1, -1, -1,
+ 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
@@ -1501,7 +1542,7 @@ static const yytype_int16 yycheck[] =
9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- 39, -1, -1, -1, -1, -1, -1, 46, 47, 48,
+ -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
@@ -1510,8 +1551,8 @@ static const yytype_int16 yycheck[] =
99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
-1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, -1, -1,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
-1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
@@ -1520,8 +1561,8 @@ static const yytype_int16 yycheck[] =
5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
-1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, -1, 53, 54,
+ -1, 36, 37, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
@@ -1530,31 +1571,62 @@ static const yytype_int16 yycheck[] =
8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
-1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, -1, -1, -1, 55, 56, 57,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
- -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
- 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, -1, 50,
- 51, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 7, 99, -1,
- 101, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, 38, 39,
+ 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, 16,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 87, 88, -1, -1, -1, -1, -1, 7, -1, -1,
+ 97, 11, 12, 13, 14, 15, -1, -1, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ 10, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, 83, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, 16, 97, 18, 19,
+ 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
@@ -1569,150 +1641,124 @@ static const yytype_int16 yycheck[] =
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 87, 88, -1,
- -1, -1, -1, -1, 7, -1, -1, 97, 11, 12,
- 13, 14, 15, -1, -1, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, 86, 7, 88, -1, 10, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, 85, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, 85, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, 86, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, 86, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, 22,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, 7, 88, -1, -1, 11, 12,
- 13, 14, 15, -1, 97, 18, 19, 20, 21, -1,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, 7, 8, 9, 88, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, 39, -1, -1, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- 7, -1, -1, 88, 11, 12, 13, 14, 15, -1,
- -1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
- 27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
- 37, -1, 39, -1, -1, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
- 77, 78, 79, 80, 81, -1, -1, -1, 7, -1,
- -1, 88, 11, 12, 13, 14, 15, -1, -1, -1,
- 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
- 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- 39, -1, -1, -1, -1, -1, -1, 46, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
- 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
- 79, 80, 81, -1, -1, -1, 7, -1, -1, 88,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
- -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
- 31, 32, -1, 34, -1, 36, 37, -1, 39, -1,
- -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, 7, -1, -1, 88, 11, 12,
- 13, 14, 15, -1, -1, -1, 19, -1, -1, -1,
- 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, -1, -1, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, 76, 77, 78, 79, 80, 81, 42,
- 43, 44, 45, 46, 47, 88, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, 79, 80,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, 42, 43, 44, 45, 46,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
+ -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
+ 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 82, -1, -1, 7, -1, -1, 88, 11,
+ 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
+ -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
+ 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ -1, -1, -1, 7, -1, -1, 88, 11, 12, 13,
+ 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
+ 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
+ 34, -1, 36, 37, -1, -1, -1, -1, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
+ -1, 7, -1, -1, 88, 11, 12, 13, 14, 15,
+ -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
+ 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
+ 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
+ 76, 77, 78, 79, 80, 81, -1, -1, -1, 7,
+ -1, -1, 88, 11, 12, 13, 14, 15, -1, -1,
+ -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
+ 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
+ -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
+ 78, 79, 80, 81, -1, -1, -1, 7, -1, -1,
+ 88, 11, 12, 13, 14, 15, -1, -1, -1, 19,
+ -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
+ -1, 31, 32, -1, 34, -1, 36, 37, -1, -1,
+ -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
+ 80, 81, 42, 43, 44, 45, 46, 47, 88, 49,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, 98, -1,
-1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95
+ 97, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, 97, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, 79, 80, 52, 53, 54, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
+ 43, 44, 45, -1, -1, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1733,41 +1779,42 @@ static const yytype_uint8 yystos[] =
78, 92, 93, 99, 101, 116, 122, 123, 135, 136,
139, 140, 141, 144, 145, 146, 149, 152, 153, 154,
156, 99, 154, 116, 31, 122, 154, 36, 37, 75,
- 116, 136, 138, 144, 116, 116, 122, 123, 117, 154,
- 117, 116, 120, 0, 107, 122, 154, 97, 97, 98,
- 153, 153, 153, 153, 154, 154, 153, 153, 153, 153,
- 153, 63, 64, 65, 66, 67, 70, 74, 116, 154,
- 153, 153, 100, 154, 8, 9, 103, 116, 150, 151,
- 154, 157, 158, 99, 97, 97, 28, 42, 43, 44,
- 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
- 92, 93, 94, 95, 98, 135, 155, 156, 154, 33,
- 46, 47, 49, 53, 54, 117, 97, 97, 24, 50,
- 51, 116, 154, 74, 34, 44, 125, 33, 97, 97,
- 97, 97, 34, 97, 97, 117, 97, 116, 28, 155,
- 28, 34, 28, 34, 28, 34, 28, 34, 69, 76,
- 69, 76, 69, 76, 69, 76, 69, 76, 55, 57,
- 59, 61, 147, 28, 28, 79, 80, 98, 100, 103,
- 103, 102, 103, 98, 102, 102, 98, 157, 26, 154,
+ 116, 136, 138, 144, 116, 116, 122, 154, 122, 123,
+ 117, 154, 117, 116, 120, 0, 107, 122, 154, 97,
+ 97, 98, 153, 153, 153, 153, 154, 154, 153, 153,
+ 153, 153, 153, 63, 64, 65, 66, 67, 70, 74,
+ 116, 154, 153, 153, 100, 154, 8, 9, 103, 116,
+ 150, 151, 154, 157, 158, 99, 97, 97, 28, 42,
+ 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
+ 90, 91, 92, 93, 94, 95, 98, 135, 155, 156,
+ 154, 33, 46, 47, 49, 53, 54, 117, 97, 97,
+ 24, 50, 51, 116, 154, 74, 34, 44, 125, 33,
+ 97, 97, 36, 97, 97, 97, 34, 97, 97, 117,
+ 97, 116, 28, 155, 28, 34, 28, 34, 28, 34,
+ 28, 34, 69, 76, 69, 76, 69, 76, 69, 76,
+ 69, 76, 55, 57, 59, 61, 147, 28, 28, 79,
+ 80, 98, 100, 103, 103, 102, 103, 98, 102, 102,
+ 98, 157, 26, 154, 154, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 158, 42, 43, 44,
- 45, 46, 47, 49, 52, 53, 54, 89, 90, 91,
- 92, 93, 94, 95, 98, 97, 119, 97, 136, 137,
- 139, 137, 137, 44, 97, 28, 154, 154, 84, 97,
- 110, 111, 112, 113, 120, 97, 119, 132, 133, 134,
- 97, 26, 153, 153, 153, 153, 153, 153, 153, 153,
- 23, 28, 148, 56, 58, 60, 62, 71, 72, 73,
- 77, 78, 142, 143, 153, 142, 153, 153, 158, 154,
- 154, 154, 8, 9, 116, 151, 154, 100, 154, 154,
+ 158, 42, 43, 44, 45, 46, 47, 49, 52, 53,
+ 54, 89, 90, 91, 92, 93, 94, 95, 98, 97,
+ 119, 97, 136, 137, 139, 137, 137, 44, 97, 28,
+ 154, 154, 84, 97, 110, 111, 112, 113, 154, 120,
+ 97, 119, 132, 133, 134, 97, 26, 153, 153, 153,
+ 153, 153, 153, 153, 153, 23, 28, 148, 56, 58,
+ 60, 62, 71, 72, 73, 77, 78, 142, 143, 153,
+ 142, 153, 153, 158, 154, 154, 154, 8, 9, 116,
+ 151, 154, 100, 154, 154, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 158, 132, 16, 132,
- 97, 97, 97, 154, 132, 97, 116, 97, 87, 134,
- 132, 154, 28, 28, 28, 28, 153, 148, 148, 148,
- 148, 153, 153, 148, 153, 153, 100, 16, 85, 97,
- 119, 15, 34, 86, 117, 113, 97, 10, 153, 153,
- 153, 153, 153, 153, 153, 153, 28, 71, 143, 97,
- 119, 97, 132, 34, 154, 97, 97, 115, 116, 71,
- 132, 85, 154, 97, 132, 97, 98, 153, 85, 97,
- 97, 132, 116, 97, 132, 86, 86, 97, 97
+ 154, 158, 132, 16, 132, 97, 97, 97, 154, 132,
+ 97, 116, 97, 97, 87, 134, 132, 154, 28, 28,
+ 28, 28, 153, 148, 148, 148, 148, 153, 153, 148,
+ 153, 153, 100, 16, 85, 97, 119, 15, 34, 86,
+ 117, 113, 97, 10, 153, 153, 153, 153, 153, 153,
+ 153, 153, 28, 71, 143, 97, 119, 97, 132, 34,
+ 154, 97, 97, 115, 116, 71, 132, 85, 154, 97,
+ 132, 97, 98, 153, 85, 97, 97, 132, 116, 97,
+ 132, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1780,25 +1827,25 @@ static const yytype_uint8 yyr1[] =
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 117, 117, 118,
- 118, 119, 119, 119, 119, 119, 119, 120, 120, 120,
+ 116, 116, 116, 116, 116, 116, 117, 117, 118, 118,
+ 119, 119, 119, 119, 119, 119, 120, 120, 120, 121,
121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 122, 122, 122, 122, 122, 122, 122, 123, 123, 123,
- 123, 123, 124, 124, 124, 124, 125, 125, 126, 126,
- 126, 127, 127, 128, 128, 128, 128, 129, 129, 129,
- 130, 130, 131, 132, 132, 133, 133, 134, 134, 135,
+ 121, 122, 122, 122, 122, 122, 122, 122, 123, 123,
+ 123, 123, 123, 124, 124, 124, 124, 125, 125, 126,
+ 126, 126, 127, 127, 128, 128, 128, 128, 129, 129,
+ 129, 130, 130, 131, 132, 132, 133, 133, 134, 134,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 136, 137, 137, 138, 138, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 140, 140, 141, 141,
- 141, 141, 142, 142, 142, 142, 142, 143, 144, 144,
- 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 146, 146, 146, 146, 146, 147, 147, 147, 147,
- 148, 148, 149, 149, 149, 150, 150, 151, 151, 151,
- 152, 152, 153, 153, 154, 154, 154, 154, 154, 154,
+ 135, 135, 136, 137, 137, 138, 138, 139, 139, 139,
+ 139, 139, 139, 139, 139, 139, 139, 140, 140, 141,
+ 141, 141, 141, 142, 142, 142, 142, 142, 143, 144,
+ 144, 144, 145, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 146, 146, 146, 146, 146, 147, 147, 147,
+ 147, 148, 148, 149, 149, 149, 150, 150, 151, 151,
+ 151, 152, 152, 153, 153, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 155, 155, 155, 155, 155, 155, 155,
+ 154, 154, 154, 154, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 156, 156, 157, 157, 158, 158
+ 155, 155, 155, 156, 156, 157, 157, 158, 158
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1811,25 +1858,25 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
- 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
- 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
- 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
- 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
- 4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 2, 4, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 4, 6,
- 4, 6, 4, 6, 4, 6, 2, 2, 1, 1,
- 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
- 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
- 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 0, 1, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
+ 3, 3, 3, 3, 3, 3, 5, 3, 3, 2,
+ 2, 0, 1, 3, 2, 4, 2, 5, 2, 2,
+ 5, 4, 3, 5, 5, 5, 5, 1, 1, 3,
+ 3, 3, 4, 7, 6, 9, 7, 10, 7, 11,
+ 12, 4, 6, 4, 0, 1, 1, 2, 1, 1,
+ 1, 1, 1, 1, 2, 4, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 2, 4,
+ 6, 4, 6, 4, 6, 4, 6, 2, 2, 1,
+ 1, 1, 5, 1, 1, 5, 2, 2, 2, 2,
+ 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 6, 6, 6, 6, 6, 1, 1, 1,
+ 1, 1, 1, 3, 3, 3, 1, 3, 3, 3,
+ 3, 2, 2, 1, 1, 1, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2103,31 +2150,31 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2107 "engines/director/lingo/lingo-gr.cpp"
+#line 2154 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2113 "engines/director/lingo/lingo-gr.cpp"
+#line 2160 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2119 "engines/director/lingo/lingo-gr.cpp"
+#line 2166 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2125 "engines/director/lingo/lingo-gr.cpp"
+#line 2172 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2131 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2395,7 +2442,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2399 "engines/director/lingo/lingo-gr.cpp"
+#line 2446 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2406,7 +2453,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2410 "engines/director/lingo/lingo-gr.cpp"
+#line 2457 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2416,37 +2463,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2420 "engines/director/lingo/lingo-gr.cpp"
+#line 2467 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2426 "engines/director/lingo/lingo-gr.cpp"
+#line 2473 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2432 "engines/director/lingo/lingo-gr.cpp"
+#line 2479 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2438 "engines/director/lingo/lingo-gr.cpp"
+#line 2485 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
+#line 2491 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2450 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2457,7 +2504,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2467,13 +2514,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2471 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2477 "engines/director/lingo/lingo-gr.cpp"
+#line 2524 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2482,1320 +2529,1330 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2486 "engines/director/lingo/lingo-gr.cpp"
+#line 2533 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2493 "engines/director/lingo/lingo-gr.cpp"
+#line 2540 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2499 "engines/director/lingo/lingo-gr.cpp"
+#line 2546 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2505 "engines/director/lingo/lingo-gr.cpp"
+#line 2552 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* ID: tABBREVIATED */
#line 290 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2511 "engines/director/lingo/lingo-gr.cpp"
+#line 2558 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* ID: tABBREV */
#line 291 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+#line 2564 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* ID: tABBR */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2523 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* ID: tAFTER */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2529 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* ID: tAND */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* ID: tBEFORE */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+#line 2588 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* ID: tCAST */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2547 "engines/director/lingo/lingo-gr.cpp"
+#line 2594 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* ID: tCHAR */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2553 "engines/director/lingo/lingo-gr.cpp"
+#line 2600 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* ID: tCHARS */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2606 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* ID: tCONTAINS */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
+#line 2612 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* ID: tDATE */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2571 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* ID: tDOWN */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+#line 2624 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* ID: tFIELD */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* ID: tFRAME */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* ID: tIN */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2642 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* ID: tINTERSECTS */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2601 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* ID: tINTO */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2607 "engines/director/lingo/lingo-gr.cpp"
+#line 2654 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* ID: tITEM */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2613 "engines/director/lingo/lingo-gr.cpp"
+#line 2660 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* ID: tITEMS */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2619 "engines/director/lingo/lingo-gr.cpp"
+#line 2666 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* ID: tLAST */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2625 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* ID: tLINE */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2678 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* ID: tLINES */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+#line 2684 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* ID: tLONG */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2643 "engines/director/lingo/lingo-gr.cpp"
+#line 2690 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* ID: tMENU */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2696 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* ID: tMENUITEM */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2655 "engines/director/lingo/lingo-gr.cpp"
+#line 2702 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* ID: tMENUITEMS */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2661 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* ID: tMOD */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2714 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* ID: tMOVIE */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2720 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ID: tNEXT */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2726 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ID: tNOT */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2732 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ID: tNUMBER */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2691 "engines/director/lingo/lingo-gr.cpp"
+#line 2738 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ID: tOF */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2697 "engines/director/lingo/lingo-gr.cpp"
- break;
-
- case 57: /* ID: tOPEN */
-#line 333 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("open"); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2744 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tOR */
+ case 57: /* ID: tOR */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2750 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tPREVIOUS */
+ case 58: /* ID: tPREVIOUS */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* ID: tREPEAT */
+ case 59: /* ID: tREPEAT */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* ID: tSCRIPT */
+ case 60: /* ID: tSCRIPT */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2727 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* ID: tASSERTERROR */
+ case 61: /* ID: tASSERTERROR */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2733 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* ID: tSET */
+ case 62: /* ID: tSET */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 64: /* ID: tSHORT */
+ case 63: /* ID: tSHORT */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2786 "engines/director/lingo/lingo-gr.cpp"
break;
- case 65: /* ID: tSOUND */
+ case 64: /* ID: tSOUND */
#line 344 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+#line 2792 "engines/director/lingo/lingo-gr.cpp"
break;
- case 66: /* ID: tSPRITE */
+ case 65: /* ID: tSPRITE */
#line 345 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2757 "engines/director/lingo/lingo-gr.cpp"
+#line 2798 "engines/director/lingo/lingo-gr.cpp"
break;
- case 67: /* ID: tSTARTS */
+ case 66: /* ID: tSTARTS */
#line 346 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2804 "engines/director/lingo/lingo-gr.cpp"
break;
- case 68: /* ID: tTELL */
+ case 67: /* ID: tTELL */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2810 "engines/director/lingo/lingo-gr.cpp"
break;
- case 69: /* ID: tTIME */
+ case 68: /* ID: tTIME */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2816 "engines/director/lingo/lingo-gr.cpp"
break;
- case 70: /* ID: tTO */
+ case 69: /* ID: tTO */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2781 "engines/director/lingo/lingo-gr.cpp"
+#line 2822 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* ID: tWHILE */
+ case 70: /* ID: tWHILE */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2828 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* ID: tWINDOW */
+ case 71: /* ID: tWINDOW */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2834 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* ID: tWITH */
+ case 72: /* ID: tWITH */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2840 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* ID: tWITHIN */
+ case 73: /* ID: tWITHIN */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2805 "engines/director/lingo/lingo-gr.cpp"
+#line 2846 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* ID: tWORD */
+ case 74: /* ID: tWORD */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2852 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* ID: tWORDS */
+ case 75: /* ID: tWORDS */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2817 "engines/director/lingo/lingo-gr.cpp"
+#line 2858 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* idlist: %empty */
+ case 76: /* idlist: %empty */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2864 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* nonemptyidlist: ID */
+ case 78: /* nonemptyidlist: ID */
#line 365 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2832 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* nonemptyidlist: nonemptyidlist ',' ID */
+ case 79: /* nonemptyidlist: nonemptyidlist ',' ID */
#line 369 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2840 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* proc: ID cmdargs '\n' */
+ case 89: /* proc: ID cmdargs '\n' */
#line 392 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* proc: tPUT cmdargs '\n' */
+ case 90: /* proc: tPUT cmdargs '\n' */
#line 393 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2852 "engines/director/lingo/lingo-gr.cpp"
+#line 2893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* proc: tGO cmdargs '\n' */
+ case 91: /* proc: tGO cmdargs '\n' */
#line 394 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2858 "engines/director/lingo/lingo-gr.cpp"
+#line 2899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* proc: tGO frameargs '\n' */
+ case 92: /* proc: tGO frameargs '\n' */
#line 395 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2864 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* proc: tPLAY cmdargs '\n' */
+ case 93: /* proc: tPLAY cmdargs '\n' */
#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2870 "engines/director/lingo/lingo-gr.cpp"
+#line 2911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* proc: tPLAY frameargs '\n' */
+ case 94: /* proc: tPLAY frameargs '\n' */
#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2876 "engines/director/lingo/lingo-gr.cpp"
+#line 2917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* proc: tNEXT tREPEAT '\n' */
+ case 95: /* proc: tOPEN cmdargs '\n' */
#line 398 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new NextRepeatNode(); }
-#line 2882 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
+#line 2923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* proc: tEXIT tREPEAT '\n' */
+ case 96: /* proc: tOPEN expr tWITH expr '\n' */
#line 399 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-3].node));
+ args->push_back((yyvsp[-1].node));
+ (yyval.node) = new CmdNode(new Common::String("open"), args); }
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 97: /* proc: tNEXT tREPEAT '\n' */
+#line 404 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new NextRepeatNode(); }
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 98: /* proc: tEXIT tREPEAT '\n' */
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2888 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* proc: tEXIT '\n' */
-#line 400 "engines/director/lingo/lingo-gr.y"
+ case 99: /* proc: tEXIT '\n' */
+#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2894 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* proc: tASSERTERROR stmtoneliner */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 100: /* proc: tASSERTERROR stmtoneliner */
+#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2900 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* cmdargs: %empty */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 101: /* cmdargs: %empty */
+#line 410 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2908 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* cmdargs: expr */
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 102: /* cmdargs: expr */
+#line 413 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* cmdargs: expr ',' nonemptyexprlist */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 103: /* cmdargs: expr ',' nonemptyexprlist */
+#line 418 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2984 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* cmdargs: expr expr_nounarymath */
-#line 416 "engines/director/lingo/lingo-gr.y"
+ case 104: /* cmdargs: expr expr_nounarymath */
+#line 422 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2938 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 422 "engines/director/lingo/lingo-gr.y"
+ case 105: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 428 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* cmdargs: '(' ')' */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 106: /* cmdargs: '(' ')' */
+#line 433 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 2956 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 430 "engines/director/lingo/lingo-gr.y"
+ case 107: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 436 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2965 "engines/director/lingo/lingo-gr.cpp"
+#line 3022 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* frameargs: tFRAME expr */
-#line 440 "engines/director/lingo/lingo-gr.y"
+ case 108: /* frameargs: tFRAME expr */
+#line 446 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* frameargs: tMOVIE expr */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 109: /* frameargs: tMOVIE expr */
+#line 451 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 110: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 457 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 3054 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* frameargs: expr tOF tMOVIE expr */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 111: /* frameargs: expr tOF tMOVIE expr */
+#line 463 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3065 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* frameargs: tFRAME expr expr_nounarymath */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 112: /* frameargs: tFRAME expr expr_nounarymath */
+#line 469 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3076 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 471 "engines/director/lingo/lingo-gr.y"
+ case 113: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 477 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 114: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 478 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3088 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 473 "engines/director/lingo/lingo-gr.y"
+ case 115: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 479 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* asgn: tSET varorthe to expr '\n' */
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 116: /* asgn: tSET varorthe to expr '\n' */
+#line 480 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* definevars: tGLOBAL idlist '\n' */
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 119: /* definevars: tGLOBAL idlist '\n' */
+#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* definevars: tPROPERTY idlist '\n' */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 120: /* definevars: tPROPERTY idlist '\n' */
+#line 486 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3112 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* definevars: tINSTANCE idlist '\n' */
-#line 481 "engines/director/lingo/lingo-gr.y"
+ case 121: /* definevars: tINSTANCE idlist '\n' */
+#line 487 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 3118 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* ifstmt: tIF expr tTHEN stmt */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 122: /* ifstmt: tIF expr tTHEN stmt */
+#line 490 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3070 "engines/director/lingo/lingo-gr.cpp"
+#line 3127 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 123: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 494 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3077 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 498 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3088 "engines/director/lingo/lingo-gr.cpp"
+#line 3145 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 498 "engines/director/lingo/lingo-gr.y"
+ case 125: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 504 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3097 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 502 "engines/director/lingo/lingo-gr.y"
+ case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 508 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 506 "engines/director/lingo/lingo-gr.y"
+ case 127: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 512 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3113 "engines/director/lingo/lingo-gr.cpp"
+#line 3170 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 510 "engines/director/lingo/lingo-gr.y"
+ case 128: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 516 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3120 "engines/director/lingo/lingo-gr.cpp"
+#line 3177 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 512 "engines/director/lingo/lingo-gr.y"
+ case 129: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 518 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3127 "engines/director/lingo/lingo-gr.cpp"
+#line 3184 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 514 "engines/director/lingo/lingo-gr.y"
+ case 130: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 520 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3191 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* tell: tTELL expr tTO stmtoneliner */
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 131: /* tell: tTELL expr tTO stmtoneliner */
+#line 524 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3143 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 132: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 528 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3207 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* when: tWHEN ID tTHEN expr */
-#line 526 "engines/director/lingo/lingo-gr.y"
+ case 133: /* when: tWHEN ID tTHEN expr */
+#line 532 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3156 "engines/director/lingo/lingo-gr.cpp"
+#line 3213 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* stmtlist: %empty */
-#line 528 "engines/director/lingo/lingo-gr.y"
+ case 134: /* stmtlist: %empty */
+#line 534 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3162 "engines/director/lingo/lingo-gr.cpp"
+#line 3219 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* nonemptystmtlist: stmtlistline */
-#line 533 "engines/director/lingo/lingo-gr.y"
+ case 136: /* nonemptystmtlist: stmtlistline */
+#line 539 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3173 "engines/director/lingo/lingo-gr.cpp"
+#line 3230 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 137: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 545 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3183 "engines/director/lingo/lingo-gr.cpp"
+#line 3240 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* stmtlistline: '\n' */
-#line 546 "engines/director/lingo/lingo-gr.y"
+ case 138: /* stmtlistline: '\n' */
+#line 552 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3189 "engines/director/lingo/lingo-gr.cpp"
+#line 3246 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* simpleexpr_nounarymath: tINT */
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 140: /* simpleexpr_nounarymath: tINT */
+#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3195 "engines/director/lingo/lingo-gr.cpp"
+#line 3252 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* simpleexpr_nounarymath: tFLOAT */
-#line 554 "engines/director/lingo/lingo-gr.y"
+ case 141: /* simpleexpr_nounarymath: tFLOAT */
+#line 560 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3201 "engines/director/lingo/lingo-gr.cpp"
+#line 3258 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* simpleexpr_nounarymath: tSYMBOL */
-#line 555 "engines/director/lingo/lingo-gr.y"
+ case 142: /* simpleexpr_nounarymath: tSYMBOL */
+#line 561 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3207 "engines/director/lingo/lingo-gr.cpp"
+#line 3264 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* simpleexpr_nounarymath: tSTRING */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 143: /* simpleexpr_nounarymath: tSTRING */
+#line 562 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3213 "engines/director/lingo/lingo-gr.cpp"
+#line 3270 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 144: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3219 "engines/director/lingo/lingo-gr.cpp"
+#line 3276 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 558 "engines/director/lingo/lingo-gr.y"
+ case 145: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 564 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3225 "engines/director/lingo/lingo-gr.cpp"
+#line 3282 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 146: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 565 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3231 "engines/director/lingo/lingo-gr.cpp"
+#line 3288 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* var: ID */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 152: /* var: ID */
+#line 573 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3237 "engines/director/lingo/lingo-gr.cpp"
+#line 3294 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* chunk: tFIELD simpleexpr */
-#line 577 "engines/director/lingo/lingo-gr.y"
+ case 157: /* chunk: tFIELD simpleexpr */
+#line 583 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3303 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* chunk: tCAST simpleexpr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 158: /* chunk: tCAST simpleexpr */
+#line 587 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3255 "engines/director/lingo/lingo-gr.cpp"
+#line 3312 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* chunk: tCHAR simpleexpr tOF simpleexpr */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 159: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 591 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3319 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+ case 160: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 593 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3269 "engines/director/lingo/lingo-gr.cpp"
+#line 3326 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* chunk: tWORD simpleexpr tOF simpleexpr */
-#line 589 "engines/director/lingo/lingo-gr.y"
+ case 161: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 595 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3333 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 162: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3283 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* chunk: tITEM simpleexpr tOF simpleexpr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 163: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 599 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3290 "engines/director/lingo/lingo-gr.cpp"
+#line 3347 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 164: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 601 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3297 "engines/director/lingo/lingo-gr.cpp"
+#line 3354 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* chunk: tLINE simpleexpr tOF simpleexpr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 165: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3361 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 166: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 605 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3311 "engines/director/lingo/lingo-gr.cpp"
+#line 3368 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* object: tSCRIPT simpleexpr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+ case 167: /* object: tSCRIPT simpleexpr */
+#line 609 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3320 "engines/director/lingo/lingo-gr.cpp"
+#line 3377 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* object: tWINDOW simpleexpr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+ case 168: /* object: tWINDOW simpleexpr */
+#line 613 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3386 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 172: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3335 "engines/director/lingo/lingo-gr.cpp"
+#line 3392 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 175: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3341 "engines/director/lingo/lingo-gr.cpp"
+#line 3398 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* theobj: tSOUND simpleexpr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 176: /* theobj: tSOUND simpleexpr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3347 "engines/director/lingo/lingo-gr.cpp"
+#line 3404 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* theobj: tSPRITE simpleexpr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 177: /* theobj: tSPRITE simpleexpr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3410 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* menu: tMENU simpleexpr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 178: /* menu: tMENU simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3359 "engines/director/lingo/lingo-gr.cpp"
+#line 3416 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* writablethe: tTHE ID */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 179: /* writablethe: tTHE ID */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3422 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* writablethe: tTHE ID tOF theobj */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 180: /* writablethe: tTHE ID tOF theobj */
+#line 635 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3428 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 181: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3377 "engines/director/lingo/lingo-gr.cpp"
+#line 3434 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 182: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3383 "engines/director/lingo/lingo-gr.cpp"
+#line 3440 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 183: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 640 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3389 "engines/director/lingo/lingo-gr.cpp"
+#line 3446 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* thedatetime: tTHE tABBREV tDATE */
-#line 635 "engines/director/lingo/lingo-gr.y"
+ case 184: /* thedatetime: tTHE tABBREV tDATE */
+#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3395 "engines/director/lingo/lingo-gr.cpp"
+#line 3452 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* thedatetime: tTHE tABBREV tTIME */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 185: /* thedatetime: tTHE tABBREV tTIME */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3401 "engines/director/lingo/lingo-gr.cpp"
+#line 3458 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* thedatetime: tTHE tABBR tDATE */
-#line 637 "engines/director/lingo/lingo-gr.y"
+ case 186: /* thedatetime: tTHE tABBR tDATE */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3407 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* thedatetime: tTHE tABBR tTIME */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 187: /* thedatetime: tTHE tABBR tTIME */
+#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3413 "engines/director/lingo/lingo-gr.cpp"
+#line 3470 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* thedatetime: tTHE tLONG tDATE */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 188: /* thedatetime: tTHE tLONG tDATE */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3419 "engines/director/lingo/lingo-gr.cpp"
+#line 3476 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* thedatetime: tTHE tLONG tTIME */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 189: /* thedatetime: tTHE tLONG tTIME */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3425 "engines/director/lingo/lingo-gr.cpp"
+#line 3482 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* thedatetime: tTHE tSHORT tDATE */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 190: /* thedatetime: tTHE tSHORT tDATE */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3488 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* thedatetime: tTHE tSHORT tTIME */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 191: /* thedatetime: tTHE tSHORT tTIME */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3437 "engines/director/lingo/lingo-gr.cpp"
+#line 3494 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 192: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3443 "engines/director/lingo/lingo-gr.cpp"
+#line 3500 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 193: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3449 "engines/director/lingo/lingo-gr.cpp"
+#line 3506 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 194: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3455 "engines/director/lingo/lingo-gr.cpp"
+#line 3512 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 195: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3461 "engines/director/lingo/lingo-gr.cpp"
+#line 3518 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 196: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 656 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3467 "engines/director/lingo/lingo-gr.cpp"
+#line 3524 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* chunktype: tCHAR */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 197: /* chunktype: tCHAR */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3473 "engines/director/lingo/lingo-gr.cpp"
+#line 3530 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* chunktype: tWORD */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 198: /* chunktype: tWORD */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3479 "engines/director/lingo/lingo-gr.cpp"
+#line 3536 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* chunktype: tITEM */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 199: /* chunktype: tITEM */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3485 "engines/director/lingo/lingo-gr.cpp"
+#line 3542 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* chunktype: tLINE */
-#line 656 "engines/director/lingo/lingo-gr.y"
+ case 200: /* chunktype: tLINE */
+#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3491 "engines/director/lingo/lingo-gr.cpp"
+#line 3548 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* list: '[' exprlist ']' */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 203: /* list: '[' exprlist ']' */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3497 "engines/director/lingo/lingo-gr.cpp"
+#line 3554 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* list: '[' ':' ']' */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 204: /* list: '[' ':' ']' */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3503 "engines/director/lingo/lingo-gr.cpp"
+#line 3560 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* list: '[' proplist ']' */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 205: /* list: '[' proplist ']' */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3509 "engines/director/lingo/lingo-gr.cpp"
+#line 3566 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* proplist: proppair */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 206: /* proplist: proppair */
+#line 672 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3518 "engines/director/lingo/lingo-gr.cpp"
+#line 3575 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* proplist: proplist ',' proppair */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 207: /* proplist: proplist ',' proppair */
+#line 676 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3526 "engines/director/lingo/lingo-gr.cpp"
+#line 3583 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* proppair: tSYMBOL ':' expr */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 208: /* proppair: tSYMBOL ':' expr */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3532 "engines/director/lingo/lingo-gr.cpp"
+#line 3589 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* proppair: ID ':' expr */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 209: /* proppair: ID ':' expr */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3538 "engines/director/lingo/lingo-gr.cpp"
+#line 3595 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* proppair: tSTRING ':' expr */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 210: /* proppair: tSTRING ':' expr */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3544 "engines/director/lingo/lingo-gr.cpp"
+#line 3601 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* unarymath: '+' simpleexpr */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 211: /* unarymath: '+' simpleexpr */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3550 "engines/director/lingo/lingo-gr.cpp"
+#line 3607 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* unarymath: '-' simpleexpr */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 212: /* unarymath: '-' simpleexpr */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3556 "engines/director/lingo/lingo-gr.cpp"
+#line 3613 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* expr: expr '+' expr */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 217: /* expr: expr '+' expr */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3562 "engines/director/lingo/lingo-gr.cpp"
+#line 3619 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* expr: expr '-' expr */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 218: /* expr: expr '-' expr */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3568 "engines/director/lingo/lingo-gr.cpp"
+#line 3625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* expr: expr '*' expr */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 219: /* expr: expr '*' expr */
+#line 699 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3574 "engines/director/lingo/lingo-gr.cpp"
+#line 3631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* expr: expr '/' expr */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 220: /* expr: expr '/' expr */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3580 "engines/director/lingo/lingo-gr.cpp"
+#line 3637 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* expr: expr tMOD expr */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 221: /* expr: expr tMOD expr */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3586 "engines/director/lingo/lingo-gr.cpp"
+#line 3643 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* expr: expr '>' expr */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 222: /* expr: expr '>' expr */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3592 "engines/director/lingo/lingo-gr.cpp"
+#line 3649 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* expr: expr '<' expr */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 223: /* expr: expr '<' expr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3598 "engines/director/lingo/lingo-gr.cpp"
+#line 3655 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* expr: expr tEQ expr */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 224: /* expr: expr tEQ expr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3604 "engines/director/lingo/lingo-gr.cpp"
+#line 3661 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* expr: expr tNEQ expr */
-#line 699 "engines/director/lingo/lingo-gr.y"
+ case 225: /* expr: expr tNEQ expr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3610 "engines/director/lingo/lingo-gr.cpp"
+#line 3667 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* expr: expr tGE expr */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 226: /* expr: expr tGE expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3616 "engines/director/lingo/lingo-gr.cpp"
+#line 3673 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* expr: expr tLE expr */
-#line 701 "engines/director/lingo/lingo-gr.y"
+ case 227: /* expr: expr tLE expr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3622 "engines/director/lingo/lingo-gr.cpp"
+#line 3679 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* expr: expr tAND expr */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 228: /* expr: expr tAND expr */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3628 "engines/director/lingo/lingo-gr.cpp"
+#line 3685 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* expr: expr tOR expr */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 229: /* expr: expr tOR expr */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3634 "engines/director/lingo/lingo-gr.cpp"
+#line 3691 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* expr: expr '&' expr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 230: /* expr: expr '&' expr */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3640 "engines/director/lingo/lingo-gr.cpp"
+#line 3697 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* expr: expr tCONCAT expr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 231: /* expr: expr tCONCAT expr */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3646 "engines/director/lingo/lingo-gr.cpp"
+#line 3703 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* expr: expr tCONTAINS expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 232: /* expr: expr tCONTAINS expr */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3652 "engines/director/lingo/lingo-gr.cpp"
+#line 3709 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* expr: expr tSTARTS expr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 233: /* expr: expr tSTARTS expr */
+#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3658 "engines/director/lingo/lingo-gr.cpp"
+#line 3715 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 236: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 722 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3664 "engines/director/lingo/lingo-gr.cpp"
+#line 3721 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 717 "engines/director/lingo/lingo-gr.y"
+ case 237: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3670 "engines/director/lingo/lingo-gr.cpp"
+#line 3727 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 718 "engines/director/lingo/lingo-gr.y"
+ case 238: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 724 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3676 "engines/director/lingo/lingo-gr.cpp"
+#line 3733 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 239: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 725 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3682 "engines/director/lingo/lingo-gr.cpp"
+#line 3739 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 240: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 726 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3688 "engines/director/lingo/lingo-gr.cpp"
+#line 3745 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 721 "engines/director/lingo/lingo-gr.y"
+ case 241: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 727 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3694 "engines/director/lingo/lingo-gr.cpp"
+#line 3751 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 722 "engines/director/lingo/lingo-gr.y"
+ case 242: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 728 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3700 "engines/director/lingo/lingo-gr.cpp"
+#line 3757 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 723 "engines/director/lingo/lingo-gr.y"
+ case 243: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3706 "engines/director/lingo/lingo-gr.cpp"
+#line 3763 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 244: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3712 "engines/director/lingo/lingo-gr.cpp"
+#line 3769 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 725 "engines/director/lingo/lingo-gr.y"
+ case 245: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3718 "engines/director/lingo/lingo-gr.cpp"
+#line 3775 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 726 "engines/director/lingo/lingo-gr.y"
+ case 246: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3724 "engines/director/lingo/lingo-gr.cpp"
+#line 3781 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 247: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3730 "engines/director/lingo/lingo-gr.cpp"
+#line 3787 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 728 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3736 "engines/director/lingo/lingo-gr.cpp"
+#line 3793 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 729 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3742 "engines/director/lingo/lingo-gr.cpp"
+#line 3799 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 730 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3748 "engines/director/lingo/lingo-gr.cpp"
+#line 3805 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3754 "engines/director/lingo/lingo-gr.cpp"
+#line 3811 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3760 "engines/director/lingo/lingo-gr.cpp"
+#line 3817 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 253: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3766 "engines/director/lingo/lingo-gr.cpp"
+#line 3823 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 254: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3772 "engines/director/lingo/lingo-gr.cpp"
+#line 3829 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* exprlist: %empty */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 255: /* exprlist: %empty */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3778 "engines/director/lingo/lingo-gr.cpp"
+#line 3835 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* nonemptyexprlist: expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 257: /* nonemptyexprlist: expr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3787 "engines/director/lingo/lingo-gr.cpp"
+#line 3844 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 747 "engines/director/lingo/lingo-gr.y"
+ case 258: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 753 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3795 "engines/director/lingo/lingo-gr.cpp"
+#line 3852 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3799 "engines/director/lingo/lingo-gr.cpp"
+#line 3856 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3994,7 +4051,7 @@ yyreturn:
return yyresult;
}
-#line 752 "engines/director/lingo/lingo-gr.y"
+#line 758 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index cafcb0fdd2..8d99e6a403 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -330,7 +330,7 @@ ID: tVARID
| tNUMBER { $$ = new Common::String("number"); }
| tOF { $$ = new Common::String("of"); }
// | tON { $$ = new Common::String("on"); }
- | tOPEN { $$ = new Common::String("open"); }
+ // | tOPEN { $$ = new Common::String("open"); }
| tOR { $$ = new Common::String("or"); }
// | tPLAY { $$ = new Common::String("play"); }
| tPREVIOUS { $$ = new Common::String("previous"); }
@@ -395,6 +395,12 @@ proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
| tGO frameargs '\n' { $$ = new CmdNode(new Common::String("go"), $frameargs); }
| tPLAY cmdargs '\n' { $$ = new CmdNode(new Common::String("play"), $cmdargs); }
| tPLAY frameargs '\n' { $$ = new CmdNode(new Common::String("play"), $frameargs); }
+ | tOPEN cmdargs '\n' { $$ = new CmdNode(new Common::String("open"), $cmdargs); }
+ | tOPEN expr[arg1] tWITH expr[arg2] '\n' {
+ NodeList *args = new NodeList;
+ args->push_back($arg1);
+ args->push_back($arg2);
+ $$ = new CmdNode(new Common::String("open"), args); }
| tNEXT tREPEAT '\n' { $$ = new NextRepeatNode(); }
| tEXIT tREPEAT '\n' { $$ = new ExitRepeatNode(); }
| tEXIT '\n' { $$ = new ExitNode(); }
Commit: ac5dbe3492dfab26f4f8fcffa5e953c9bdb3cda3
https://github.com/scummvm/scummvm/commit/ac5dbe3492dfab26f4f8fcffa5e953c9bdb3cda3
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Create CMDID symbol
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index adf1ad9e8b..2c644dd91a 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -269,49 +269,50 @@ enum yysymbol_kind_t
YYSYMBOL_methodlistline = 113, /* methodlistline */
YYSYMBOL_handler = 114, /* handler */
YYSYMBOL_endargdef = 115, /* endargdef */
- YYSYMBOL_ID = 116, /* ID */
- YYSYMBOL_idlist = 117, /* idlist */
- YYSYMBOL_nonemptyidlist = 118, /* nonemptyidlist */
- YYSYMBOL_stmt = 119, /* stmt */
- YYSYMBOL_stmtoneliner = 120, /* stmtoneliner */
- YYSYMBOL_proc = 121, /* proc */
- YYSYMBOL_cmdargs = 122, /* cmdargs */
- YYSYMBOL_frameargs = 123, /* frameargs */
- YYSYMBOL_asgn = 124, /* asgn */
- YYSYMBOL_to = 125, /* to */
- YYSYMBOL_definevars = 126, /* definevars */
- YYSYMBOL_ifstmt = 127, /* ifstmt */
- YYSYMBOL_ifelsestmt = 128, /* ifelsestmt */
- YYSYMBOL_loop = 129, /* loop */
- YYSYMBOL_tell = 130, /* tell */
- YYSYMBOL_when = 131, /* when */
- YYSYMBOL_stmtlist = 132, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 133, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 134, /* stmtlistline */
- YYSYMBOL_simpleexpr_nounarymath = 135, /* simpleexpr_nounarymath */
- YYSYMBOL_var = 136, /* var */
- YYSYMBOL_varorchunk = 137, /* varorchunk */
- YYSYMBOL_varorthe = 138, /* varorthe */
- YYSYMBOL_chunk = 139, /* chunk */
- YYSYMBOL_object = 140, /* object */
- YYSYMBOL_the = 141, /* the */
- YYSYMBOL_theobj = 142, /* theobj */
- YYSYMBOL_menu = 143, /* menu */
- YYSYMBOL_writablethe = 144, /* writablethe */
- YYSYMBOL_thedatetime = 145, /* thedatetime */
- YYSYMBOL_thenumberof = 146, /* thenumberof */
- YYSYMBOL_chunktype = 147, /* chunktype */
- YYSYMBOL_inof = 148, /* inof */
- YYSYMBOL_list = 149, /* list */
- YYSYMBOL_proplist = 150, /* proplist */
- YYSYMBOL_proppair = 151, /* proppair */
- YYSYMBOL_unarymath = 152, /* unarymath */
- YYSYMBOL_simpleexpr = 153, /* simpleexpr */
- YYSYMBOL_expr = 154, /* expr */
- YYSYMBOL_expr_nounarymath = 155, /* expr_nounarymath */
- YYSYMBOL_sprite = 156, /* sprite */
- YYSYMBOL_exprlist = 157, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 158 /* nonemptyexprlist */
+ YYSYMBOL_CMDID = 116, /* CMDID */
+ YYSYMBOL_ID = 117, /* ID */
+ YYSYMBOL_idlist = 118, /* idlist */
+ YYSYMBOL_nonemptyidlist = 119, /* nonemptyidlist */
+ YYSYMBOL_stmt = 120, /* stmt */
+ YYSYMBOL_stmtoneliner = 121, /* stmtoneliner */
+ YYSYMBOL_proc = 122, /* proc */
+ YYSYMBOL_cmdargs = 123, /* cmdargs */
+ YYSYMBOL_frameargs = 124, /* frameargs */
+ YYSYMBOL_asgn = 125, /* asgn */
+ YYSYMBOL_to = 126, /* to */
+ YYSYMBOL_definevars = 127, /* definevars */
+ YYSYMBOL_ifstmt = 128, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 129, /* ifelsestmt */
+ YYSYMBOL_loop = 130, /* loop */
+ YYSYMBOL_tell = 131, /* tell */
+ YYSYMBOL_when = 132, /* when */
+ YYSYMBOL_stmtlist = 133, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 134, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 135, /* stmtlistline */
+ YYSYMBOL_simpleexpr_nounarymath = 136, /* simpleexpr_nounarymath */
+ YYSYMBOL_var = 137, /* var */
+ YYSYMBOL_varorchunk = 138, /* varorchunk */
+ YYSYMBOL_varorthe = 139, /* varorthe */
+ YYSYMBOL_chunk = 140, /* chunk */
+ YYSYMBOL_object = 141, /* object */
+ YYSYMBOL_the = 142, /* the */
+ YYSYMBOL_theobj = 143, /* theobj */
+ YYSYMBOL_menu = 144, /* menu */
+ YYSYMBOL_writablethe = 145, /* writablethe */
+ YYSYMBOL_thedatetime = 146, /* thedatetime */
+ YYSYMBOL_thenumberof = 147, /* thenumberof */
+ YYSYMBOL_chunktype = 148, /* chunktype */
+ YYSYMBOL_inof = 149, /* inof */
+ YYSYMBOL_list = 150, /* list */
+ YYSYMBOL_proplist = 151, /* proplist */
+ YYSYMBOL_proppair = 152, /* proppair */
+ YYSYMBOL_unarymath = 153, /* unarymath */
+ YYSYMBOL_simpleexpr = 154, /* simpleexpr */
+ YYSYMBOL_expr = 155, /* expr */
+ YYSYMBOL_expr_nounarymath = 156, /* expr_nounarymath */
+ YYSYMBOL_sprite = 157, /* sprite */
+ YYSYMBOL_exprlist = 158, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 159 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -631,18 +632,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 155
+#define YYFINAL 174
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4062
+#define YYLAST 4150
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 55
+#define YYNNTS 56
/* YYNRULES -- Number of rules. */
-#define YYNRULES 258
+#define YYNRULES 277
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 495
+#define YYNSTATES 514
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -702,30 +703,32 @@ static const yytype_int16 yyrline[] =
{
0, 195, 195, 197, 203, 210, 211, 212, 213, 214,
243, 247, 249, 251, 252, 255, 261, 268, 269, 274,
- 278, 282, 283, 284, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 306, 307, 311,
- 313, 314, 315, 316, 317, 318, 319, 320, 322, 323,
- 324, 326, 327, 328, 329, 330, 331, 334, 336, 339,
- 340, 341, 342, 343, 344, 345, 346, 347, 350, 351,
- 353, 354, 355, 356, 357, 358, 361, 362, 365, 369,
- 379, 380, 381, 382, 383, 384, 387, 388, 389, 392,
- 393, 394, 395, 396, 397, 398, 399, 404, 405, 406,
- 407, 410, 413, 418, 422, 428, 433, 436, 446, 451,
- 457, 463, 469, 477, 478, 479, 480, 483, 483, 485,
- 486, 487, 490, 494, 498, 504, 508, 512, 516, 518,
- 520, 524, 528, 532, 534, 535, 539, 545, 552, 553,
- 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
- 569, 570, 573, 575, 576, 579, 580, 583, 587, 591,
- 593, 595, 597, 599, 601, 603, 605, 609, 613, 619,
- 620, 621, 622, 625, 626, 627, 628, 629, 632, 634,
- 635, 636, 639, 640, 641, 642, 643, 644, 645, 646,
- 647, 648, 652, 653, 654, 655, 656, 659, 660, 661,
- 662, 665, 665, 667, 668, 669, 672, 676, 681, 682,
- 683, 686, 687, 690, 691, 695, 696, 697, 698, 699,
- 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
- 710, 711, 712, 713, 720, 721, 722, 723, 724, 725,
- 726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
- 736, 737, 738, 741, 742, 745, 746, 749, 753
+ 278, 282, 283, 284, 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, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
+ 337, 338, 339, 340, 341, 342, 343, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 366, 367, 370, 374, 384,
+ 385, 386, 387, 388, 389, 392, 393, 394, 397, 398,
+ 399, 400, 401, 402, 403, 404, 409, 410, 411, 412,
+ 415, 418, 423, 427, 433, 438, 441, 451, 456, 462,
+ 468, 474, 482, 483, 484, 485, 488, 488, 490, 491,
+ 492, 495, 499, 503, 509, 513, 517, 521, 523, 525,
+ 529, 533, 537, 539, 540, 544, 550, 557, 558, 564,
+ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
+ 575, 578, 580, 581, 584, 585, 588, 592, 596, 598,
+ 600, 602, 604, 606, 608, 610, 614, 618, 624, 625,
+ 626, 627, 630, 631, 632, 633, 634, 637, 639, 640,
+ 641, 644, 645, 646, 647, 648, 649, 650, 651, 652,
+ 653, 657, 658, 659, 660, 661, 664, 665, 666, 667,
+ 670, 670, 672, 673, 674, 677, 681, 686, 687, 688,
+ 691, 692, 695, 696, 700, 701, 702, 703, 704, 705,
+ 706, 707, 708, 709, 710, 711, 712, 713, 714, 715,
+ 716, 717, 718, 725, 726, 727, 728, 729, 730, 731,
+ 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
+ 742, 743, 746, 747, 750, 751, 754, 758
};
#endif
@@ -758,15 +761,15 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "','", "'('",
"')'", "'['", "']'", "':'", "$accept", "script", "scriptpartlist",
"scriptpart", "macro", "factory", "method", "methodlist",
- "nonemptymethodlist", "methodlistline", "handler", "endargdef", "ID",
- "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc", "cmdargs",
- "frameargs", "asgn", "to", "definevars", "ifstmt", "ifelsestmt", "loop",
- "tell", "when", "stmtlist", "nonemptystmtlist", "stmtlistline",
- "simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
- "object", "the", "theobj", "menu", "writablethe", "thedatetime",
- "thenumberof", "chunktype", "inof", "list", "proplist", "proppair",
- "unarymath", "simpleexpr", "expr", "expr_nounarymath", "sprite",
- "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "nonemptymethodlist", "methodlistline", "handler", "endargdef", "CMDID",
+ "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc",
+ "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
+ "ifelsestmt", "loop", "tell", "when", "stmtlist", "nonemptystmtlist",
+ "stmtlistline", "simpleexpr_nounarymath", "var", "varorchunk",
+ "varorthe", "chunk", "object", "the", "theobj", "menu", "writablethe",
+ "thedatetime", "thenumberof", "chunktype", "inof", "list", "proplist",
+ "proppair", "unarymath", "simpleexpr", "expr", "expr_nounarymath",
+ "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -791,7 +794,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-331)
+#define YYPACT_NINF (-343)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -805,56 +808,58 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2243, -331, -331, -331, -331, -331, -331, -24, -331, 3446,
- 1376, 1473, -331, -331, 3446, -331, 25, -331, -331, 1570,
- 75, 3368, -331, 3446, -331, -331, 3446, 1570, 1376, 3446,
- -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
- -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
- -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
- -331, -331, 1473, 3446, 3446, 3290, -331, 31, 2243, -331,
- -331, -331, -331, 1570, -331, -331, -331, -331, -331, -331,
- -331, -331, -331, -331, -49, -331, -331, -331, -331, -331,
- -331, -331, -12, -31, -331, -331, -331, -331, 1667, 1667,
- 1667, 1667, 1473, 1473, 1667, 1667, 1667, 1667, 1667, 3524,
- 1473, 1667, 1667, 1279, 695, -11, 10, 21, -331, -331,
- -331, -331, -331, -331, -331, -331, -331, -331, -331, 794,
- -331, 1473, 405, 3446, 23, 37, 891, 3446, 1473, 3602,
- -331, -331, -17, -331, 103, 44, 47, 988, 48, 50,
- 51, 8, 54, 3446, -331, -331, -331, 55, 1085, -331,
- -331, 3446, -331, -331, -331, -331, 1182, 3897, -331, -18,
- 38, 41, 76, -41, -33, -32, -30, 5, 64, 126,
- 127, 3884, -331, -331, -331, 459, 56, 61, 63, -16,
- -22, -331, 3897, 65, 60, 1473, -331, -331, 140, 1473,
- 1473, 1473, 1473, 1958, 1958, 2152, 1473, 2055, 2055, 1473,
- 1473, 1473, 1473, 1473, 1473, 1473, 1473, -331, 3720, -331,
- 207, 2970, 1473, 1473, 1473, 1473, 1473, 71, -331, -331,
- 3680, 3680, 3680, 128, 3733, 145, -331, -331, 1473, 1473,
- -73, -331, 1473, -331, -331, -331, 3290, 3050, -331, 78,
- -331, -331, 150, 3913, 1667, 1667, 1667, 1667, 1667, 1667,
- 1667, 1667, -331, -331, -331, -331, -331, -331, -331, -331,
- -331, -331, -331, -331, -331, -331, 17, 1764, 1861, 1667,
- 1667, 1473, -331, 1473, 1473, -331, 1473, 596, -331, -331,
- 1473, 79, 1473, 122, 122, 122, 122, 3967, 3967, -331,
- -2, 122, 122, 122, 122, -2, -36, -36, -331, -331,
- 60, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
- 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 3050,
- 162, 3050, -331, 85, -331, 87, 88, 1473, 3050, 1861,
- 3746, 3897, 3446, -331, -331, 89, -331, -331, 3802, -331,
- -331, -331, 2403, -331, -331, 3050, 1473, -331, 159, -331,
- 160, -331, 167, -331, 169, -331, -331, 1667, 17, 17,
- 17, 17, 1667, 1667, 17, 1667, 1667, -331, -331, -331,
- -331, -331, -331, -80, 3897, 3897, 3897, 56, 61, 99,
- -331, 3897, -331, 3897, 122, 122, 122, 122, 3967, 3967,
- -331, -2, 122, 122, 122, 122, -2, -36, -36, -331,
- -331, 60, 2323, 3130, 3050, -331, -331, -331, 147, 2490,
- -331, 3446, -73, -331, 106, -331, 2570, 3897, 1667, 1667,
- 1667, 1667, -331, 1667, 1667, 1667, 1667, -331, 176, 135,
- -331, -331, -331, 3210, 110, 3050, -331, 174, 1473, 112,
- 121, -331, -331, 3446, -331, -331, -331, -331, -331, -331,
- -331, -331, 148, 1667, -331, 3050, -331, -331, 2650, 1473,
- 3815, -331, 3050, 18, -331, 1667, 2730, 123, 3828, 3050,
- 3050, -331, 3446, -331, 125, -331, 3050, 2810, -331, -331,
- 2890, 129, 130, -331, -331
+ 2296, -343, -343, -343, -343, -343, -343, -19, -343, 3433,
+ 1429, 1526, -343, -343, 3433, -343, -6, -343, -343, 1623,
+ 37, 3512, -343, 3433, -343, -343, 3433, 1623, 1429, 3433,
+ -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -343, -343, 1526, 3433, 3433, 3827, -343, 58, 2296,
+ -343, -343, -343, -343, 1623, -343, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, -14, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -12, -2, -343, -343, -343, -343, 1720, 1720, 1720,
+ 1720, 1526, 1526, 1720, 1720, 1720, 1720, 1720, 3591, 1526,
+ 1720, 1720, 1332, 748, 4, 13, 24, -343, -343, -343,
+ -343, -343, -343, -343, -343, -343, -343, -343, 847, -343,
+ 1526, 517, 3433, 32, 34, 944, 3433, 1526, 3670, -343,
+ -343, -11, -343, 60, 35, 36, 1041, 39, 40, 41,
+ 429, 42, 3433, -343, -343, -343, 43, 1138, -343, -343,
+ 3433, -343, -343, -343, -343, 1235, 4042, -343, -17, 11,
+ 15, 33, -38, -35, -34, -29, -25, 52, 80, 84,
+ 3988, -343, -343, -343, 499, 27, 31, 46, -77, -4,
+ -343, 4042, 48, 45, 1526, -343, -343, 115, 1526, 1526,
+ 1526, 1526, 2011, 2011, 2205, 1526, 2108, 2108, 1526, 1526,
+ 1526, 1526, 1526, 1526, 1526, 1526, -343, 589, -343, 530,
+ 3023, 1526, 1526, 1526, 1526, 1526, 47, -343, -343, 3749,
+ 3749, 3749, 108, 3874, 127, -343, -343, 1526, 1526, -70,
+ -343, 1526, -343, -343, -343, 3827, 3103, -343, 62, -343,
+ -343, 131, 4055, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
+ 1720, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+ -343, -343, -343, -343, -343, 63, 1817, 1914, 1720, 1720,
+ 1526, -343, 1526, 1526, -343, 1526, 3354, -343, -343, 1526,
+ 64, 1526, -39, -39, -39, -39, 183, 183, -343, -30,
+ -39, -39, -39, -39, -30, -13, -13, -343, -343, 45,
+ 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526,
+ 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 3103, 144,
+ 3103, -343, 65, -343, 69, 72, 1526, 3103, 1914, 3887,
+ 4042, 3433, -343, -343, 73, -343, -343, 3900, -343, -343,
+ -343, 2456, -343, -343, 3103, 1526, -343, 133, -343, 143,
+ -343, 145, -343, 146, -343, -343, 1720, 63, 63, 63,
+ 63, 1720, 1720, 63, 1720, 1720, -343, -343, -343, -343,
+ -343, -343, -52, 4042, 4042, 4042, 27, 31, 74, -343,
+ 4042, -343, 4042, -39, -39, -39, -39, 183, 183, -343,
+ -30, -39, -39, -39, -39, -30, -13, -13, -343, -343,
+ 45, 2376, 3183, 3103, -343, -343, -343, 161, 2543, -343,
+ 3433, -70, -343, 75, -343, 2623, 4042, 1720, 1720, 1720,
+ 1720, -343, 1720, 1720, 1720, 1720, -343, 150, 109, -343,
+ -343, -343, 3263, 82, 3103, -343, 147, 1526, 87, 88,
+ -343, -343, 3433, -343, -343, -343, -343, -343, -343, -343,
+ -343, 116, 1720, -343, 3103, -343, -343, 2703, 1526, 3956,
+ -343, 3103, 18, -343, 1720, 2783, 89, 3969, 3103, 3103,
+ -343, 3433, -343, 91, -343, 3103, 2863, -343, -343, 2943,
+ 92, 94, -343, -343
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -862,78 +867,80 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 0, 24, 31, 37, 60, 71, 36, 0, 38, 76,
- 101, 0, 39, 41, 0, 52, 53, 56, 58, 101,
- 59, 62, 69, 0, 72, 70, 0, 101, 101, 76,
+ 0, 24, 31, 37, 60, 72, 36, 0, 38, 95,
+ 120, 0, 39, 41, 0, 52, 53, 56, 58, 120,
+ 59, 62, 70, 0, 73, 71, 0, 120, 120, 95,
29, 57, 54, 51, 28, 30, 34, 66, 32, 33,
- 42, 43, 45, 46, 74, 75, 25, 26, 27, 47,
- 63, 35, 44, 48, 49, 50, 55, 68, 64, 65,
- 40, 73, 67, 76, 0, 61, 5, 0, 2, 3,
- 6, 7, 8, 101, 9, 80, 86, 87, 88, 81,
- 82, 83, 84, 85, 0, 99, 53, 59, 62, 67,
- 61, 78, 0, 77, 140, 141, 143, 142, 31, 37,
- 60, 71, 38, 52, 54, 32, 42, 45, 74, 0,
- 65, 0, 0, 0, 255, 152, 0, 0, 213, 147,
- 148, 149, 150, 169, 170, 171, 151, 214, 215, 102,
- 216, 0, 0, 76, 0, 0, 102, 0, 0, 0,
- 152, 155, 0, 156, 0, 0, 0, 102, 0, 0,
- 0, 0, 0, 76, 100, 1, 4, 0, 102, 98,
- 119, 0, 158, 157, 167, 168, 108, 109, 144, 0,
- 0, 0, 0, 25, 26, 27, 47, 63, 44, 55,
- 179, 0, 211, 212, 106, 0, 143, 142, 0, 152,
- 0, 206, 257, 0, 256, 255, 91, 92, 56, 0,
- 0, 0, 0, 29, 57, 51, 0, 34, 66, 0,
- 0, 0, 0, 0, 0, 0, 0, 234, 104, 235,
- 0, 0, 0, 0, 0, 0, 0, 0, 97, 90,
- 41, 28, 30, 0, 0, 55, 117, 118, 0, 0,
- 13, 95, 72, 93, 94, 121, 0, 134, 120, 0,
- 89, 79, 56, 112, 0, 0, 0, 0, 0, 0,
- 0, 0, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 197, 199, 200, 198, 0, 0, 0, 0,
- 0, 0, 146, 0, 0, 204, 0, 0, 205, 203,
- 0, 0, 0, 226, 227, 224, 225, 228, 229, 221,
- 231, 232, 233, 223, 222, 230, 217, 218, 219, 220,
- 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
- 122, 134, 153, 0, 154, 0, 0, 0, 134, 0,
- 0, 133, 0, 17, 18, 11, 14, 15, 0, 131,
- 138, 139, 0, 135, 136, 134, 0, 159, 0, 163,
- 0, 165, 0, 161, 0, 201, 202, 0, 33, 43,
- 46, 75, 48, 49, 50, 64, 65, 181, 174, 173,
- 180, 253, 254, 0, 210, 208, 209, 0, 0, 0,
- 207, 258, 145, 111, 245, 246, 243, 244, 247, 248,
- 240, 250, 251, 252, 242, 241, 249, 236, 237, 238,
- 239, 105, 0, 0, 10, 113, 114, 115, 0, 0,
- 116, 76, 0, 96, 0, 137, 20, 110, 0, 0,
- 0, 0, 172, 0, 0, 0, 0, 178, 0, 0,
- 176, 177, 107, 0, 0, 134, 124, 0, 0, 0,
- 0, 16, 132, 21, 160, 164, 166, 162, 192, 194,
- 195, 193, 0, 0, 196, 134, 126, 123, 0, 0,
- 0, 128, 134, 0, 22, 0, 0, 0, 0, 134,
- 12, 19, 0, 175, 0, 125, 134, 0, 23, 127,
- 0, 0, 0, 129, 130
+ 42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
+ 63, 35, 44, 48, 49, 50, 55, 68, 69, 64,
+ 65, 40, 74, 67, 95, 0, 61, 5, 0, 2,
+ 3, 6, 7, 8, 120, 9, 99, 105, 106, 107,
+ 100, 101, 102, 103, 104, 0, 118, 79, 78, 80,
+ 82, 83, 84, 86, 53, 92, 59, 62, 93, 94,
+ 81, 89, 90, 85, 67, 91, 88, 87, 61, 77,
+ 97, 0, 96, 159, 160, 162, 161, 31, 37, 60,
+ 72, 38, 52, 54, 32, 42, 45, 75, 68, 65,
+ 0, 0, 0, 274, 171, 0, 0, 232, 166, 167,
+ 168, 169, 188, 189, 190, 170, 233, 234, 121, 235,
+ 0, 0, 95, 0, 0, 121, 0, 0, 68, 171,
+ 174, 0, 175, 0, 0, 0, 121, 0, 0, 0,
+ 0, 0, 95, 119, 1, 4, 0, 121, 117, 138,
+ 0, 177, 176, 186, 187, 127, 128, 163, 0, 0,
+ 0, 0, 25, 26, 27, 47, 63, 44, 55, 198,
+ 0, 230, 231, 125, 0, 162, 161, 0, 171, 0,
+ 225, 276, 0, 275, 274, 110, 111, 56, 0, 0,
+ 0, 0, 29, 57, 51, 0, 34, 66, 0, 0,
+ 0, 0, 0, 0, 0, 0, 253, 123, 254, 0,
+ 0, 0, 0, 0, 0, 0, 0, 116, 109, 41,
+ 28, 30, 0, 0, 55, 136, 137, 0, 0, 13,
+ 114, 73, 112, 113, 140, 0, 153, 139, 0, 108,
+ 98, 56, 131, 0, 0, 0, 0, 0, 0, 0,
+ 0, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 216, 218, 219, 217, 0, 0, 0, 0, 0,
+ 0, 165, 0, 0, 223, 0, 0, 224, 222, 0,
+ 0, 0, 245, 246, 243, 244, 247, 248, 240, 250,
+ 251, 252, 242, 241, 249, 236, 237, 238, 239, 122,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 153, 141,
+ 153, 172, 0, 173, 0, 0, 0, 153, 0, 0,
+ 152, 0, 17, 18, 11, 14, 15, 0, 150, 157,
+ 158, 0, 154, 155, 153, 0, 178, 0, 182, 0,
+ 184, 0, 180, 0, 220, 221, 0, 33, 43, 46,
+ 76, 48, 49, 50, 64, 65, 200, 193, 192, 199,
+ 272, 273, 0, 229, 227, 228, 0, 0, 0, 226,
+ 277, 164, 130, 264, 265, 262, 263, 266, 267, 259,
+ 269, 270, 271, 261, 260, 268, 255, 256, 257, 258,
+ 124, 0, 0, 10, 132, 133, 134, 0, 0, 135,
+ 95, 0, 115, 0, 156, 20, 129, 0, 0, 0,
+ 0, 191, 0, 0, 0, 0, 197, 0, 0, 195,
+ 196, 126, 0, 0, 153, 143, 0, 0, 0, 0,
+ 16, 151, 21, 179, 183, 185, 181, 211, 213, 214,
+ 212, 0, 0, 215, 153, 145, 142, 0, 0, 0,
+ 147, 153, 0, 22, 0, 0, 0, 0, 153, 12,
+ 19, 0, 194, 0, 144, 153, 0, 23, 146, 0,
+ 0, 0, 148, 149
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -331, -331, -331, 155, -331, -331, -331, -331, -331, -197,
- -331, -331, 0, -25, -331, 3, -63, -331, 6, 200,
- -331, -331, -331, -331, -331, -331, -331, -331, -323, -331,
- -330, -117, -20, -105, -331, -100, -331, -331, -45, -210,
- 213, -331, -331, -331, -58, -331, -331, -52, -331, 262,
- 67, 77, -23, 49, -211
+ -343, -343, -343, 123, -343, -343, -343, -343, -343, -247,
+ -343, -343, 0, -5, -27, -343, 7, -63, -343, 1,
+ 168, -343, -343, -343, -343, -343, -343, -343, -343, -342,
+ -343, -341, -98, -20, -124, -343, -131, -343, -343, -100,
+ -260, 178, -343, -343, -343, -288, -343, -343, -106, -343,
+ 258, 61, 16, -71, 2, -230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 67, 68, 69, 70, 71, 344, 345, 346, 347,
- 72, 473, 115, 92, 93, 351, 75, 76, 116, 117,
- 77, 238, 78, 79, 80, 81, 82, 83, 352, 353,
- 354, 118, 119, 333, 142, 120, 121, 122, 377, 378,
- 123, 124, 125, 276, 367, 126, 190, 191, 127, 128,
- 192, 218, 130, 193, 194
+ 0, 68, 69, 70, 71, 72, 363, 364, 365, 366,
+ 73, 492, 109, 134, 111, 112, 370, 76, 77, 135,
+ 136, 78, 257, 79, 80, 81, 82, 83, 84, 371,
+ 372, 373, 137, 138, 352, 161, 139, 140, 141, 396,
+ 397, 142, 143, 144, 295, 386, 145, 209, 210, 146,
+ 147, 211, 237, 149, 212, 213
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -941,657 +948,704 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 73, 141, 154, 74, 150, 310, 412, 84, 414, 91,
- 254, 342, 217, 224, 133, 419, 255, 236, 290, 217,
- 442, 140, 425, 144, 343, 135, 145, 237, 262, 91,
- 217, 155, 426, 146, 148, 263, 264, 266, 152, 268,
- 365, 217, 246, 265, 267, 366, 269, 224, 159, 217,
- 199, 200, 201, 202, 222, 223, 134, 224, 214, 215,
- 206, 225, 226, 91, 153, 73, 256, 161, 73, 258,
- 383, 74, 257, 85, 270, 259, 287, 129, 132, 157,
- 288, 271, 425, 195, 425, 160, 136, 286, 195, 425,
- 212, 213, 214, 215, 147, 129, 425, 209, 210, 211,
- 212, 213, 214, 215, 260, 247, 219, 196, 227, 180,
- 261, 137, 138, 219, 189, 481, 482, 411, 197, 272,
- 228, 273, 468, 274, 219, 275, 335, 336, 249, 151,
- 334, 334, 334, 91, 229, 219, 239, 233, 425, 180,
- 158, 240, 476, 219, 241, 243, 425, 244, 245, 480,
- 425, 248, 250, 91, 277, 278, 487, 425, 290, 283,
- 425, 251, 447, 490, 284, 285, 292, 289, 331, 166,
- 167, 224, 337, 339, 206, 355, 356, 181, 413, 392,
- 185, 448, 415, 349, 416, 417, 422, 428, 429, 199,
- 200, 201, 202, 222, 223, 430, 224, 431, 220, 206,
- 225, 226, 286, 452, 462, 234, 463, 467, 469, 471,
- 332, 332, 332, 211, 212, 213, 214, 215, 472, 475,
- 485, 73, 489, 156, 330, 451, 493, 494, 149, 464,
- 140, 140, 140, 380, 143, 390, 209, 210, 211, 212,
- 213, 214, 215, 253, 291, 0, 73, 73, 0, 199,
- 200, 201, 202, 222, 223, 0, 224, 0, 0, 206,
- 225, 226, 0, 0, 0, 0, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 0, 0, 0, 0, 389, 0, 297,
- 298, 299, 301, 302, 0, 0, 209, 210, 211, 212,
- 213, 214, 215, 0, 0, 340, 341, 282, 0, 348,
- 433, 434, 435, 436, 0, 0, 439, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
- 0, 73, 0, 0, 0, 0, 0, 0, 73, 0,
- 0, 0, 421, 0, 0, 0, 0, 0, 0, 0,
- 384, 385, 73, 386, 0, 73, 0, 391, 0, 393,
- 162, 163, 164, 165, 0, 0, 168, 169, 170, 171,
- 172, 0, 0, 182, 183, 0, 0, 0, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
- 406, 407, 408, 409, 410, 0, 450, 0, 0, 0,
- 0, 0, 0, 0, 418, 0, 0, 0, 0, 0,
- 0, 0, 73, 73, 73, 0, 446, 0, 0, 73,
- 0, 91, 0, 427, 0, 0, 73, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 221, 0,
- 0, 0, 0, 73, 0, 73, 466, 199, 200, 201,
- 202, 222, 223, 474, 224, 0, 0, 206, 225, 226,
- 0, 0, 0, 0, 0, 73, 0, 0, 73, 0,
- 0, 0, 73, 0, 0, 0, 73, 0, 0, 73,
- 73, 0, 488, 0, 0, 0, 73, 73, 0, 0,
- 73, 0, 0, 0, 209, 210, 211, 212, 213, 214,
- 215, 199, 200, 201, 202, 222, 223, 0, 224, 0,
- 0, 206, 225, 226, 0, 470, 357, 358, 359, 360,
- 361, 362, 363, 364, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 478, 0, 0, 379,
- 379, 381, 382, 0, 0, 0, 0, 0, 209, 210,
- 211, 212, 213, 214, 215, 0, 0, 281, 0, 282,
+ 74, 160, 169, 173, 110, 329, 431, 75, 433, 152,
+ 243, 273, 85, 225, 361, 438, 159, 274, 163, 243,
+ 154, 164, 214, 255, 110, 153, 305, 362, 165, 167,
+ 444, 281, 445, 256, 283, 285, 243, 171, 282, 275,
+ 287, 284, 286, 277, 289, 276, 309, 288, 461, 278,
+ 236, 290, 230, 231, 232, 233, 234, 236, 174, 110,
+ 172, 279, 231, 232, 233, 234, 74, 280, 236, 74,
+ 402, 148, 151, 156, 157, 176, 75, 238, 86, 236,
+ 155, 233, 234, 178, 238, 179, 384, 236, 166, 148,
+ 444, 385, 444, 258, 306, 238, 180, 444, 307, 452,
+ 453, 454, 455, 214, 444, 458, 238, 291, 296, 292,
+ 215, 293, 297, 294, 238, 500, 501, 430, 353, 353,
+ 353, 216, 487, 199, 170, 246, 354, 355, 208, 247,
+ 302, 248, 259, 260, 303, 177, 262, 263, 264, 267,
+ 269, 311, 495, 309, 350, 268, 444, 110, 304, 499,
+ 308, 252, 356, 199, 444, 358, 506, 375, 444, 374,
+ 432, 447, 434, 509, 411, 444, 435, 110, 444, 436,
+ 441, 448, 471, 449, 450, 270, 466, 305, 481, 486,
+ 482, 488, 185, 186, 490, 491, 504, 494, 508, 512,
+ 200, 513, 175, 204, 470, 467, 168, 399, 483, 162,
+ 409, 272, 368, 218, 219, 220, 221, 241, 242, 0,
+ 243, 239, 0, 225, 244, 245, 310, 0, 253, 0,
+ 0, 0, 0, 0, 0, 218, 219, 220, 221, 351,
+ 351, 351, 243, 0, 0, 225, 244, 245, 0, 0,
+ 74, 0, 0, 0, 159, 159, 159, 349, 0, 0,
+ 228, 229, 230, 231, 232, 233, 234, 0, 0, 0,
+ 0, 0, 0, 0, 0, 74, 74, 0, 0, 0,
+ 0, 0, 228, 229, 230, 231, 232, 233, 234, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 0, 0, 0, 0,
+ 0, 408, 316, 317, 318, 320, 321, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 359, 360,
+ 0, 0, 367, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
+ 74, 0, 0, 0, 0, 0, 440, 74, 0, 0,
+ 0, 0, 0, 403, 404, 0, 405, 0, 0, 0,
+ 410, 74, 412, 0, 74, 181, 182, 183, 184, 0,
+ 0, 187, 188, 189, 190, 191, 0, 0, 201, 202,
+ 0, 413, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 0, 0,
+ 0, 0, 0, 469, 0, 0, 0, 437, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 74, 74, 74, 0, 110, 446, 0, 74, 465,
+ 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 74, 265, 74, 0, 0, 493, 0, 485,
+ 0, 218, 219, 220, 221, 241, 242, 0, 243, 0,
+ 0, 225, 244, 245, 74, 0, 0, 74, 0, 0,
+ 0, 74, 0, 0, 0, 74, 507, 0, 74, 74,
+ 0, 0, 0, 0, 0, 74, 74, 0, 0, 74,
+ 0, 0, 0, 0, 0, 0, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 266, 0, 489, 0,
+ 0, 376, 377, 378, 379, 380, 381, 382, 383, 0,
+ 0, 218, 219, 220, 221, 241, 242, 0, 243, 497,
+ 240, 225, 244, 245, 398, 398, 400, 401, 0, 218,
+ 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
+ 244, 245, 218, 219, 220, 221, 241, 242, 0, 243,
+ 0, 0, 225, 244, 245, 0, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 0, 300, 0, 301,
+ 0, 0, 0, 0, 0, 0, 228, 229, 230, 231,
+ 232, 233, 234, 0, 0, 0, 398, 0, 0, 228,
+ 229, 230, 231, 232, 233, 234, 0, 0, 0, 0,
+ 301, 330, 331, 332, 333, 334, 335, 0, 336, 0,
+ 0, 337, 338, 339, 451, 0, 0, 0, 0, 456,
+ 457, 0, 459, 460, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 379, 0, 1, 387, 388, 0, 2, 3, 4,
- 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 86, 17, 18, 0, 87, 88, 432,
- 22, 0, 24, 25, 437, 438, 0, 440, 441, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
- 0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
- 454, 455, 456, 457, 0, 458, 459, 460, 461, 0,
- 94, 95, 1, 186, 187, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 437, 87, 88, 0, 22,
- 0, 24, 25, 0, 0, 0, 0, 483, 0, 0,
- 0, 30, 31, 104, 33, 34, 35, 0, 36, 37,
- 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 0, 0, 0, 111, 112, 0,
- 0, 0, 0, 0, 131, 0, 114, 0, 188, 94,
- 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 198, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 0, 0, 0, 199, 200, 201, 202,
- 203, 204, 104, 205, 34, 35, 206, 207, 208, 105,
- 39, 106, 41, 107, 43, 108, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 109,
- 57, 58, 110, 60, 61, 89, 0, 0, 0, 0,
- 0, 0, 90, 209, 210, 211, 212, 213, 214, 215,
- 0, 0, 216, 131, 0, 114, 94, 95, 1, 96,
- 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 230, 0, 15, 86, 17,
- 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 0, 0, 0, 199, 200, 201, 202, 203, 204, 104,
- 205, 231, 232, 206, 207, 208, 105, 39, 106, 41,
- 107, 43, 108, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 109, 57, 58, 110,
- 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
- 209, 210, 211, 212, 213, 214, 215, 0, 0, 216,
- 131, 0, 114, 94, 95, 1, 96, 97, 0, 98,
- 99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 242, 25, 0, 0, 0, 0,
- 199, 200, 201, 202, 203, 204, 104, 205, 34, 35,
- 206, 207, 208, 105, 39, 106, 41, 107, 43, 108,
+ 0, 0, 0, 0, 0, 0, 0, 0, 340, 341,
+ 342, 343, 344, 345, 346, 0, 0, 347, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 473, 474, 475, 476, 0,
+ 477, 478, 479, 480, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 456, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 502, 113, 114, 1, 205, 206, 87, 117,
+ 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
+ 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
+ 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
+ 0, 0, 0, 0, 30, 31, 123, 33, 34, 35,
+ 0, 36, 37, 124, 39, 125, 41, 126, 43, 127,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
+ 105, 106, 107, 0, 0, 0, 108, 0, 0, 0,
+ 130, 131, 0, 0, 0, 0, 0, 150, 0, 133,
+ 0, 207, 113, 114, 1, 115, 116, 87, 117, 118,
+ 119, 120, 6, 88, 0, 89, 8, 90, 91, 92,
+ 12, 13, 93, 15, 94, 217, 18, 95, 96, 97,
+ 98, 22, 99, 24, 25, 100, 101, 102, 103, 218,
+ 219, 220, 221, 222, 223, 123, 224, 34, 35, 225,
+ 226, 227, 124, 39, 125, 41, 126, 43, 127, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 128, 58, 59, 129, 61, 62, 104, 105,
+ 106, 107, 0, 0, 0, 108, 228, 229, 230, 231,
+ 232, 233, 234, 0, 0, 235, 150, 0, 133, 113,
+ 114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
+ 88, 0, 89, 8, 90, 91, 92, 12, 249, 93,
+ 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
+ 24, 25, 100, 101, 102, 103, 218, 219, 220, 221,
+ 222, 223, 123, 224, 250, 251, 225, 226, 227, 124,
+ 39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 128,
+ 58, 59, 129, 61, 62, 104, 105, 106, 107, 0,
+ 0, 0, 108, 228, 229, 230, 231, 232, 233, 234,
+ 0, 0, 235, 150, 0, 133, 113, 114, 1, 115,
+ 116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
+ 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
+ 18, 95, 96, 97, 98, 22, 99, 261, 25, 100,
+ 101, 102, 103, 218, 219, 220, 221, 222, 223, 123,
+ 224, 34, 35, 225, 226, 227, 124, 39, 125, 41,
+ 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
+ 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
+ 228, 229, 230, 231, 232, 233, 234, 0, 0, 235,
+ 150, 0, 133, 113, 114, 1, 115, 116, 87, 117,
+ 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
+ 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
+ 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
+ 218, 219, 220, 221, 222, 223, 123, 224, 34, 35,
+ 225, 226, 227, 124, 39, 125, 41, 126, 43, 127,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 109, 57, 58, 110, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 209, 210, 211,
- 212, 213, 214, 215, 0, 0, 216, 131, 0, 114,
- 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 0, 0, 0, 199, 200, 201,
- 202, 203, 204, 104, 205, 34, 35, 206, 207, 208,
- 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
+ 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
+ 105, 106, 107, 0, 0, 0, 108, 228, 229, 230,
+ 231, 232, 233, 234, 0, 0, 235, 150, 0, 133,
+ 113, 114, 1, 115, 116, 87, 117, 118, 119, 120,
+ 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
+ 93, 15, 94, 271, 18, 95, 96, 97, 98, 22,
+ 99, 24, 25, 100, 101, 102, 103, 218, 219, 220,
+ 221, 222, 223, 123, 224, 34, 35, 225, 226, 227,
+ 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 209, 210, 211, 212, 213, 214,
- 215, 0, 0, 216, 131, 0, 114, 94, 95, 1,
- 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
- 252, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 0, 0, 0, 199, 200, 201, 202, 203, 204,
- 104, 205, 34, 35, 206, 207, 208, 105, 39, 106,
- 41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
- 110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 209, 210, 211, 212, 213, 214, 215, 0, 0,
- 0, 131, 0, 114, 94, 95, 1, 96, 97, 0,
- 98, 99, 100, 101, 6, 0, 0, 0, 8, 0,
- 0, 0, 12, 13, 0, 15, 86, 17, 18, 0,
- 87, 88, 0, 22, 0, 24, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 30, 31, 104, 33, 34,
- 35, 0, 36, 37, 105, 39, 106, 41, 107, 43,
- 108, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 109, 57, 58, 110, 60, 61,
- 89, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 0, 111, 112, 0, 0, 0, 0, 0, 131, 184,
- 114, 94, 95, 1, 96, 97, 0, 98, 99, 100,
- 101, 6, 0, 0, 0, 102, 0, 0, 0, 12,
- 13, 0, 103, 86, 17, 18, 0, 87, 88, 0,
- 22, 0, 24, 25, 0, 0, 0, 0, 0, 0,
- 0, 0, 30, 31, 104, 33, 34, 35, 0, 36,
- 37, 105, 39, 106, 41, 107, 43, 108, 45, 46,
+ 128, 58, 59, 129, 61, 62, 104, 105, 106, 107,
+ 0, 0, 0, 108, 228, 229, 230, 231, 232, 233,
+ 234, 0, 0, 0, 150, 0, 133, 113, 114, 1,
+ 115, 116, 87, 117, 118, 119, 120, 6, 88, 0,
+ 89, 8, 90, 91, 92, 12, 13, 93, 15, 94,
+ 17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
+ 100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
+ 123, 33, 34, 35, 0, 36, 37, 124, 39, 125,
+ 41, 126, 43, 127, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 128, 58, 59,
+ 129, 61, 62, 104, 105, 106, 107, 0, 0, 0,
+ 108, 0, 0, 0, 130, 131, 0, 0, 0, 0,
+ 0, 150, 203, 133, 113, 114, 1, 115, 116, 87,
+ 117, 118, 119, 120, 6, 88, 0, 89, 121, 90,
+ 91, 92, 12, 13, 93, 122, 94, 17, 18, 95,
+ 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
+ 103, 0, 0, 0, 0, 30, 31, 123, 33, 34,
+ 35, 0, 36, 37, 124, 39, 125, 41, 126, 43,
+ 127, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 128, 58, 59, 129, 61, 62,
+ 104, 105, 106, 107, 0, 0, 0, 108, 0, 0,
+ 0, 130, 131, 0, 0, 0, 0, 0, 132, 0,
+ 133, 113, 114, 1, 115, 116, 87, 117, 118, 119,
+ 120, 6, 88, 0, 89, 8, 90, 91, 92, 12,
+ 13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
+ 22, 99, 24, 25, 100, 101, 102, 103, 0, 0,
+ 0, 0, 30, 31, 123, 33, 34, 35, 0, 36,
+ 37, 124, 39, 125, 41, 126, 43, 127, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 109, 57, 58, 110, 60, 61, 89, 0, 0,
- 0, 0, 0, 0, 90, 0, 0, 0, 111, 112,
- 0, 0, 0, 0, 0, 113, 0, 114, 94, 95,
- 1, 96, 97, 0, 98, 99, 100, 101, 6, 0,
- 0, 0, 8, 0, 0, 0, 12, 13, 0, 15,
- 86, 17, 18, 0, 87, 88, 0, 22, 0, 24,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 31, 104, 33, 34, 35, 0, 36, 37, 105, 39,
- 106, 41, 107, 43, 108, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 109, 57,
- 58, 110, 60, 61, 89, 0, 0, 0, 0, 0,
- 0, 90, 0, 0, 0, 111, 112, 0, 0, 0,
- 0, 0, 131, 0, 114, 94, 95, 1, 96, 97,
- 0, 98, 99, 100, 101, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
- 0, 87, 88, 0, 22, 0, 24, 25, 0, 0,
- 0, 0, 0, 0, 0, 0, 30, 31, 104, 33,
- 34, 35, 0, 36, 37, 105, 39, 106, 41, 107,
- 43, 108, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 109, 57, 58, 110, 60,
- 61, 89, 0, 0, 0, 0, 0, 0, 90, 0,
- 0, 0, 111, 112, 0, 0, 0, 0, 0, 113,
- 0, 114, 94, 95, 1, 96, 97, 0, 98, 99,
- 100, 101, 6, 0, 0, 0, 8, 0, 0, 0,
- 12, 13, 0, 15, 86, 17, 18, 0, 87, 88,
- 0, 22, 0, 24, 25, 0, 0, 0, 0, 0,
- 0, 0, 0, 30, 31, 104, 33, 34, 35, 0,
- 36, 37, 105, 39, 106, 41, 107, 43, 108, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 109, 57, 58, 59, 60, 61, 89, 0,
- 0, 0, 0, 0, 0, 90, 0, 0, 0, 111,
- 112, 0, 0, 0, 0, 0, 131, 0, 114, 94,
- 95, 1, 96, 97, 0, 98, 99, 100, 101, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 0, 0, 0, 0, 0, 0, 0,
- 30, 31, 104, 33, 34, 35, 0, 36, 37, 105,
- 368, 106, 369, 107, 370, 108, 371, 46, 47, 48,
- 49, 50, 0, 51, 52, 372, 373, 374, 56, 109,
- 57, 375, 376, 60, 61, 89, 0, 0, 0, 0,
- 0, 0, 90, 0, 0, 0, 111, 112, 0, 0,
- 0, 0, 0, 131, 0, 114, 94, 95, 1, 96,
- 97, 0, 98, 99, 100, 101, 6, 0, 0, 0,
- 8, 0, 0, 0, 12, 13, 0, 15, 86, 17,
- 18, 0, 87, 88, 0, 22, 0, 24, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 30, 31, 104,
- 33, 34, 35, 0, 36, 37, 105, 39, 106, 41,
- 107, 43, 108, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 372, 373, 55, 56, 109, 57, 375, 376,
- 60, 61, 89, 0, 0, 0, 0, 0, 0, 90,
- 0, 0, 0, 111, 112, 0, 0, 0, 0, 0,
- 131, 0, 114, 94, 95, 1, 96, 97, 0, 98,
- 99, 100, 101, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 104, 33, 34, 35,
- 0, 36, 37, 105, 39, 106, 41, 107, 43, 108,
+ 56, 128, 58, 59, 129, 61, 62, 104, 105, 106,
+ 107, 0, 0, 0, 108, 0, 0, 0, 130, 131,
+ 0, 0, 0, 0, 0, 150, 0, 133, 113, 114,
+ 1, 115, 116, 87, 117, 118, 119, 120, 6, 88,
+ 0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
+ 94, 17, 18, 95, 96, 97, 98, 22, 99, 24,
+ 25, 100, 101, 102, 103, 0, 0, 0, 0, 30,
+ 31, 123, 33, 34, 35, 0, 36, 37, 124, 39,
+ 125, 41, 126, 43, 127, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 128, 58,
+ 59, 129, 61, 62, 104, 105, 106, 107, 0, 0,
+ 0, 108, 0, 0, 0, 130, 131, 0, 0, 0,
+ 0, 0, 132, 0, 133, 113, 114, 1, 115, 116,
+ 87, 117, 118, 119, 120, 6, 88, 0, 89, 8,
+ 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
+ 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
+ 102, 103, 0, 0, 0, 0, 30, 31, 123, 33,
+ 34, 35, 0, 36, 37, 124, 39, 125, 41, 126,
+ 43, 127, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 128, 58, 59, 60, 61,
+ 62, 104, 105, 106, 107, 0, 0, 0, 108, 0,
+ 0, 0, 130, 131, 0, 0, 0, 0, 0, 150,
+ 0, 133, 113, 114, 1, 115, 116, 87, 117, 118,
+ 119, 120, 6, 88, 0, 89, 8, 90, 91, 92,
+ 12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
+ 98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
+ 0, 0, 0, 30, 31, 123, 33, 34, 35, 0,
+ 36, 37, 124, 387, 125, 388, 126, 389, 127, 390,
+ 46, 47, 48, 49, 50, 0, 51, 52, 391, 392,
+ 393, 56, 128, 58, 394, 395, 61, 62, 104, 105,
+ 106, 107, 0, 0, 0, 108, 0, 0, 0, 130,
+ 131, 0, 0, 0, 0, 0, 150, 0, 133, 113,
+ 114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
+ 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
+ 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
+ 24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
+ 30, 31, 123, 33, 34, 35, 0, 36, 37, 124,
+ 39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 391, 392, 55, 56, 128,
+ 58, 394, 395, 61, 62, 104, 105, 106, 107, 0,
+ 0, 0, 108, 0, 0, 0, 130, 131, 0, 0,
+ 0, 0, 0, 150, 0, 133, 113, 114, 1, 115,
+ 116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
+ 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
+ 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
+ 101, 102, 103, 0, 0, 0, 0, 0, 0, 123,
+ 33, 34, 35, 0, 36, 37, 124, 39, 125, 41,
+ 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
+ 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
+ 0, 0, 0, 130, 131, 0, 0, 0, 0, 0,
+ 150, 0, 133, 113, 114, 1, 115, 116, 87, 117,
+ 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
+ 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
+ 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
+ 0, 0, 0, 0, 0, 0, 123, 33, 34, 35,
+ 0, 0, 0, 124, 39, 125, 41, 126, 43, 127,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 109, 57, 58, 110, 60, 61, 89,
- 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
- 111, 112, 0, 0, 0, 0, 0, 131, 0, 114,
- 94, 95, 1, 96, 97, 0, 98, 99, 100, 101,
- 6, 0, 0, 0, 8, 0, 0, 0, 12, 13,
- 0, 15, 86, 17, 18, 0, 87, 88, 0, 22,
- 0, 24, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 33, 34, 35, 0, 0, 0,
- 105, 39, 106, 41, 107, 43, 108, 45, 46, 47,
+ 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
+ 105, 106, 107, 0, 0, 0, 108, 0, 0, 0,
+ 130, 131, 0, 0, 0, 0, 0, 150, 0, 133,
+ 113, 114, 1, 115, 116, 87, 117, 118, 119, 120,
+ 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
+ 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
+ 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
+ 0, 0, 0, 123, 0, 34, 35, 0, 0, 0,
+ 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 109, 57, 58, 110, 60, 61, 89, 0, 0, 0,
- 0, 0, 0, 90, 0, 0, 0, 111, 112, 0,
- 0, 0, 0, 0, 131, 0, 114, 94, 95, 1,
- 96, 97, 0, 98, 99, 100, 101, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
- 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 104, 0, 34, 35, 0, 0, 0, 105, 39, 106,
- 41, 107, 43, 108, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 109, 57, 58,
- 110, 60, 61, 89, 0, 0, 0, 0, 0, 0,
- 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 131, 0, 114, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 128, 58, 59, 129, 61, 62, 104, 105, 106, 107,
+ 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 150, 0, 133, 2, 3, 4,
+ 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 462, 67, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 463, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 369, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 443, 66, 0, 0, 0, 0, 0,
+ 1, 0, 0, 369, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
- 1, 65, 0, 0, 2, 3, 4, 5, 6, 443,
- 66, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 468,
+ 1, 66, 0, 472, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 0, 0, 444, 0,
- 1, 65, 0, 0, 2, 3, 4, 5, 6, 0,
- 350, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 0, 57,
- 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
- 424, 65, 0, 0, 0, 0, 0, 1, 0, 0,
- 350, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 449, 1, 65, 0,
- 453, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 477, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 484, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 491, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 492, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 329, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 350, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 445, 7, 8,
- 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
- 19, 20, 21, 0, 22, 23, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 62, 63, 0, 0, 0, 0, 1, 65, 0,
- 0, 2, 3, 4, 5, 6, 0, 465, 7, 8,
- 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
- 19, 87, 21, 0, 22, 0, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 89, 63, 0, 0, 1, 0, 0, 65, 2,
- 3, 4, 5, 6, 0, 0, 0, 8, 0, 0,
- 0, 12, 13, 0, 15, 86, 17, 18, 0, 87,
- 88, 0, 22, 0, 24, 25, 0, 0, 0, 0,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 139, 57, 58, 59, 60, 61, 89,
- 0, 0, 0, 1, 0, 0, 90, 2, 3, 4,
- 5, 6, 0, 0, 0, 8, 0, 0, 0, 12,
- 13, 0, 15, 86, 17, 18, 0, 87, 88, 0,
- 22, 0, 24, 25, 0, 0, 0, 0, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 0, 57, 58, 59, 60, 61, 89, 0, 0,
- 0, 1, 0, 0, 90, 2, 3, 4, 5, 6,
- 0, 0, 0, 8, 0, 0, 0, 12, 13, 0,
- 15, 86, 17, 18, 0, 87, 88, 0, 22, 0,
- 24, 25, 0, 0, 0, 0, 0, 0, 0, 0,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 496, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 503, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 510,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 511,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 348, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
+ 464, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
+ 484, 1, 406, 407, 87, 2, 3, 4, 5, 6,
+ 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
+ 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
+ 24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 173, 174, 175,
- 176, 177, 0, 51, 178, 53, 54, 55, 179, 0,
- 57, 58, 59, 60, 61, 89, 0, 0, 0, 1,
- 0, 0, 90, 2, 3, 4, 5, 6, 0, 0,
- 0, 8, 0, 0, 0, 12, 13, 0, 15, 86,
- 17, 18, 0, 87, 88, 0, 22, 0, 24, 25,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 31,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 104, 105, 106, 107, 0,
+ 1, 0, 108, 87, 2, 3, 4, 5, 6, 88,
+ 0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
+ 94, 17, 18, 95, 96, 97, 98, 22, 99, 24,
+ 25, 100, 101, 102, 103, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 104, 105, 106, 107, 0, 1,
+ 0, 108, 87, 2, 3, 4, 5, 6, 88, 0,
+ 89, 8, 90, 91, 92, 12, 13, 93, 15, 94,
+ 17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
+ 100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 235, 0, 57, 58,
- 59, 60, 61, 89, 0, 0, 0, 1, 0, 0,
- 90, 98, 99, 4, 5, 6, 0, 0, 0, 8,
- 0, 0, 0, 12, 13, 0, 15, 86, 17, 18,
- 0, 87, 88, 0, 22, 0, 24, 25, 0, 0,
- 0, 0, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 105, 39, 106, 41, 107,
- 43, 108, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 0, 57, 58, 59, 60,
- 61, 89, 311, 312, 313, 314, 315, 316, 90, 317,
- 0, 0, 318, 319, 320, 199, 200, 201, 202, 222,
- 223, 0, 224, 0, 0, 206, 225, 226, 199, 200,
- 201, 202, 222, 223, 0, 224, 0, 0, 206, 225,
- 226, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 322, 323, 324, 325, 326, 327, 0, 0, 328, 0,
- 0, 0, 209, 210, 211, 212, 213, 214, 215, 0,
- 338, 0, 0, 0, 0, 209, 210, 211, 212, 213,
- 214, 215, 0, 420, 199, 200, 201, 202, 222, 223,
- 0, 224, 0, 0, 206, 225, 226, 199, 200, 201,
- 202, 222, 223, 0, 224, 0, 0, 206, 225, 226,
- 199, 200, 201, 202, 222, 223, 0, 224, 0, 0,
- 206, 225, 226, 0, 0, 0, 0, 0, 0, 0,
- 0, 209, 210, 211, 212, 213, 214, 215, 0, 423,
- 0, 0, 0, 0, 209, 210, 211, 212, 213, 214,
- 215, 0, 479, 0, 0, 0, 0, 209, 210, 211,
- 212, 213, 214, 215, 0, 486, 199, 200, 201, 202,
- 222, 223, 0, 224, 0, 0, 206, 225, 226, 199,
- 200, 201, 202, 222, 223, 0, 224, 0, 0, 206,
- 225, 226, 0, 0, 0, 311, 312, 313, 314, 315,
- 316, 0, 317, 279, 280, 318, 319, 320, 0, 0,
- 0, 0, 0, 209, 210, 211, 212, 213, 214, 215,
- 0, 0, 0, 0, 0, 0, 209, 210, 211, 212,
- 213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 321, 322, 323, 324, 325, 326, 327, 199,
- 200, 201, 202, 0, 0, 0, 224, 0, 0, 206,
- 225, 226, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 51, 52, 53, 54, 55, 56, 158, 58, 59,
+ 60, 61, 62, 104, 105, 106, 107, 0, 1, 0,
+ 108, 87, 2, 3, 4, 5, 6, 88, 0, 89,
+ 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
+ 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
+ 101, 102, 103, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 192, 193, 194, 195, 196, 0,
+ 51, 197, 53, 54, 55, 198, 57, 58, 59, 60,
+ 61, 62, 104, 105, 106, 107, 0, 1, 0, 108,
+ 87, 2, 3, 4, 5, 6, 88, 0, 89, 8,
+ 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
+ 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
+ 102, 103, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 254, 57, 58, 59, 60, 61,
+ 62, 104, 105, 106, 107, 0, 1, 0, 108, 87,
+ 117, 118, 4, 5, 6, 88, 0, 89, 8, 90,
+ 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
+ 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
+ 103, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 124, 39, 125, 41, 126, 43,
+ 127, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 104, 105, 106, 107, 1, 0, 0, 108, 2, 3,
+ 4, 5, 6, 0, 0, 7, 8, 9, 10, 0,
+ 12, 13, 0, 15, 16, 17, 18, 19, 96, 21,
+ 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 104, 64,
+ 0, 0, 0, 0, 0, 66, 218, 219, 220, 221,
+ 241, 242, 0, 243, 0, 0, 225, 244, 245, 218,
+ 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
+ 244, 245, 218, 219, 220, 221, 241, 242, 0, 243,
+ 0, 0, 225, 244, 245, 0, 0, 0, 0, 0,
+ 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
+ 0, 357, 0, 0, 0, 0, 228, 229, 230, 231,
+ 232, 233, 234, 0, 439, 0, 0, 0, 0, 228,
+ 229, 230, 231, 232, 233, 234, 0, 442, 218, 219,
+ 220, 221, 241, 242, 0, 243, 0, 0, 225, 244,
+ 245, 218, 219, 220, 221, 241, 242, 0, 243, 0,
+ 0, 225, 244, 245, 0, 0, 0, 0, 0, 0,
+ 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
+ 225, 244, 245, 0, 0, 228, 229, 230, 231, 232,
+ 233, 234, 0, 498, 0, 0, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 505, 298, 299, 0,
+ 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
+ 231, 232, 233, 234, 218, 219, 220, 221, 241, 242,
+ 0, 243, 0, 0, 225, 244, 245, 330, 331, 332,
+ 333, 334, 335, 0, 336, 0, 0, 337, 338, 339,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 209, 210, 211, 212,
- 213, 214, 215
+ 0, 228, 229, 230, 231, 232, 233, 234, 0, 0,
+ 0, 0, 0, 0, 340, 341, 342, 343, 344, 345,
+ 346
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 65, 0, 29, 216, 329, 31, 331, 9,
- 28, 84, 129, 49, 14, 338, 34, 34, 98, 136,
- 100, 21, 352, 23, 97, 19, 26, 44, 69, 29,
- 147, 0, 355, 27, 28, 76, 69, 69, 63, 69,
- 23, 158, 34, 76, 76, 28, 76, 49, 97, 166,
- 42, 43, 44, 45, 46, 47, 31, 49, 94, 95,
- 52, 53, 54, 63, 64, 65, 28, 98, 68, 28,
- 281, 68, 34, 97, 69, 34, 98, 10, 11, 73,
- 102, 76, 412, 99, 414, 97, 19, 103, 99, 419,
- 92, 93, 94, 95, 27, 28, 426, 89, 90, 91,
- 92, 93, 94, 95, 28, 97, 129, 97, 133, 109,
- 34, 36, 37, 136, 114, 97, 98, 328, 97, 55,
- 97, 57, 445, 59, 147, 61, 231, 232, 153, 62,
- 230, 231, 232, 133, 97, 158, 33, 137, 468, 139,
- 73, 97, 465, 166, 97, 97, 476, 97, 97, 472,
- 480, 97, 97, 153, 28, 28, 479, 487, 98, 103,
- 490, 161, 15, 486, 103, 102, 26, 102, 97, 102,
- 103, 49, 44, 28, 52, 97, 26, 110, 16, 100,
- 113, 34, 97, 246, 97, 97, 97, 28, 28, 42,
- 43, 44, 45, 46, 47, 28, 49, 28, 131, 52,
- 53, 54, 103, 97, 28, 138, 71, 97, 34, 97,
- 230, 231, 232, 91, 92, 93, 94, 95, 97, 71,
- 97, 221, 97, 68, 221, 422, 97, 97, 28, 439,
- 230, 231, 232, 278, 21, 287, 89, 90, 91, 92,
- 93, 94, 95, 166, 195, -1, 246, 247, -1, 42,
+ 0, 21, 29, 66, 9, 235, 348, 0, 350, 14,
+ 49, 28, 31, 52, 84, 357, 21, 34, 23, 49,
+ 19, 26, 99, 34, 29, 31, 103, 97, 27, 28,
+ 371, 69, 374, 44, 69, 69, 49, 64, 76, 28,
+ 69, 76, 76, 28, 69, 34, 98, 76, 100, 34,
+ 148, 76, 91, 92, 93, 94, 95, 155, 0, 64,
+ 65, 28, 92, 93, 94, 95, 66, 34, 166, 69,
+ 300, 10, 11, 36, 37, 74, 69, 148, 97, 177,
+ 19, 94, 95, 97, 155, 97, 23, 185, 27, 28,
+ 431, 28, 433, 33, 98, 166, 98, 438, 102, 387,
+ 388, 389, 390, 99, 445, 393, 177, 55, 28, 57,
+ 97, 59, 28, 61, 185, 97, 98, 347, 249, 250,
+ 251, 97, 464, 128, 63, 152, 250, 251, 133, 97,
+ 103, 97, 97, 97, 103, 74, 97, 97, 97, 97,
+ 97, 26, 484, 98, 97, 172, 487, 152, 102, 491,
+ 102, 156, 44, 158, 495, 28, 498, 26, 499, 97,
+ 16, 28, 97, 505, 100, 506, 97, 172, 509, 97,
+ 97, 28, 97, 28, 28, 180, 15, 103, 28, 97,
+ 71, 34, 121, 122, 97, 97, 97, 71, 97, 97,
+ 129, 97, 69, 132, 441, 34, 28, 297, 458, 21,
+ 306, 185, 265, 42, 43, 44, 45, 46, 47, -1,
+ 49, 150, -1, 52, 53, 54, 214, -1, 157, -1,
+ -1, -1, -1, -1, -1, 42, 43, 44, 45, 249,
+ 250, 251, 49, -1, -1, 52, 53, 54, -1, -1,
+ 240, -1, -1, -1, 249, 250, 251, 240, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, -1, -1, -1, -1, 265, 266, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
+ 229, 230, 231, 232, 233, 234, -1, -1, -1, -1,
+ -1, 306, 241, 242, 243, 244, 245, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
+ -1, -1, 261, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 348, -1,
+ 350, -1, -1, -1, -1, -1, 361, 357, -1, -1,
+ -1, -1, -1, 302, 303, -1, 305, -1, -1, -1,
+ 309, 371, 311, -1, 374, 117, 118, 119, 120, -1,
+ -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
+ -1, 330, 331, 332, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, -1, -1,
+ -1, -1, -1, 440, -1, -1, -1, 356, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 431, 432, 433, -1, 440, 375, -1, 438, 432,
+ -1, -1, -1, -1, -1, 445, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 462, 34, 464, -1, -1, 472, -1, 462,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 484, -1, -1, 487, -1, -1,
+ -1, 491, -1, -1, -1, 495, 501, -1, 498, 499,
+ -1, -1, -1, -1, -1, 505, 506, -1, -1, 509,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, -1, 467, -1,
+ -1, 273, 274, 275, 276, 277, 278, 279, 280, -1,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, 488,
+ 33, 52, 53, 54, 296, 297, 298, 299, -1, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, -1, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, -1, -1, -1, -1, 287, -1, 222,
- 223, 224, 225, 226, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, 238, 239, 100, -1, 242,
- 368, 369, 370, 371, -1, -1, 374, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 329,
- -1, 331, -1, -1, -1, -1, -1, -1, 338, -1,
- -1, -1, 342, -1, -1, -1, -1, -1, -1, -1,
- 283, 284, 352, 286, -1, 355, -1, 290, -1, 292,
- 98, 99, 100, 101, -1, -1, 104, 105, 106, 107,
- 108, -1, -1, 111, 112, -1, -1, -1, 311, 312,
- 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 326, 327, -1, 421, -1, -1, -1,
- -1, -1, -1, -1, 337, -1, -1, -1, -1, -1,
- -1, -1, 412, 413, 414, -1, 413, -1, -1, 419,
- -1, 421, -1, 356, -1, -1, 426, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, 443, -1, 445, 443, 42, 43, 44,
- 45, 46, 47, 453, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, -1, 465, -1, -1, 468, -1,
- -1, -1, 472, -1, -1, -1, 476, -1, -1, 479,
- 480, -1, 482, -1, -1, -1, 486, 487, -1, -1,
- 490, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, 448, 254, 255, 256, 257,
- 258, 259, 260, 261, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 469, -1, -1, 277,
- 278, 279, 280, -1, -1, -1, -1, -1, 89, 90,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, 89, 90,
91, 92, 93, 94, 95, -1, -1, 98, -1, 100,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, 358, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
+ 100, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 386, -1, -1, -1, -1, 391,
+ 392, -1, 394, 395, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, 98, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 447, 448, 449, 450, -1,
+ 452, 453, 454, 455, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 339, -1, 7, 8, 9, -1, 11, 12, 13,
- 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
- 24, -1, 26, 27, 28, 29, -1, 31, 32, 367,
- 34, -1, 36, 37, 372, 373, -1, 375, 376, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
- -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
- 428, 429, 430, 431, -1, 433, 434, 435, 436, -1,
- 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, 463, 31, 32, -1, 34,
- -1, 36, 37, -1, -1, -1, -1, 475, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
- 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, -1, -1, -1, 42, 43, 44, 45,
+ 482, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 494, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
+ 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ -1, 103, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 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, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, 88, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 98, 99, -1, 101, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
-1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
-1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
- 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
- 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
- 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- -1, -1, -1, 42, 43, 44, 45, 46, 47, 48,
+ 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 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, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
- 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
- -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
+ 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 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, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
+ 82, 83, 84, -1, -1, -1, 88, 89, 90, 91,
92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
- 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, -1, -1, -1, 42, 43, 44,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 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, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, 98, 99, -1, 101, 5, 6, 7,
- 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
- -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
- 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 95, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, -1,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, -1,
- -1, -1, 23, 24, -1, 26, 27, 28, 29, -1,
- 31, 32, -1, 34, -1, 36, 37, -1, -1, -1,
- -1, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, 100, 101, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, 100,
- 101, 5, 6, 7, 8, 9, -1, 11, 12, 13,
- 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
- 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
- 34, -1, 36, 37, -1, -1, -1, -1, -1, -1,
+ 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
-1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
- -1, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
-1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
- 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
- -1, -1, 19, -1, -1, -1, 23, 24, -1, 26,
- 27, 28, 29, -1, 31, 32, -1, 34, -1, 36,
- 37, -1, -1, -1, -1, -1, -1, -1, -1, 46,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, -1, -1, -1, -1, -1,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
-1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
-1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
- -1, 11, 12, 13, 14, 15, -1, -1, -1, 19,
- -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
- -1, 31, 32, -1, 34, -1, 36, 37, -1, -1,
- -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, -1, -1, -1, -1, -1, -1, 88, -1,
+ 80, 81, 82, 83, 84, -1, -1, -1, 88, -1,
-1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
- -1, 101, 5, 6, 7, 8, 9, -1, 11, 12,
- 13, 14, 15, -1, -1, -1, 19, -1, -1, -1,
- 23, 24, -1, 26, 27, 28, 29, -1, 31, 32,
- -1, 34, -1, 36, 37, -1, -1, -1, -1, -1,
+ -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
-1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
- -1, -1, -1, -1, -1, 88, -1, -1, -1, 92,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, 88, -1, -1, -1, 92,
93, -1, -1, -1, -1, -1, 99, -1, 101, 5,
- 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
-1, -1, 88, -1, -1, -1, 92, 93, -1, -1,
-1, -1, -1, 99, -1, 101, 5, 6, 7, 8,
- 9, -1, 11, 12, 13, 14, 15, -1, -1, -1,
- 19, -1, -1, -1, 23, 24, -1, 26, 27, 28,
- 29, -1, 31, 32, -1, 34, -1, 36, 37, -1,
- -1, -1, -1, -1, -1, -1, -1, 46, 47, 48,
+ 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, -1, -1, 48,
49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, -1, -1, -1, -1, -1, -1, 88,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
-1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
- 99, -1, 101, 5, 6, 7, 8, 9, -1, 11,
- 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
- -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
+ 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
+ 82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
- 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, -1, -1, -1, 23, 24,
- -1, 26, 27, 28, 29, -1, 31, 32, -1, 34,
- -1, 36, 37, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, -1, -1, 48, -1, 50, 51, -1, -1, -1,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
- 8, 9, -1, 11, 12, 13, 14, 15, -1, -1,
- -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
- 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
- -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 7, 99, -1, 101, 11, 12, 13,
+ 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, 16, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 87, 88, -1, -1, -1, -1, -1,
+ 7, -1, -1, 97, 11, 12, 13, 14, 15, -1,
+ -1, 18, 19, 20, 21, 22, 23, 24, -1, 26,
27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
+ 7, 88, -1, 10, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, 16,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
@@ -1599,166 +1653,137 @@ static const yytype_int16 yycheck[] =
37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, -1, 76,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 87, 88, -1, -1, -1, -1, -1, 7, -1, -1,
- 97, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- 10, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 85, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, 86, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, 22, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, 7, 88, -1,
- -1, 11, 12, 13, 14, 15, -1, 97, 18, 19,
- 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, 7, -1, -1, 88, 11,
- 12, 13, 14, 15, -1, -1, -1, 19, -1, -1,
- -1, 23, 24, -1, 26, 27, 28, 29, -1, 31,
- 32, -1, 34, -1, 36, 37, -1, -1, -1, -1,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- -1, -1, -1, 7, -1, -1, 88, 11, 12, 13,
- 14, 15, -1, -1, -1, 19, -1, -1, -1, 23,
- 24, -1, 26, 27, 28, 29, -1, 31, 32, -1,
- 34, -1, 36, 37, -1, -1, -1, -1, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
- -1, 7, -1, -1, 88, 11, 12, 13, 14, 15,
- -1, -1, -1, 19, -1, -1, -1, 23, 24, -1,
- 26, 27, 28, 29, -1, 31, 32, -1, 34, -1,
- 36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ -1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
+ 97, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, -1,
- 76, 77, 78, 79, 80, 81, -1, -1, -1, 7,
- -1, -1, 88, 11, 12, 13, 14, 15, -1, -1,
- -1, 19, -1, -1, -1, 23, 24, -1, 26, 27,
- 28, 29, -1, 31, 32, -1, 34, -1, 36, 37,
- -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ 7, -1, 88, 10, 11, 12, 13, 14, 15, 16,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 7,
+ -1, 88, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, -1, 76, 77,
- 78, 79, 80, 81, -1, -1, -1, 7, -1, -1,
- 88, 11, 12, 13, 14, 15, -1, -1, -1, 19,
- -1, -1, -1, 23, 24, -1, 26, 27, 28, 29,
- -1, 31, 32, -1, 34, -1, 36, 37, -1, -1,
- -1, -1, -1, -1, -1, -1, 46, 47, 48, 49,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, 7, -1,
+ 88, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 7, -1, 88,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
- 80, 81, 42, 43, 44, 45, 46, 47, 88, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, 98, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, 97, 42, 43, 44, 45,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
+ 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 7, -1, -1, 88, 11, 12,
+ 13, 14, 15, -1, -1, 18, 19, 20, 21, -1,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, -1, 88, 42, 43, 44, 45,
46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, 79, 80, 52, 53, 54, -1, -1,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
-1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
- 43, 44, 45, -1, -1, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, 79, 80, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1770,51 +1795,53 @@ static const yytype_uint8 yystos[] =
31, 32, 34, 35, 36, 37, 38, 39, 40, 41,
46, 47, 48, 49, 50, 51, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 69, 70, 71, 72, 73, 74, 76, 77, 78,
- 79, 80, 81, 82, 83, 88, 97, 105, 106, 107,
- 108, 109, 114, 116, 119, 120, 121, 124, 126, 127,
- 128, 129, 130, 131, 31, 97, 27, 31, 32, 81,
- 88, 116, 117, 118, 5, 6, 8, 9, 11, 12,
- 13, 14, 19, 26, 48, 55, 57, 59, 61, 75,
- 78, 92, 93, 99, 101, 116, 122, 123, 135, 136,
- 139, 140, 141, 144, 145, 146, 149, 152, 153, 154,
- 156, 99, 154, 116, 31, 122, 154, 36, 37, 75,
- 116, 136, 138, 144, 116, 116, 122, 154, 122, 123,
- 117, 154, 117, 116, 120, 0, 107, 122, 154, 97,
- 97, 98, 153, 153, 153, 153, 154, 154, 153, 153,
- 153, 153, 153, 63, 64, 65, 66, 67, 70, 74,
- 116, 154, 153, 153, 100, 154, 8, 9, 103, 116,
- 150, 151, 154, 157, 158, 99, 97, 97, 28, 42,
- 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
- 90, 91, 92, 93, 94, 95, 98, 135, 155, 156,
- 154, 33, 46, 47, 49, 53, 54, 117, 97, 97,
- 24, 50, 51, 116, 154, 74, 34, 44, 125, 33,
- 97, 97, 36, 97, 97, 97, 34, 97, 97, 117,
- 97, 116, 28, 155, 28, 34, 28, 34, 28, 34,
- 28, 34, 69, 76, 69, 76, 69, 76, 69, 76,
- 69, 76, 55, 57, 59, 61, 147, 28, 28, 79,
- 80, 98, 100, 103, 103, 102, 103, 98, 102, 102,
- 98, 157, 26, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 158, 42, 43, 44, 45, 46, 47, 49, 52, 53,
- 54, 89, 90, 91, 92, 93, 94, 95, 98, 97,
- 119, 97, 136, 137, 139, 137, 137, 44, 97, 28,
- 154, 154, 84, 97, 110, 111, 112, 113, 154, 120,
- 97, 119, 132, 133, 134, 97, 26, 153, 153, 153,
- 153, 153, 153, 153, 153, 23, 28, 148, 56, 58,
- 60, 62, 71, 72, 73, 77, 78, 142, 143, 153,
- 142, 153, 153, 158, 154, 154, 154, 8, 9, 116,
- 151, 154, 100, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 158, 132, 16, 132, 97, 97, 97, 154, 132,
- 97, 116, 97, 97, 87, 134, 132, 154, 28, 28,
- 28, 28, 153, 148, 148, 148, 148, 153, 153, 148,
- 153, 153, 100, 16, 85, 97, 119, 15, 34, 86,
- 117, 113, 97, 10, 153, 153, 153, 153, 153, 153,
- 153, 153, 28, 71, 143, 97, 119, 97, 132, 34,
- 154, 97, 97, 115, 116, 71, 132, 85, 154, 97,
- 132, 97, 98, 153, 85, 97, 97, 132, 116, 97,
- 132, 86, 86, 97, 97
+ 67, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 88, 97, 105, 106,
+ 107, 108, 109, 114, 116, 120, 121, 122, 125, 127,
+ 128, 129, 130, 131, 132, 31, 97, 10, 16, 18,
+ 20, 21, 22, 25, 27, 30, 31, 32, 33, 35,
+ 38, 39, 40, 41, 81, 82, 83, 84, 88, 116,
+ 117, 118, 119, 5, 6, 8, 9, 11, 12, 13,
+ 14, 19, 26, 48, 55, 57, 59, 61, 75, 78,
+ 92, 93, 99, 101, 117, 123, 124, 136, 137, 140,
+ 141, 142, 145, 146, 147, 150, 153, 154, 155, 157,
+ 99, 155, 117, 31, 123, 155, 36, 37, 75, 117,
+ 137, 139, 145, 117, 117, 123, 155, 123, 124, 118,
+ 155, 118, 117, 121, 0, 107, 123, 155, 97, 97,
+ 98, 154, 154, 154, 154, 155, 155, 154, 154, 154,
+ 154, 154, 63, 64, 65, 66, 67, 70, 74, 117,
+ 155, 154, 154, 100, 155, 8, 9, 103, 117, 151,
+ 152, 155, 158, 159, 99, 97, 97, 28, 42, 43,
+ 44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
+ 91, 92, 93, 94, 95, 98, 136, 156, 157, 155,
+ 33, 46, 47, 49, 53, 54, 118, 97, 97, 24,
+ 50, 51, 117, 155, 74, 34, 44, 126, 33, 97,
+ 97, 36, 97, 97, 97, 34, 97, 97, 118, 97,
+ 117, 28, 156, 28, 34, 28, 34, 28, 34, 28,
+ 34, 69, 76, 69, 76, 69, 76, 69, 76, 69,
+ 76, 55, 57, 59, 61, 148, 28, 28, 79, 80,
+ 98, 100, 103, 103, 102, 103, 98, 102, 102, 98,
+ 158, 26, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 159,
+ 42, 43, 44, 45, 46, 47, 49, 52, 53, 54,
+ 89, 90, 91, 92, 93, 94, 95, 98, 97, 120,
+ 97, 137, 138, 140, 138, 138, 44, 97, 28, 155,
+ 155, 84, 97, 110, 111, 112, 113, 155, 121, 97,
+ 120, 133, 134, 135, 97, 26, 154, 154, 154, 154,
+ 154, 154, 154, 154, 23, 28, 149, 56, 58, 60,
+ 62, 71, 72, 73, 77, 78, 143, 144, 154, 143,
+ 154, 154, 159, 155, 155, 155, 8, 9, 117, 152,
+ 155, 100, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 159, 133, 16, 133, 97, 97, 97, 155, 133, 97,
+ 117, 97, 97, 87, 135, 133, 155, 28, 28, 28,
+ 28, 154, 149, 149, 149, 149, 154, 154, 149, 154,
+ 154, 100, 16, 85, 97, 120, 15, 34, 86, 118,
+ 113, 97, 10, 154, 154, 154, 154, 154, 154, 154,
+ 154, 28, 71, 144, 97, 120, 97, 133, 34, 155,
+ 97, 97, 115, 117, 71, 133, 85, 155, 97, 133,
+ 97, 98, 154, 85, 97, 97, 133, 117, 97, 133,
+ 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1827,25 +1854,27 @@ static const yytype_uint8 yyr1[] =
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 117, 117, 118, 118,
- 119, 119, 119, 119, 119, 119, 120, 120, 120, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 122, 122, 122, 122, 122, 122, 122, 123, 123,
- 123, 123, 123, 124, 124, 124, 124, 125, 125, 126,
- 126, 126, 127, 127, 128, 128, 128, 128, 129, 129,
- 129, 130, 130, 131, 132, 132, 133, 133, 134, 134,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 136, 137, 137, 138, 138, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 140, 140, 141,
- 141, 141, 141, 142, 142, 142, 142, 142, 143, 144,
- 144, 144, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 146, 146, 146, 146, 146, 147, 147, 147,
- 147, 148, 148, 149, 149, 149, 150, 150, 151, 151,
- 151, 152, 152, 153, 153, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 155, 155, 155, 155, 155, 155,
+ 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 118, 118, 119, 119, 120,
+ 120, 120, 120, 120, 120, 121, 121, 121, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
+ 124, 124, 125, 125, 125, 125, 126, 126, 127, 127,
+ 127, 128, 128, 129, 129, 129, 129, 130, 130, 130,
+ 131, 131, 132, 133, 133, 134, 134, 135, 135, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 137, 138, 138, 139, 139, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 141, 141, 142, 142,
+ 142, 142, 143, 143, 143, 143, 143, 144, 145, 145,
+ 145, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 147, 147, 147, 147, 147, 148, 148, 148, 148,
+ 149, 149, 150, 150, 150, 151, 151, 152, 152, 152,
+ 153, 153, 154, 154, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 156, 156, 157, 157, 158, 158
+ 155, 155, 155, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 157, 157, 158, 158, 159, 159
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1858,25 +1887,27 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 1, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
- 3, 3, 3, 3, 3, 3, 5, 3, 3, 2,
- 2, 0, 1, 3, 2, 4, 2, 5, 2, 2,
- 5, 4, 3, 5, 5, 5, 5, 1, 1, 3,
- 3, 3, 4, 7, 6, 9, 7, 10, 7, 11,
- 12, 4, 6, 4, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 2, 4, 3, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 4,
- 6, 4, 6, 4, 6, 4, 6, 2, 2, 1,
- 1, 1, 5, 1, 1, 5, 2, 2, 2, 2,
- 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 6, 6, 6, 6, 6, 1, 1, 1,
- 1, 1, 1, 3, 3, 3, 1, 3, 3, 3,
- 3, 2, 2, 1, 1, 1, 1, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 1, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 3, 3, 3, 3, 3, 5, 3, 3, 2, 2,
+ 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
+ 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
+ 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
+ 4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
+ 1, 1, 1, 2, 4, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 4, 6,
+ 4, 6, 4, 6, 4, 6, 2, 2, 1, 1,
+ 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
+ 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
+ 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
+ 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
+ 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2150,31 +2181,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2154 "engines/director/lingo/lingo-gr.cpp"
+#line 2185 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2160 "engines/director/lingo/lingo-gr.cpp"
+#line 2191 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2166 "engines/director/lingo/lingo-gr.cpp"
+#line 2197 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2172 "engines/director/lingo/lingo-gr.cpp"
+#line 2203 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case YYSYMBOL_CMDID: /* CMDID */
+#line 189 "engines/director/lingo/lingo-gr.y"
+ { delete ((*yyvaluep).s); }
+#line 2209 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2215 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2442,7 +2479,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2446 "engines/director/lingo/lingo-gr.cpp"
+#line 2483 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2453,7 +2490,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2457 "engines/director/lingo/lingo-gr.cpp"
+#line 2494 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2463,37 +2500,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2467 "engines/director/lingo/lingo-gr.cpp"
+#line 2504 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2510 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2479 "engines/director/lingo/lingo-gr.cpp"
+#line 2516 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2485 "engines/director/lingo/lingo-gr.cpp"
+#line 2522 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2534 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2504,7 +2541,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2545 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2514,13 +2551,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2518 "engines/director/lingo/lingo-gr.cpp"
+#line 2555 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2524 "engines/director/lingo/lingo-gr.cpp"
+#line 2561 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2529,1330 +2566,1438 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2540 "engines/director/lingo/lingo-gr.cpp"
+#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
- case 25: /* ID: tABBREVIATED */
-#line 290 "engines/director/lingo/lingo-gr.y"
+ case 25: /* CMDID: tABBREVIATED */
+#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2558 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
break;
- case 26: /* ID: tABBREV */
-#line 291 "engines/director/lingo/lingo-gr.y"
+ case 26: /* CMDID: tABBREV */
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2564 "engines/director/lingo/lingo-gr.cpp"
+#line 2601 "engines/director/lingo/lingo-gr.cpp"
break;
- case 27: /* ID: tABBR */
-#line 292 "engines/director/lingo/lingo-gr.y"
+ case 27: /* CMDID: tABBR */
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2607 "engines/director/lingo/lingo-gr.cpp"
break;
- case 28: /* ID: tAFTER */
-#line 293 "engines/director/lingo/lingo-gr.y"
+ case 28: /* CMDID: tAFTER */
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2613 "engines/director/lingo/lingo-gr.cpp"
break;
- case 29: /* ID: tAND */
-#line 294 "engines/director/lingo/lingo-gr.y"
+ case 29: /* CMDID: tAND */
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2582 "engines/director/lingo/lingo-gr.cpp"
+#line 2619 "engines/director/lingo/lingo-gr.cpp"
break;
- case 30: /* ID: tBEFORE */
-#line 295 "engines/director/lingo/lingo-gr.y"
+ case 30: /* CMDID: tBEFORE */
+#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 31: /* ID: tCAST */
-#line 296 "engines/director/lingo/lingo-gr.y"
+ case 31: /* CMDID: tCAST */
+#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2594 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 32: /* ID: tCHAR */
-#line 297 "engines/director/lingo/lingo-gr.y"
+ case 32: /* CMDID: tCHAR */
+#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2600 "engines/director/lingo/lingo-gr.cpp"
+#line 2637 "engines/director/lingo/lingo-gr.cpp"
break;
- case 33: /* ID: tCHARS */
-#line 298 "engines/director/lingo/lingo-gr.y"
+ case 33: /* CMDID: tCHARS */
+#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2606 "engines/director/lingo/lingo-gr.cpp"
+#line 2643 "engines/director/lingo/lingo-gr.cpp"
break;
- case 34: /* ID: tCONTAINS */
-#line 299 "engines/director/lingo/lingo-gr.y"
+ case 34: /* CMDID: tCONTAINS */
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2612 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
- case 35: /* ID: tDATE */
-#line 300 "engines/director/lingo/lingo-gr.y"
+ case 35: /* CMDID: tDATE */
+#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2618 "engines/director/lingo/lingo-gr.cpp"
+#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
- case 36: /* ID: tDOWN */
-#line 301 "engines/director/lingo/lingo-gr.y"
+ case 36: /* CMDID: tDOWN */
+#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2624 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
break;
- case 37: /* ID: tFIELD */
-#line 306 "engines/director/lingo/lingo-gr.y"
+ case 37: /* CMDID: tFIELD */
+#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
- case 38: /* ID: tFRAME */
-#line 307 "engines/director/lingo/lingo-gr.y"
+ case 38: /* CMDID: tFRAME */
+#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
- case 39: /* ID: tIN */
-#line 311 "engines/director/lingo/lingo-gr.y"
+ case 39: /* CMDID: tIN */
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2642 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
break;
- case 40: /* ID: tINTERSECTS */
-#line 313 "engines/director/lingo/lingo-gr.y"
+ case 40: /* CMDID: tINTERSECTS */
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
- case 41: /* ID: tINTO */
-#line 314 "engines/director/lingo/lingo-gr.y"
+ case 41: /* CMDID: tINTO */
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2691 "engines/director/lingo/lingo-gr.cpp"
break;
- case 42: /* ID: tITEM */
-#line 315 "engines/director/lingo/lingo-gr.y"
+ case 42: /* CMDID: tITEM */
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 2697 "engines/director/lingo/lingo-gr.cpp"
break;
- case 43: /* ID: tITEMS */
-#line 316 "engines/director/lingo/lingo-gr.y"
+ case 43: /* CMDID: tITEMS */
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2666 "engines/director/lingo/lingo-gr.cpp"
+#line 2703 "engines/director/lingo/lingo-gr.cpp"
break;
- case 44: /* ID: tLAST */
-#line 317 "engines/director/lingo/lingo-gr.y"
+ case 44: /* CMDID: tLAST */
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2672 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
break;
- case 45: /* ID: tLINE */
-#line 318 "engines/director/lingo/lingo-gr.y"
+ case 45: /* CMDID: tLINE */
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2678 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
break;
- case 46: /* ID: tLINES */
-#line 319 "engines/director/lingo/lingo-gr.y"
+ case 46: /* CMDID: tLINES */
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2684 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
break;
- case 47: /* ID: tLONG */
-#line 320 "engines/director/lingo/lingo-gr.y"
+ case 47: /* CMDID: tLONG */
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2690 "engines/director/lingo/lingo-gr.cpp"
+#line 2727 "engines/director/lingo/lingo-gr.cpp"
break;
- case 48: /* ID: tMENU */
-#line 322 "engines/director/lingo/lingo-gr.y"
+ case 48: /* CMDID: tMENU */
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2696 "engines/director/lingo/lingo-gr.cpp"
+#line 2733 "engines/director/lingo/lingo-gr.cpp"
break;
- case 49: /* ID: tMENUITEM */
-#line 323 "engines/director/lingo/lingo-gr.y"
+ case 49: /* CMDID: tMENUITEM */
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2702 "engines/director/lingo/lingo-gr.cpp"
+#line 2739 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* ID: tMENUITEMS */
-#line 324 "engines/director/lingo/lingo-gr.y"
+ case 50: /* CMDID: tMENUITEMS */
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2708 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* ID: tMOD */
-#line 326 "engines/director/lingo/lingo-gr.y"
+ case 51: /* CMDID: tMOD */
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2714 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* ID: tMOVIE */
-#line 327 "engines/director/lingo/lingo-gr.y"
+ case 52: /* CMDID: tMOVIE */
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2720 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ID: tNEXT */
-#line 328 "engines/director/lingo/lingo-gr.y"
+ case 53: /* CMDID: tNEXT */
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2726 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ID: tNOT */
-#line 329 "engines/director/lingo/lingo-gr.y"
+ case 54: /* CMDID: tNOT */
+#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2732 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
break;
- case 55: /* ID: tNUMBER */
-#line 330 "engines/director/lingo/lingo-gr.y"
+ case 55: /* CMDID: tNUMBER */
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
break;
- case 56: /* ID: tOF */
-#line 331 "engines/director/lingo/lingo-gr.y"
+ case 56: /* CMDID: tOF */
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2744 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* ID: tOR */
-#line 334 "engines/director/lingo/lingo-gr.y"
+ case 57: /* CMDID: tOR */
+#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2750 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* ID: tPREVIOUS */
-#line 336 "engines/director/lingo/lingo-gr.y"
+ case 58: /* CMDID: tPREVIOUS */
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2756 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* ID: tREPEAT */
-#line 339 "engines/director/lingo/lingo-gr.y"
+ case 59: /* CMDID: tREPEAT */
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* ID: tSCRIPT */
-#line 340 "engines/director/lingo/lingo-gr.y"
+ case 60: /* CMDID: tSCRIPT */
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* ID: tASSERTERROR */
-#line 341 "engines/director/lingo/lingo-gr.y"
+ case 61: /* CMDID: tASSERTERROR */
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* ID: tSET */
-#line 342 "engines/director/lingo/lingo-gr.y"
+ case 62: /* CMDID: tSET */
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* ID: tSHORT */
-#line 343 "engines/director/lingo/lingo-gr.y"
+ case 63: /* CMDID: tSHORT */
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
break;
- case 64: /* ID: tSOUND */
-#line 344 "engines/director/lingo/lingo-gr.y"
+ case 64: /* CMDID: tSOUND */
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2792 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
break;
- case 65: /* ID: tSPRITE */
-#line 345 "engines/director/lingo/lingo-gr.y"
+ case 65: /* CMDID: tSPRITE */
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2798 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
break;
- case 66: /* ID: tSTARTS */
-#line 346 "engines/director/lingo/lingo-gr.y"
+ case 66: /* CMDID: tSTARTS */
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
break;
- case 67: /* ID: tTELL */
-#line 347 "engines/director/lingo/lingo-gr.y"
+ case 67: /* CMDID: tTELL */
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
break;
- case 68: /* ID: tTIME */
-#line 350 "engines/director/lingo/lingo-gr.y"
+ case 68: /* CMDID: tTHE */
+#line 335 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("the"); }
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 69: /* CMDID: tTIME */
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
break;
- case 69: /* ID: tTO */
-#line 351 "engines/director/lingo/lingo-gr.y"
+ case 70: /* CMDID: tTO */
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2822 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
break;
- case 70: /* ID: tWHILE */
-#line 353 "engines/director/lingo/lingo-gr.y"
+ case 71: /* CMDID: tWHILE */
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2828 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* ID: tWINDOW */
-#line 354 "engines/director/lingo/lingo-gr.y"
+ case 72: /* CMDID: tWINDOW */
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2834 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* ID: tWITH */
-#line 355 "engines/director/lingo/lingo-gr.y"
+ case 73: /* CMDID: tWITH */
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2840 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* ID: tWITHIN */
-#line 356 "engines/director/lingo/lingo-gr.y"
+ case 74: /* CMDID: tWITHIN */
+#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* ID: tWORD */
-#line 357 "engines/director/lingo/lingo-gr.y"
+ case 75: /* CMDID: tWORD */
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2852 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* ID: tWORDS */
-#line 358 "engines/director/lingo/lingo-gr.y"
+ case 76: /* CMDID: tWORDS */
+#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2858 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 78: /* ID: tELSE */
+#line 347 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("else"); }
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 79: /* ID: tENDCLAUSE */
+#line 348 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("end"); }
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 80: /* ID: tEXIT */
+#line 349 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("exit"); }
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 81: /* ID: tFACTORY */
+#line 350 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("factory"); }
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 82: /* ID: tGLOBAL */
+#line 351 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("global"); }
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* idlist: %empty */
+ case 83: /* ID: tGO */
+#line 352 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("go"); }
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 84: /* ID: tIF */
+#line 353 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("if"); }
+#line 2943 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 85: /* ID: tINSTANCE */
+#line 354 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("instance"); }
+#line 2949 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 86: /* ID: tMACRO */
+#line 355 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("macro"); }
+#line 2955 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 87: /* ID: tMETHOD */
+#line 356 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("method"); }
+#line 2961 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 88: /* ID: tON */
+#line 357 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("on"); }
+#line 2967 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 89: /* ID: tOPEN */
+#line 358 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("open"); }
+#line 2973 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 90: /* ID: tPLAY */
+#line 359 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("play"); }
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 91: /* ID: tPROPERTY */
+#line 360 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("property"); }
+#line 2985 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("put"); }
+#line 2991 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 93: /* ID: tTHEN */
+#line 362 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("then"); }
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 94: /* ID: tWHEN */
+#line 363 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("when"); }
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 95: /* idlist: %empty */
+#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2864 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* nonemptyidlist: ID */
-#line 365 "engines/director/lingo/lingo-gr.y"
+ case 97: /* nonemptyidlist: ID */
+#line 370 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 3018 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 369 "engines/director/lingo/lingo-gr.y"
+ case 98: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 374 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 3026 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* proc: ID cmdargs '\n' */
-#line 392 "engines/director/lingo/lingo-gr.y"
+ case 108: /* proc: CMDID cmdargs '\n' */
+#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* proc: tPUT cmdargs '\n' */
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 109: /* proc: tPUT cmdargs '\n' */
+#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2893 "engines/director/lingo/lingo-gr.cpp"
+#line 3038 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* proc: tGO cmdargs '\n' */
-#line 394 "engines/director/lingo/lingo-gr.y"
+ case 110: /* proc: tGO cmdargs '\n' */
+#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2899 "engines/director/lingo/lingo-gr.cpp"
+#line 3044 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* proc: tGO frameargs '\n' */
-#line 395 "engines/director/lingo/lingo-gr.y"
+ case 111: /* proc: tGO frameargs '\n' */
+#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2905 "engines/director/lingo/lingo-gr.cpp"
+#line 3050 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* proc: tPLAY cmdargs '\n' */
-#line 396 "engines/director/lingo/lingo-gr.y"
+ case 112: /* proc: tPLAY cmdargs '\n' */
+#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2911 "engines/director/lingo/lingo-gr.cpp"
+#line 3056 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* proc: tPLAY frameargs '\n' */
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 113: /* proc: tPLAY frameargs '\n' */
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2917 "engines/director/lingo/lingo-gr.cpp"
+#line 3062 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* proc: tOPEN cmdargs '\n' */
-#line 398 "engines/director/lingo/lingo-gr.y"
+ case 114: /* proc: tOPEN cmdargs '\n' */
+#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 2923 "engines/director/lingo/lingo-gr.cpp"
+#line 3068 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* proc: tOPEN expr tWITH expr '\n' */
-#line 399 "engines/director/lingo/lingo-gr.y"
+ case 115: /* proc: tOPEN expr tWITH expr '\n' */
+#line 404 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 3078 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* proc: tNEXT tREPEAT '\n' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 116: /* proc: tNEXT tREPEAT '\n' */
+#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 3084 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* proc: tEXIT tREPEAT '\n' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 117: /* proc: tEXIT tREPEAT '\n' */
+#line 410 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 3090 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* proc: tEXIT '\n' */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 118: /* proc: tEXIT '\n' */
+#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 3096 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* proc: tASSERTERROR stmtoneliner */
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 119: /* proc: tASSERTERROR stmtoneliner */
+#line 412 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 3102 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* cmdargs: %empty */
-#line 410 "engines/director/lingo/lingo-gr.y"
+ case 120: /* cmdargs: %empty */
+#line 415 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2965 "engines/director/lingo/lingo-gr.cpp"
+#line 3110 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* cmdargs: expr */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 121: /* cmdargs: expr */
+#line 418 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 3120 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* cmdargs: expr ',' nonemptyexprlist */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 122: /* cmdargs: expr ',' nonemptyexprlist */
+#line 423 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2984 "engines/director/lingo/lingo-gr.cpp"
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* cmdargs: expr expr_nounarymath */
-#line 422 "engines/director/lingo/lingo-gr.y"
+ case 123: /* cmdargs: expr expr_nounarymath */
+#line 427 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 428 "engines/director/lingo/lingo-gr.y"
+ case 124: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 433 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3005 "engines/director/lingo/lingo-gr.cpp"
+#line 3150 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* cmdargs: '(' ')' */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 125: /* cmdargs: '(' ')' */
+#line 438 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 436 "engines/director/lingo/lingo-gr.y"
+ case 126: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 441 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3022 "engines/director/lingo/lingo-gr.cpp"
+#line 3167 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* frameargs: tFRAME expr */
-#line 446 "engines/director/lingo/lingo-gr.y"
+ case 127: /* frameargs: tFRAME expr */
+#line 451 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3177 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* frameargs: tMOVIE expr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 128: /* frameargs: tMOVIE expr */
+#line 456 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3188 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 129: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 462 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3054 "engines/director/lingo/lingo-gr.cpp"
+#line 3199 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* frameargs: expr tOF tMOVIE expr */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 130: /* frameargs: expr tOF tMOVIE expr */
+#line 468 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3065 "engines/director/lingo/lingo-gr.cpp"
+#line 3210 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* frameargs: tFRAME expr expr_nounarymath */
-#line 469 "engines/director/lingo/lingo-gr.y"
+ case 131: /* frameargs: tFRAME expr expr_nounarymath */
+#line 474 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3076 "engines/director/lingo/lingo-gr.cpp"
+#line 3221 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 477 "engines/director/lingo/lingo-gr.y"
+ case 132: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 482 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 3227 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 478 "engines/director/lingo/lingo-gr.y"
+ case 133: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3088 "engines/director/lingo/lingo-gr.cpp"
+#line 3233 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 134: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 484 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3239 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* asgn: tSET varorthe to expr '\n' */
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 135: /* asgn: tSET varorthe to expr '\n' */
+#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3100 "engines/director/lingo/lingo-gr.cpp"
+#line 3245 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* definevars: tGLOBAL idlist '\n' */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 138: /* definevars: tGLOBAL idlist '\n' */
+#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3251 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* definevars: tPROPERTY idlist '\n' */
-#line 486 "engines/director/lingo/lingo-gr.y"
+ case 139: /* definevars: tPROPERTY idlist '\n' */
+#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3112 "engines/director/lingo/lingo-gr.cpp"
+#line 3257 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* definevars: tINSTANCE idlist '\n' */
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 140: /* definevars: tINSTANCE idlist '\n' */
+#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3118 "engines/director/lingo/lingo-gr.cpp"
+#line 3263 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* ifstmt: tIF expr tTHEN stmt */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 141: /* ifstmt: tIF expr tTHEN stmt */
+#line 495 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3127 "engines/director/lingo/lingo-gr.cpp"
+#line 3272 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 494 "engines/director/lingo/lingo-gr.y"
+ case 142: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
+#line 499 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3279 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 498 "engines/director/lingo/lingo-gr.y"
+ case 143: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 503 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3145 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 504 "engines/director/lingo/lingo-gr.y"
+ case 144: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
+#line 509 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
+#line 3299 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 508 "engines/director/lingo/lingo-gr.y"
+ case 145: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
+#line 513 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3308 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 512 "engines/director/lingo/lingo-gr.y"
+ case 146: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
+#line 517 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3170 "engines/director/lingo/lingo-gr.cpp"
+#line 3315 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 516 "engines/director/lingo/lingo-gr.y"
+ case 147: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 521 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3177 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 148: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 523 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3184 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 520 "engines/director/lingo/lingo-gr.y"
+ case 149: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 525 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3191 "engines/director/lingo/lingo-gr.cpp"
+#line 3336 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* tell: tTELL expr tTO stmtoneliner */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 150: /* tell: tTELL expr tTO stmtoneliner */
+#line 529 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3345 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 528 "engines/director/lingo/lingo-gr.y"
+ case 151: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 533 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3207 "engines/director/lingo/lingo-gr.cpp"
+#line 3352 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* when: tWHEN ID tTHEN expr */
-#line 532 "engines/director/lingo/lingo-gr.y"
+ case 152: /* when: tWHEN ID tTHEN expr */
+#line 537 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3213 "engines/director/lingo/lingo-gr.cpp"
+#line 3358 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* stmtlist: %empty */
-#line 534 "engines/director/lingo/lingo-gr.y"
+ case 153: /* stmtlist: %empty */
+#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3219 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* nonemptystmtlist: stmtlistline */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 155: /* nonemptystmtlist: stmtlistline */
+#line 544 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3230 "engines/director/lingo/lingo-gr.cpp"
+#line 3375 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 156: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 550 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3385 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* stmtlistline: '\n' */
-#line 552 "engines/director/lingo/lingo-gr.y"
+ case 157: /* stmtlistline: '\n' */
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3391 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* simpleexpr_nounarymath: tINT */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 159: /* simpleexpr_nounarymath: tINT */
+#line 564 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* simpleexpr_nounarymath: tFLOAT */
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 160: /* simpleexpr_nounarymath: tFLOAT */
+#line 565 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3258 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* simpleexpr_nounarymath: tSYMBOL */
-#line 561 "engines/director/lingo/lingo-gr.y"
+ case 161: /* simpleexpr_nounarymath: tSYMBOL */
+#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* simpleexpr_nounarymath: tSTRING */
-#line 562 "engines/director/lingo/lingo-gr.y"
+ case 162: /* simpleexpr_nounarymath: tSTRING */
+#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 3415 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 163: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 568 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3421 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 564 "engines/director/lingo/lingo-gr.y"
+ case 164: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 569 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3427 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 565 "engines/director/lingo/lingo-gr.y"
+ case 165: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3288 "engines/director/lingo/lingo-gr.cpp"
+#line 3433 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* var: ID */
-#line 573 "engines/director/lingo/lingo-gr.y"
+ case 171: /* var: ID */
+#line 578 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3439 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* chunk: tFIELD simpleexpr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+ case 176: /* chunk: tFIELD simpleexpr */
+#line 588 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3303 "engines/director/lingo/lingo-gr.cpp"
+#line 3448 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* chunk: tCAST simpleexpr */
-#line 587 "engines/director/lingo/lingo-gr.y"
+ case 177: /* chunk: tCAST simpleexpr */
+#line 592 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3312 "engines/director/lingo/lingo-gr.cpp"
+#line 3457 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* chunk: tCHAR simpleexpr tOF simpleexpr */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 178: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3319 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 179: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3326 "engines/director/lingo/lingo-gr.cpp"
+#line 3471 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* chunk: tWORD simpleexpr tOF simpleexpr */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 180: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 600 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3333 "engines/director/lingo/lingo-gr.cpp"
+#line 3478 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 181: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+#line 3485 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* chunk: tITEM simpleexpr tOF simpleexpr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 182: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 604 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3347 "engines/director/lingo/lingo-gr.cpp"
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 183: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3354 "engines/director/lingo/lingo-gr.cpp"
+#line 3499 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* chunk: tLINE simpleexpr tOF simpleexpr */
-#line 603 "engines/director/lingo/lingo-gr.y"
+ case 184: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3361 "engines/director/lingo/lingo-gr.cpp"
+#line 3506 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 185: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3368 "engines/director/lingo/lingo-gr.cpp"
+#line 3513 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* object: tSCRIPT simpleexpr */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 186: /* object: tSCRIPT simpleexpr */
+#line 614 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3377 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* object: tWINDOW simpleexpr */
-#line 613 "engines/director/lingo/lingo-gr.y"
+ case 187: /* object: tWINDOW simpleexpr */
+#line 618 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3386 "engines/director/lingo/lingo-gr.cpp"
+#line 3531 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 191: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3392 "engines/director/lingo/lingo-gr.cpp"
+#line 3537 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 194: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3398 "engines/director/lingo/lingo-gr.cpp"
+#line 3543 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* theobj: tSOUND simpleexpr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 195: /* theobj: tSOUND simpleexpr */
+#line 633 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3404 "engines/director/lingo/lingo-gr.cpp"
+#line 3549 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* theobj: tSPRITE simpleexpr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 196: /* theobj: tSPRITE simpleexpr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3410 "engines/director/lingo/lingo-gr.cpp"
+#line 3555 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* menu: tMENU simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 197: /* menu: tMENU simpleexpr */
+#line 637 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3416 "engines/director/lingo/lingo-gr.cpp"
+#line 3561 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* writablethe: tTHE ID */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 198: /* writablethe: tTHE ID */
+#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3422 "engines/director/lingo/lingo-gr.cpp"
+#line 3567 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* writablethe: tTHE ID tOF theobj */
-#line 635 "engines/director/lingo/lingo-gr.y"
+ case 199: /* writablethe: tTHE ID tOF theobj */
+#line 640 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3428 "engines/director/lingo/lingo-gr.cpp"
+#line 3573 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 200: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3434 "engines/director/lingo/lingo-gr.cpp"
+#line 3579 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 201: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3440 "engines/director/lingo/lingo-gr.cpp"
+#line 3585 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 202: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3446 "engines/director/lingo/lingo-gr.cpp"
+#line 3591 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* thedatetime: tTHE tABBREV tDATE */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 203: /* thedatetime: tTHE tABBREV tDATE */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3452 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* thedatetime: tTHE tABBREV tTIME */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 204: /* thedatetime: tTHE tABBREV tTIME */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3458 "engines/director/lingo/lingo-gr.cpp"
+#line 3603 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* thedatetime: tTHE tABBR tDATE */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 205: /* thedatetime: tTHE tABBR tDATE */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3464 "engines/director/lingo/lingo-gr.cpp"
+#line 3609 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* thedatetime: tTHE tABBR tTIME */
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 206: /* thedatetime: tTHE tABBR tTIME */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3470 "engines/director/lingo/lingo-gr.cpp"
+#line 3615 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* thedatetime: tTHE tLONG tDATE */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 207: /* thedatetime: tTHE tLONG tDATE */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3476 "engines/director/lingo/lingo-gr.cpp"
+#line 3621 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* thedatetime: tTHE tLONG tTIME */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 208: /* thedatetime: tTHE tLONG tTIME */
+#line 651 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3482 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* thedatetime: tTHE tSHORT tDATE */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 209: /* thedatetime: tTHE tSHORT tDATE */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3488 "engines/director/lingo/lingo-gr.cpp"
+#line 3633 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* thedatetime: tTHE tSHORT tTIME */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 210: /* thedatetime: tTHE tSHORT tTIME */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3494 "engines/director/lingo/lingo-gr.cpp"
+#line 3639 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 211: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 657 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3500 "engines/director/lingo/lingo-gr.cpp"
+#line 3645 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 212: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 658 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3506 "engines/director/lingo/lingo-gr.cpp"
+#line 3651 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 213: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3512 "engines/director/lingo/lingo-gr.cpp"
+#line 3657 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 214: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3518 "engines/director/lingo/lingo-gr.cpp"
+#line 3663 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 656 "engines/director/lingo/lingo-gr.y"
+ case 215: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3524 "engines/director/lingo/lingo-gr.cpp"
+#line 3669 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* chunktype: tCHAR */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 216: /* chunktype: tCHAR */
+#line 664 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3530 "engines/director/lingo/lingo-gr.cpp"
+#line 3675 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* chunktype: tWORD */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 217: /* chunktype: tWORD */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3536 "engines/director/lingo/lingo-gr.cpp"
+#line 3681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* chunktype: tITEM */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 218: /* chunktype: tITEM */
+#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3542 "engines/director/lingo/lingo-gr.cpp"
+#line 3687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* chunktype: tLINE */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 219: /* chunktype: tLINE */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3548 "engines/director/lingo/lingo-gr.cpp"
+#line 3693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* list: '[' exprlist ']' */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 222: /* list: '[' exprlist ']' */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3554 "engines/director/lingo/lingo-gr.cpp"
+#line 3699 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* list: '[' ':' ']' */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 223: /* list: '[' ':' ']' */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3560 "engines/director/lingo/lingo-gr.cpp"
+#line 3705 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* list: '[' proplist ']' */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 224: /* list: '[' proplist ']' */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3566 "engines/director/lingo/lingo-gr.cpp"
+#line 3711 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* proplist: proppair */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 225: /* proplist: proppair */
+#line 677 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3575 "engines/director/lingo/lingo-gr.cpp"
+#line 3720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* proplist: proplist ',' proppair */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 226: /* proplist: proplist ',' proppair */
+#line 681 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3583 "engines/director/lingo/lingo-gr.cpp"
+#line 3728 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* proppair: tSYMBOL ':' expr */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 227: /* proppair: tSYMBOL ':' expr */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3589 "engines/director/lingo/lingo-gr.cpp"
+#line 3734 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* proppair: ID ':' expr */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 228: /* proppair: ID ':' expr */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3595 "engines/director/lingo/lingo-gr.cpp"
+#line 3740 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* proppair: tSTRING ':' expr */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 229: /* proppair: tSTRING ':' expr */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3601 "engines/director/lingo/lingo-gr.cpp"
+#line 3746 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* unarymath: '+' simpleexpr */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 230: /* unarymath: '+' simpleexpr */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3607 "engines/director/lingo/lingo-gr.cpp"
+#line 3752 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* unarymath: '-' simpleexpr */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 231: /* unarymath: '-' simpleexpr */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3613 "engines/director/lingo/lingo-gr.cpp"
+#line 3758 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* expr: expr '+' expr */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 236: /* expr: expr '+' expr */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3619 "engines/director/lingo/lingo-gr.cpp"
+#line 3764 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* expr: expr '-' expr */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 237: /* expr: expr '-' expr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3625 "engines/director/lingo/lingo-gr.cpp"
+#line 3770 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* expr: expr '*' expr */
-#line 699 "engines/director/lingo/lingo-gr.y"
+ case 238: /* expr: expr '*' expr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3631 "engines/director/lingo/lingo-gr.cpp"
+#line 3776 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* expr: expr '/' expr */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 239: /* expr: expr '/' expr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3637 "engines/director/lingo/lingo-gr.cpp"
+#line 3782 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* expr: expr tMOD expr */
-#line 701 "engines/director/lingo/lingo-gr.y"
+ case 240: /* expr: expr tMOD expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3643 "engines/director/lingo/lingo-gr.cpp"
+#line 3788 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* expr: expr '>' expr */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 241: /* expr: expr '>' expr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3649 "engines/director/lingo/lingo-gr.cpp"
+#line 3794 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* expr: expr '<' expr */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 242: /* expr: expr '<' expr */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3655 "engines/director/lingo/lingo-gr.cpp"
+#line 3800 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* expr: expr tEQ expr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 243: /* expr: expr tEQ expr */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3661 "engines/director/lingo/lingo-gr.cpp"
+#line 3806 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* expr: expr tNEQ expr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 244: /* expr: expr tNEQ expr */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3667 "engines/director/lingo/lingo-gr.cpp"
+#line 3812 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* expr: expr tGE expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 245: /* expr: expr tGE expr */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3673 "engines/director/lingo/lingo-gr.cpp"
+#line 3818 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* expr: expr tLE expr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 246: /* expr: expr tLE expr */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3679 "engines/director/lingo/lingo-gr.cpp"
+#line 3824 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* expr: expr tAND expr */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 247: /* expr: expr tAND expr */
+#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3685 "engines/director/lingo/lingo-gr.cpp"
+#line 3830 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* expr: expr tOR expr */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr: expr tOR expr */
+#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3691 "engines/director/lingo/lingo-gr.cpp"
+#line 3836 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* expr: expr '&' expr */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr: expr '&' expr */
+#line 715 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3697 "engines/director/lingo/lingo-gr.cpp"
+#line 3842 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* expr: expr tCONCAT expr */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr: expr tCONCAT expr */
+#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3703 "engines/director/lingo/lingo-gr.cpp"
+#line 3848 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* expr: expr tCONTAINS expr */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr: expr tCONTAINS expr */
+#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3709 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* expr: expr tSTARTS expr */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr: expr tSTARTS expr */
+#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3715 "engines/director/lingo/lingo-gr.cpp"
+#line 3860 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 722 "engines/director/lingo/lingo-gr.y"
+ case 255: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 727 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3721 "engines/director/lingo/lingo-gr.cpp"
+#line 3866 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 723 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 728 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3727 "engines/director/lingo/lingo-gr.cpp"
+#line 3872 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3733 "engines/director/lingo/lingo-gr.cpp"
+#line 3878 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 725 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3739 "engines/director/lingo/lingo-gr.cpp"
+#line 3884 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 726 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3745 "engines/director/lingo/lingo-gr.cpp"
+#line 3890 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3751 "engines/director/lingo/lingo-gr.cpp"
+#line 3896 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 728 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3757 "engines/director/lingo/lingo-gr.cpp"
+#line 3902 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 729 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3763 "engines/director/lingo/lingo-gr.cpp"
+#line 3908 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 730 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3769 "engines/director/lingo/lingo-gr.cpp"
+#line 3914 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3775 "engines/director/lingo/lingo-gr.cpp"
+#line 3920 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3781 "engines/director/lingo/lingo-gr.cpp"
+#line 3926 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3787 "engines/director/lingo/lingo-gr.cpp"
+#line 3932 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3793 "engines/director/lingo/lingo-gr.cpp"
+#line 3938 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3799 "engines/director/lingo/lingo-gr.cpp"
+#line 3944 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3805 "engines/director/lingo/lingo-gr.cpp"
+#line 3950 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3811 "engines/director/lingo/lingo-gr.cpp"
+#line 3956 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3817 "engines/director/lingo/lingo-gr.cpp"
+#line 3962 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 272: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3823 "engines/director/lingo/lingo-gr.cpp"
+#line 3968 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 273: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3829 "engines/director/lingo/lingo-gr.cpp"
+#line 3974 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* exprlist: %empty */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 274: /* exprlist: %empty */
+#line 750 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3835 "engines/director/lingo/lingo-gr.cpp"
+#line 3980 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* nonemptyexprlist: expr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 276: /* nonemptyexprlist: expr */
+#line 754 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3844 "engines/director/lingo/lingo-gr.cpp"
+#line 3989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 753 "engines/director/lingo/lingo-gr.y"
+ case 277: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 758 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3852 "engines/director/lingo/lingo-gr.cpp"
+#line 3997 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3856 "engines/director/lingo/lingo-gr.cpp"
+#line 4001 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4051,7 +4196,7 @@ yyreturn:
return yyresult;
}
-#line 758 "engines/director/lingo/lingo-gr.y"
+#line 763 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 8d99e6a403..3b8369f79a 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -156,7 +156,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> handler
// GENERIC VAR STUFF
-%type<s> ID
+%type<s> CMDID ID
%type<idlist> idlist nonemptyidlist
// STATEMENT
@@ -286,7 +286,9 @@ endargdef: /* nothing */
// GENERIC VAR STUFF
-ID: tVARID
+// This is only the identifiers that can appaear at the start of a line
+// and will not conflict with other statement types.
+CMDID: tVARID
| tABBREVIATED { $$ = new Common::String("abbreviated"); }
| tABBREV { $$ = new Common::String("abbrev"); }
| tABBR { $$ = new Common::String("abbr"); }
@@ -299,17 +301,9 @@ ID: tVARID
| tCONTAINS { $$ = new Common::String("contains"); }
| tDATE { $$ = new Common::String("date"); }
| tDOWN { $$ = new Common::String("down"); }
- // tELSE
- // tENDCLAUSE
- // | tEXIT { $$ = new Common::String("exit"); }
- // tFACTORY
| tFIELD { $$ = new Common::String("field"); }
| tFRAME { $$ = new Common::String("frame"); }
- // | tGLOBAL { $$ = new Common::String("global"); }
- // tGO
- // tIF
| tIN { $$ = new Common::String("in"); }
- // | tINSTANCE { $$ = new Common::String("instance"); }
| tINTERSECTS { $$ = new Common::String("intersects"); }
| tINTO { $$ = new Common::String("into"); }
| tITEM { $$ = new Common::String("item"); }
@@ -318,24 +312,17 @@ ID: tVARID
| tLINE { $$ = new Common::String("line"); }
| tLINES { $$ = new Common::String("lines"); }
| tLONG { $$ = new Common::String("long"); }
- // | tMACRO { $$ = new Common::String("macro"); }
| tMENU { $$ = new Common::String("menu"); }
| tMENUITEM { $$ = new Common::String("menuItem"); }
| tMENUITEMS { $$ = new Common::String("menuItems"); }
- // | tMETHOD { $$ = new Common::String("method"); }
| tMOD { $$ = new Common::String("mod"); }
| tMOVIE { $$ = new Common::String("movie"); }
| tNEXT { $$ = new Common::String("next"); }
| tNOT { $$ = new Common::String("not"); }
| tNUMBER { $$ = new Common::String("number"); }
| tOF { $$ = new Common::String("of"); }
- // | tON { $$ = new Common::String("on"); }
- // | tOPEN { $$ = new Common::String("open"); }
| tOR { $$ = new Common::String("or"); }
- // | tPLAY { $$ = new Common::String("play"); }
| tPREVIOUS { $$ = new Common::String("previous"); }
- // | tPROPERTY { $$ = new Common::String("property"); }
- // | tPUT { $$ = new Common::String("put"); }
| tREPEAT { $$ = new Common::String("repeat"); }
| tSCRIPT { $$ = new Common::String("script"); }
| tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
@@ -345,11 +332,9 @@ ID: tVARID
| tSPRITE { $$ = new Common::String("sprite"); }
| tSTARTS { $$ = new Common::String("starts"); }
| tTELL { $$ = new Common::String("tell"); }
- // tTHE
- // tTHEN
+ | tTHE { $$ = new Common::String("the"); }
| tTIME { $$ = new Common::String("time"); }
| tTO { $$ = new Common::String("to"); }
- // | tWHEN { $$ = new Common::String("when"); }
| tWHILE { $$ = new Common::String("while"); }
| tWINDOW { $$ = new Common::String("window"); }
| tWITH { $$ = new Common::String("with"); }
@@ -358,6 +343,26 @@ ID: tVARID
| tWORDS { $$ = new Common::String("words"); }
;
+ID: CMDID
+ | tELSE { $$ = new Common::String("else"); }
+ | tENDCLAUSE { $$ = new Common::String("end"); }
+ | tEXIT { $$ = new Common::String("exit"); }
+ | tFACTORY { $$ = new Common::String("factory"); }
+ | tGLOBAL { $$ = new Common::String("global"); }
+ | tGO { $$ = new Common::String("go"); }
+ | tIF { $$ = new Common::String("if"); }
+ | tINSTANCE { $$ = new Common::String("instance"); }
+ | tMACRO { $$ = new Common::String("macro"); }
+ | tMETHOD { $$ = new Common::String("method"); }
+ | tON { $$ = new Common::String("on"); }
+ | tOPEN { $$ = new Common::String("open"); }
+ | tPLAY { $$ = new Common::String("play"); }
+ | tPROPERTY { $$ = new Common::String("property"); }
+ | tPUT { $$ = new Common::String("put"); }
+ | tTHEN { $$ = new Common::String("then"); }
+ | tWHEN { $$ = new Common::String("when"); }
+ ;
+
idlist: /* empty */ { $$ = new IDList; }
| nonemptyidlist
;
@@ -389,7 +394,7 @@ stmtoneliner: proc
| definevars
;
-proc: ID cmdargs '\n' { $$ = new CmdNode($ID, $cmdargs); }
+proc: CMDID cmdargs '\n' { $$ = new CmdNode($CMDID, $cmdargs); }
| tPUT cmdargs '\n' { $$ = new CmdNode(new Common::String("put"), $cmdargs); }
| tGO cmdargs '\n' { $$ = new CmdNode(new Common::String("go"), $cmdargs); }
| tGO frameargs '\n' { $$ = new CmdNode(new Common::String("go"), $frameargs); }
Commit: c7e8003ccb0ee755ef906a901c9dbd5b248926c8
https://github.com/scummvm/scummvm/commit/c7e8003ccb0ee755ef906a901c9dbd5b248926c8
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Lower b_go version
Changed paths:
engines/director/lingo/lingo-builtins.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f228fe8c22..97232830a8 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -159,7 +159,7 @@ static struct BuiltinProto {
{ "dontPassEvent", LB::b_dontPassEvent,0, 0, false, 200, CBLTIN }, // D2 c
{ "delay", LB::b_delay, 1, 1, false, 200, CBLTIN }, // D2 c
{ "do", LB::b_do, 1, 1, false, 200, CBLTIN }, // D2 c
- { "go", LB::b_go, 1, 2, false, 400, CBLTIN }, // D4 c
+ { "go", LB::b_go, 1, 2, false, 200, CBLTIN }, // D2 c
{ "halt", LB::b_halt, 0, 0, false, 400, CBLTIN }, // D4 c
{ "nothing", LB::b_nothing, 0, 0, false, 200, CBLTIN }, // D2 c
{ "pass", LB::b_pass, 0, 0, false, 400, CBLTIN }, // D4 c
Commit: c66377b5e8b6f523ba64c05708ee4253c7da7416
https://github.com/scummvm/scummvm/commit/c66377b5e8b6f523ba64c05708ee4253c7da7416
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement repeat with in
Changed paths:
engines/director/lingo/lingo-ast.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-codegen.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-ast.h b/engines/director/lingo/lingo-ast.h
index 987b9ba2e8..e3626e4b44 100644
--- a/engines/director/lingo/lingo-ast.h
+++ b/engines/director/lingo/lingo-ast.h
@@ -41,6 +41,7 @@ struct IfStmtNode;
struct IfElseStmtNode;
struct RepeatWhileNode;
struct RepeatWithToNode;
+struct RepeatWithInNode;
struct NextRepeatNode;
struct ExitRepeatNode;
struct ExitNode;
@@ -103,6 +104,7 @@ enum NodeType {
kIfElseStmtNode,
kRepeatWhileNode,
kRepeatWithToNode,
+ kRepeatWithInNode,
kNextRepeatNode,
kExitRepeatNode,
kExitNode,
@@ -167,6 +169,7 @@ public:
virtual bool visitIfElseStmtNode(IfElseStmtNode *node) = 0;
virtual bool visitRepeatWhileNode(RepeatWhileNode *node) = 0;
virtual bool visitRepeatWithToNode(RepeatWithToNode *node) = 0;
+ virtual bool visitRepeatWithInNode(RepeatWithInNode *node) = 0;
virtual bool visitNextRepeatNode(NextRepeatNode *node) = 0;
virtual bool visitExitRepeatNode(ExitRepeatNode *node) = 0;
virtual bool visitExitNode(ExitNode *node) = 0;
@@ -496,6 +499,25 @@ struct RepeatWithToNode : LoopNode {
}
};
+/* RepeatWithInNode */
+
+struct RepeatWithInNode : LoopNode {
+ Common::String *var;
+ Node *list;
+ NodeList *stmts;
+
+ RepeatWithInNode(Common::String *varIn, Node *listIn, NodeList *stmtsIn)
+ : LoopNode(kRepeatWithInNode), var(varIn), list(listIn), stmts(stmtsIn) {}
+ virtual ~RepeatWithInNode() {
+ delete var;
+ delete list;
+ deleteList(stmts);
+ }
+ virtual bool accept(NodeVisitor *visitor) {
+ return visitor->visitRepeatWithInNode(this);
+ }
+};
+
/* NextRepeatNode */
struct NextRepeatNode : StmtNode {
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 35f340c9b5..52c8cae709 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -836,6 +836,61 @@ bool LingoCompiler::visitRepeatWithToNode(RepeatWithToNode *node) {
return true;
}
+/* RepeatWithInNode */
+
+bool LingoCompiler::visitRepeatWithInNode(RepeatWithInNode *node) {
+ LoopNode *prevLoop = _currentLoop;
+ _currentLoop = node;
+
+ COMPILE(node->list);
+ code1(LC::c_stackpeek);
+ codeInt(0);
+ codeFunc("count", 1);
+ code1(LC::c_intpush); // start counter
+ codeInt(1);
+
+ uint startPos = _currentAssembly->size();
+ code1(LC::c_stackpeek); // get counter
+ codeInt(0);
+ code1(LC::c_stackpeek); // get array size
+ codeInt(2);
+ code1(LC::c_le);
+ uint jzPos = _currentAssembly->size();
+ code2(LC::c_jumpifz, 0);
+
+ code1(LC::c_stackpeek); // get list
+ codeInt(2);
+ code1(LC::c_stackpeek); // get counter
+ codeInt(1);
+ codeFunc("getAt", 2);
+ codeVarSet(*node->var);
+ COMPILE_LIST(node->stmts);
+
+ uint incrementPos = _currentAssembly->size();
+ code1(LC::c_intpush);
+ codeInt(1);
+ code1(LC::c_add); // Increment counter
+
+ uint jmpPos = _currentAssembly->size();
+ code2(LC::c_jump, 0);
+ uint endPos = _currentAssembly->size();
+ code1(LC::c_stackdrop); // remove list, size, counter
+ codeInt(3);
+
+ inst jzOffset = 0;
+ WRITE_UINT32(&jzOffset, endPos - jzPos);
+ (*_currentAssembly)[jzPos + 1] = jzOffset;
+
+ inst jmpOffset = 0;
+ WRITE_UINT32(&jmpOffset, startPos - jmpPos);
+ (*_currentAssembly)[jmpPos + 1] = jmpOffset;
+
+ updateLoopJumps(incrementPos, endPos);
+ _currentLoop = prevLoop;
+
+ return true;
+}
+
/* NextRepeatNode */
bool LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
diff --git a/engines/director/lingo/lingo-codegen.h b/engines/director/lingo/lingo-codegen.h
index 7b4aef032e..ace393c312 100644
--- a/engines/director/lingo/lingo-codegen.h
+++ b/engines/director/lingo/lingo-codegen.h
@@ -90,6 +90,7 @@ public:
virtual bool visitIfElseStmtNode(IfElseStmtNode *node);
virtual bool visitRepeatWhileNode(RepeatWhileNode *node);
virtual bool visitRepeatWithToNode(RepeatWithToNode *node);
+ virtual bool visitRepeatWithInNode(RepeatWithInNode *node);
virtual bool visitNextRepeatNode(NextRepeatNode *node);
virtual bool visitExitRepeatNode(ExitRepeatNode *node);
virtual bool visitExitNode(ExitNode *node);
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 2c644dd91a..2a930a8ee1 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -634,16 +634,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 174
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4150
+#define YYLAST 4223
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 56
/* YYNRULES -- Number of rules. */
-#define YYNRULES 277
+#define YYNRULES 278
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 514
+#define YYNSTATES 520
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -716,19 +716,19 @@ static const yytype_int16 yyrline[] =
415, 418, 423, 427, 433, 438, 441, 451, 456, 462,
468, 474, 482, 483, 484, 485, 488, 488, 490, 491,
492, 495, 499, 503, 509, 513, 517, 521, 523, 525,
- 529, 533, 537, 539, 540, 544, 550, 557, 558, 564,
- 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
- 575, 578, 580, 581, 584, 585, 588, 592, 596, 598,
- 600, 602, 604, 606, 608, 610, 614, 618, 624, 625,
- 626, 627, 630, 631, 632, 633, 634, 637, 639, 640,
- 641, 644, 645, 646, 647, 648, 649, 650, 651, 652,
- 653, 657, 658, 659, 660, 661, 664, 665, 666, 667,
- 670, 670, 672, 673, 674, 677, 681, 686, 687, 688,
- 691, 692, 695, 696, 700, 701, 702, 703, 704, 705,
- 706, 707, 708, 709, 710, 711, 712, 713, 714, 715,
- 716, 717, 718, 725, 726, 727, 728, 729, 730, 731,
- 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
- 742, 743, 746, 747, 750, 751, 754, 758
+ 527, 531, 535, 539, 541, 542, 546, 552, 559, 560,
+ 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
+ 576, 577, 580, 582, 583, 586, 587, 590, 594, 598,
+ 600, 602, 604, 606, 608, 610, 612, 616, 620, 626,
+ 627, 628, 629, 632, 633, 634, 635, 636, 639, 641,
+ 642, 643, 646, 647, 648, 649, 650, 651, 652, 653,
+ 654, 655, 659, 660, 661, 662, 663, 666, 667, 668,
+ 669, 672, 672, 674, 675, 676, 679, 683, 688, 689,
+ 690, 693, 694, 697, 698, 702, 703, 704, 705, 706,
+ 707, 708, 709, 710, 711, 712, 713, 714, 715, 716,
+ 717, 718, 719, 720, 727, 728, 729, 730, 731, 732,
+ 733, 734, 735, 736, 737, 738, 739, 740, 741, 742,
+ 743, 744, 745, 748, 749, 752, 753, 756, 760
};
#endif
@@ -794,7 +794,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-343)
+#define YYPACT_NINF (-347)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -808,58 +808,58 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2296, -343, -343, -343, -343, -343, -343, -19, -343, 3433,
- 1429, 1526, -343, -343, 3433, -343, -6, -343, -343, 1623,
- 37, 3512, -343, 3433, -343, -343, 3433, 1623, 1429, 3433,
- -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -343, -343, 1526, 3433, 3433, 3827, -343, 58, 2296,
- -343, -343, -343, -343, 1623, -343, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, -14, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -12, -2, -343, -343, -343, -343, 1720, 1720, 1720,
- 1720, 1526, 1526, 1720, 1720, 1720, 1720, 1720, 3591, 1526,
- 1720, 1720, 1332, 748, 4, 13, 24, -343, -343, -343,
- -343, -343, -343, -343, -343, -343, -343, -343, 847, -343,
- 1526, 517, 3433, 32, 34, 944, 3433, 1526, 3670, -343,
- -343, -11, -343, 60, 35, 36, 1041, 39, 40, 41,
- 429, 42, 3433, -343, -343, -343, 43, 1138, -343, -343,
- 3433, -343, -343, -343, -343, 1235, 4042, -343, -17, 11,
- 15, 33, -38, -35, -34, -29, -25, 52, 80, 84,
- 3988, -343, -343, -343, 499, 27, 31, 46, -77, -4,
- -343, 4042, 48, 45, 1526, -343, -343, 115, 1526, 1526,
- 1526, 1526, 2011, 2011, 2205, 1526, 2108, 2108, 1526, 1526,
- 1526, 1526, 1526, 1526, 1526, 1526, -343, 589, -343, 530,
- 3023, 1526, 1526, 1526, 1526, 1526, 47, -343, -343, 3749,
- 3749, 3749, 108, 3874, 127, -343, -343, 1526, 1526, -70,
- -343, 1526, -343, -343, -343, 3827, 3103, -343, 62, -343,
- -343, 131, 4055, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
- 1720, -343, -343, -343, -343, -343, -343, -343, -343, -343,
- -343, -343, -343, -343, -343, 63, 1817, 1914, 1720, 1720,
- 1526, -343, 1526, 1526, -343, 1526, 3354, -343, -343, 1526,
- 64, 1526, -39, -39, -39, -39, 183, 183, -343, -30,
- -39, -39, -39, -39, -30, -13, -13, -343, -343, 45,
- 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526,
- 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 3103, 144,
- 3103, -343, 65, -343, 69, 72, 1526, 3103, 1914, 3887,
- 4042, 3433, -343, -343, 73, -343, -343, 3900, -343, -343,
- -343, 2456, -343, -343, 3103, 1526, -343, 133, -343, 143,
- -343, 145, -343, 146, -343, -343, 1720, 63, 63, 63,
- 63, 1720, 1720, 63, 1720, 1720, -343, -343, -343, -343,
- -343, -343, -52, 4042, 4042, 4042, 27, 31, 74, -343,
- 4042, -343, 4042, -39, -39, -39, -39, 183, 183, -343,
- -30, -39, -39, -39, -39, -30, -13, -13, -343, -343,
- 45, 2376, 3183, 3103, -343, -343, -343, 161, 2543, -343,
- 3433, -70, -343, 75, -343, 2623, 4042, 1720, 1720, 1720,
- 1720, -343, 1720, 1720, 1720, 1720, -343, 150, 109, -343,
- -343, -343, 3263, 82, 3103, -343, 147, 1526, 87, 88,
- -343, -343, 3433, -343, -343, -343, -343, -343, -343, -343,
- -343, 116, 1720, -343, 3103, -343, -343, 2703, 1526, 3956,
- -343, 3103, 18, -343, 1720, 2783, 89, 3969, 3103, 3103,
- -343, 3433, -343, 91, -343, 3103, 2863, -343, -343, 2943,
- 92, 94, -343, -343
+ 2289, -347, -347, -347, -347, -347, -347, -21, -347, 3506,
+ 1422, 1519, -347, -347, 3506, -347, -4, -347, -347, 1616,
+ 72, 3585, -347, 3506, -347, -347, 3506, 1616, 1422, 3506,
+ -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -347, -347, 1519, 3506, 3506, 3900, -347, 30, 2289,
+ -347, -347, -347, -347, 1616, -347, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, -50, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -14, 5, -347, -347, -347, -347, 1713, 1713, 1713,
+ 1713, 1519, 1519, 1713, 1713, 1713, 1713, 1713, 3664, 1519,
+ 1713, 1713, 1325, 741, 7, 14, 16, -347, -347, -347,
+ -347, -347, -347, -347, -347, -347, -347, -347, 840, -347,
+ 1519, 518, 3506, 24, 26, 937, 3506, 1519, 3743, -347,
+ -347, -15, -347, 93, 34, 36, 1034, 38, 41, 42,
+ 429, 43, 3506, -347, -347, -347, 44, 1131, -347, -347,
+ 3506, -347, -347, -347, -347, 1228, 4115, -347, 40, 51,
+ 54, 67, -38, -36, -35, 8, 11, 37, 106, 109,
+ 4061, -347, -347, -347, 531, 39, 45, 47, 1, 12,
+ -347, 4115, 52, 49, 1519, -347, -347, 117, 1519, 1519,
+ 1519, 1519, 2004, 2004, 2198, 1519, 2101, 2101, 1519, 1519,
+ 1519, 1519, 1519, 1519, 1519, 1519, -347, 629, -347, 544,
+ 3096, 1519, 1519, 1519, 1519, 1519, 48, -347, -347, 3822,
+ 3822, 3822, -12, 642, 125, -347, -347, 1519, 1519, -71,
+ -347, 1519, -347, -347, -347, 3900, 3176, -347, 60, -347,
+ -347, 132, 4128, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
+ 1713, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+ -347, -347, -347, -347, -347, 79, 1810, 1907, 1713, 1713,
+ 1519, -347, 1519, 1519, -347, 1519, 3427, -347, -347, 1519,
+ 61, 1519, -31, -31, -31, -31, 184, 184, -347, -42,
+ -31, -31, -31, -31, -42, -40, -40, -347, -347, 49,
+ 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
+ 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 3176, 144,
+ 3176, -347, 65, -347, 66, 68, 1519, 1519, 3176, 1907,
+ 3947, 4115, 3506, -347, -347, 71, -347, -347, 3960, -347,
+ -347, -347, 2449, -347, -347, 3176, 1519, -347, 142, -347,
+ 143, -347, 145, -347, 148, -347, -347, 1713, 79, 79,
+ 79, 79, 1713, 1713, 79, 1713, 1713, -347, -347, -347,
+ -347, -347, -347, -7, 4115, 4115, 4115, 39, 45, 69,
+ -347, 4115, -347, 4115, -31, -31, -31, -31, 184, 184,
+ -347, -42, -31, -31, -31, -31, -42, -40, -40, -347,
+ -347, 49, 2369, 3256, 3176, -347, -347, -347, 3973, 164,
+ 2536, -347, 3506, -71, -347, 81, -347, 2616, 4115, 1713,
+ 1713, 1713, 1713, -347, 1713, 1713, 1713, 1713, -347, 153,
+ 111, -347, -347, -347, 3336, 88, 3176, -347, 3176, 152,
+ 1519, 90, 91, -347, -347, 3506, -347, -347, -347, -347,
+ -347, -347, -347, -347, 118, 1713, -347, 3176, -347, -347,
+ 2696, 2776, 1519, 4029, -347, 3176, 18, -347, 1713, 2856,
+ 95, 96, 4042, 3176, 3176, -347, 3506, -347, 98, -347,
+ -347, 3176, 2936, -347, -347, 3016, 99, 100, -347, -347
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -878,68 +878,68 @@ static const yytype_int16 yydefact[] =
100, 101, 102, 103, 104, 0, 118, 79, 78, 80,
82, 83, 84, 86, 53, 92, 59, 62, 93, 94,
81, 89, 90, 85, 67, 91, 88, 87, 61, 77,
- 97, 0, 96, 159, 160, 162, 161, 31, 37, 60,
+ 97, 0, 96, 160, 161, 163, 162, 31, 37, 60,
72, 38, 52, 54, 32, 42, 45, 75, 68, 65,
- 0, 0, 0, 274, 171, 0, 0, 232, 166, 167,
- 168, 169, 188, 189, 190, 170, 233, 234, 121, 235,
- 0, 0, 95, 0, 0, 121, 0, 0, 68, 171,
- 174, 0, 175, 0, 0, 0, 121, 0, 0, 0,
+ 0, 0, 0, 275, 172, 0, 0, 233, 167, 168,
+ 169, 170, 189, 190, 191, 171, 234, 235, 121, 236,
+ 0, 0, 95, 0, 0, 121, 0, 0, 68, 172,
+ 175, 0, 176, 0, 0, 0, 121, 0, 0, 0,
0, 0, 95, 119, 1, 4, 0, 121, 117, 138,
- 0, 177, 176, 186, 187, 127, 128, 163, 0, 0,
- 0, 0, 25, 26, 27, 47, 63, 44, 55, 198,
- 0, 230, 231, 125, 0, 162, 161, 0, 171, 0,
- 225, 276, 0, 275, 274, 110, 111, 56, 0, 0,
+ 0, 178, 177, 187, 188, 127, 128, 164, 0, 0,
+ 0, 0, 25, 26, 27, 47, 63, 44, 55, 199,
+ 0, 231, 232, 125, 0, 163, 162, 0, 172, 0,
+ 226, 277, 0, 276, 275, 110, 111, 56, 0, 0,
0, 0, 29, 57, 51, 0, 34, 66, 0, 0,
- 0, 0, 0, 0, 0, 0, 253, 123, 254, 0,
+ 0, 0, 0, 0, 0, 0, 254, 123, 255, 0,
0, 0, 0, 0, 0, 0, 0, 116, 109, 41,
28, 30, 0, 0, 55, 136, 137, 0, 0, 13,
- 114, 73, 112, 113, 140, 0, 153, 139, 0, 108,
+ 114, 73, 112, 113, 140, 0, 154, 139, 0, 108,
98, 56, 131, 0, 0, 0, 0, 0, 0, 0,
- 0, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 216, 218, 219, 217, 0, 0, 0, 0, 0,
- 0, 165, 0, 0, 223, 0, 0, 224, 222, 0,
- 0, 0, 245, 246, 243, 244, 247, 248, 240, 250,
- 251, 252, 242, 241, 249, 236, 237, 238, 239, 122,
+ 0, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 217, 219, 220, 218, 0, 0, 0, 0, 0,
+ 0, 166, 0, 0, 224, 0, 0, 225, 223, 0,
+ 0, 0, 246, 247, 244, 245, 248, 249, 241, 251,
+ 252, 253, 243, 242, 250, 237, 238, 239, 240, 122,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 153, 141,
- 153, 172, 0, 173, 0, 0, 0, 153, 0, 0,
- 152, 0, 17, 18, 11, 14, 15, 0, 150, 157,
- 158, 0, 154, 155, 153, 0, 178, 0, 182, 0,
- 184, 0, 180, 0, 220, 221, 0, 33, 43, 46,
- 76, 48, 49, 50, 64, 65, 200, 193, 192, 199,
- 272, 273, 0, 229, 227, 228, 0, 0, 0, 226,
- 277, 164, 130, 264, 265, 262, 263, 266, 267, 259,
- 269, 270, 271, 261, 260, 268, 255, 256, 257, 258,
- 124, 0, 0, 10, 132, 133, 134, 0, 0, 135,
- 95, 0, 115, 0, 156, 20, 129, 0, 0, 0,
- 0, 191, 0, 0, 0, 0, 197, 0, 0, 195,
- 196, 126, 0, 0, 153, 143, 0, 0, 0, 0,
- 16, 151, 21, 179, 183, 185, 181, 211, 213, 214,
- 212, 0, 0, 215, 153, 145, 142, 0, 0, 0,
- 147, 153, 0, 22, 0, 0, 0, 0, 153, 12,
- 19, 0, 194, 0, 144, 153, 0, 23, 146, 0,
- 0, 0, 148, 149
+ 0, 0, 0, 0, 0, 0, 0, 0, 154, 141,
+ 154, 173, 0, 174, 0, 0, 0, 0, 154, 0,
+ 0, 153, 0, 17, 18, 11, 14, 15, 0, 151,
+ 158, 159, 0, 155, 156, 154, 0, 179, 0, 183,
+ 0, 185, 0, 181, 0, 221, 222, 0, 33, 43,
+ 46, 76, 48, 49, 50, 64, 65, 201, 194, 193,
+ 200, 273, 274, 0, 230, 228, 229, 0, 0, 0,
+ 227, 278, 165, 130, 265, 266, 263, 264, 267, 268,
+ 260, 270, 271, 272, 262, 261, 269, 256, 257, 258,
+ 259, 124, 0, 0, 10, 132, 133, 134, 0, 0,
+ 0, 135, 95, 0, 115, 0, 157, 20, 129, 0,
+ 0, 0, 0, 192, 0, 0, 0, 0, 198, 0,
+ 0, 196, 197, 126, 0, 0, 154, 143, 154, 0,
+ 0, 0, 0, 16, 152, 21, 180, 184, 186, 182,
+ 212, 214, 215, 213, 0, 0, 216, 154, 145, 142,
+ 0, 0, 0, 0, 147, 154, 0, 22, 0, 0,
+ 0, 0, 0, 154, 12, 19, 0, 195, 0, 144,
+ 150, 154, 0, 23, 146, 0, 0, 0, 148, 149
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -343, -343, -343, 123, -343, -343, -343, -343, -343, -247,
- -343, -343, 0, -5, -27, -343, 7, -63, -343, 1,
- 168, -343, -343, -343, -343, -343, -343, -343, -343, -342,
- -343, -341, -98, -20, -124, -343, -131, -343, -343, -100,
- -260, 178, -343, -343, -343, -288, -343, -343, -106, -343,
- 258, 61, 16, -71, 2, -230
+ -347, -347, -347, 121, -347, -347, -347, -347, -347, -244,
+ -347, -347, 0, -6, -28, -347, 6, -62, -347, -3,
+ 172, -347, -347, -347, -347, -347, -347, -347, -347, -336,
+ -347, -335, -120, -19, -122, -347, -131, -347, -347, -96,
+ -258, 183, -347, -347, -347, -346, -347, -347, -101, -347,
+ 260, 62, 29, -99, 9, -230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 68, 69, 70, 71, 72, 363, 364, 365, 366,
- 73, 492, 109, 134, 111, 112, 370, 76, 77, 135,
- 136, 78, 257, 79, 80, 81, 82, 83, 84, 371,
- 372, 373, 137, 138, 352, 161, 139, 140, 141, 396,
- 397, 142, 143, 144, 295, 386, 145, 209, 210, 146,
+ 0, 68, 69, 70, 71, 72, 364, 365, 366, 367,
+ 73, 496, 109, 134, 111, 112, 371, 76, 77, 135,
+ 136, 78, 257, 79, 80, 81, 82, 83, 84, 372,
+ 373, 374, 137, 138, 352, 161, 139, 140, 141, 397,
+ 398, 142, 143, 144, 295, 387, 145, 209, 210, 146,
147, 211, 237, 149, 212, 213
};
@@ -948,106 +948,115 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 74, 160, 169, 173, 110, 329, 431, 75, 433, 152,
- 243, 273, 85, 225, 361, 438, 159, 274, 163, 243,
- 154, 164, 214, 255, 110, 153, 305, 362, 165, 167,
- 444, 281, 445, 256, 283, 285, 243, 171, 282, 275,
- 287, 284, 286, 277, 289, 276, 309, 288, 461, 278,
- 236, 290, 230, 231, 232, 233, 234, 236, 174, 110,
- 172, 279, 231, 232, 233, 234, 74, 280, 236, 74,
- 402, 148, 151, 156, 157, 176, 75, 238, 86, 236,
- 155, 233, 234, 178, 238, 179, 384, 236, 166, 148,
- 444, 385, 444, 258, 306, 238, 180, 444, 307, 452,
- 453, 454, 455, 214, 444, 458, 238, 291, 296, 292,
- 215, 293, 297, 294, 238, 500, 501, 430, 353, 353,
- 353, 216, 487, 199, 170, 246, 354, 355, 208, 247,
- 302, 248, 259, 260, 303, 177, 262, 263, 264, 267,
- 269, 311, 495, 309, 350, 268, 444, 110, 304, 499,
- 308, 252, 356, 199, 444, 358, 506, 375, 444, 374,
- 432, 447, 434, 509, 411, 444, 435, 110, 444, 436,
- 441, 448, 471, 449, 450, 270, 466, 305, 481, 486,
- 482, 488, 185, 186, 490, 491, 504, 494, 508, 512,
- 200, 513, 175, 204, 470, 467, 168, 399, 483, 162,
- 409, 272, 368, 218, 219, 220, 221, 241, 242, 0,
- 243, 239, 0, 225, 244, 245, 310, 0, 253, 0,
- 0, 0, 0, 0, 0, 218, 219, 220, 221, 351,
- 351, 351, 243, 0, 0, 225, 244, 245, 0, 0,
- 74, 0, 0, 0, 159, 159, 159, 349, 0, 0,
- 228, 229, 230, 231, 232, 233, 234, 0, 0, 0,
+ 74, 169, 160, 110, 173, 329, 75, 243, 152, 243,
+ 85, 356, 432, 362, 434, 159, 154, 163, 243, 255,
+ 164, 225, 440, 110, 165, 167, 363, 153, 236, 256,
+ 174, 281, 357, 283, 285, 236, 171, 446, 282, 447,
+ 284, 286, 454, 455, 456, 457, 236, 178, 460, 238,
+ 231, 232, 233, 234, 233, 234, 238, 236, 110, 172,
+ 230, 231, 232, 233, 234, 236, 74, 238, 273, 74,
+ 403, 176, 148, 151, 274, 75, 86, 287, 238, 275,
+ 289, 155, 277, 179, 288, 276, 238, 290, 278, 166,
+ 148, 309, 291, 463, 292, 279, 293, 446, 294, 446,
+ 214, 280, 385, 180, 305, 446, 214, 386, 156, 157,
+ 306, 215, 446, 216, 307, 505, 506, 431, 353, 353,
+ 353, 247, 199, 248, 246, 170, 258, 208, 354, 355,
+ 490, 259, 491, 260, 296, 262, 177, 297, 263, 264,
+ 267, 269, 302, 311, 268, 350, 110, 309, 303, 304,
+ 252, 499, 199, 359, 308, 446, 446, 375, 376, 504,
+ 433, 412, 435, 436, 446, 437, 110, 512, 443, 446,
+ 449, 450, 305, 451, 270, 515, 452, 446, 474, 469,
+ 446, 484, 485, 185, 186, 489, 492, 494, 495, 498,
+ 175, 200, 509, 510, 204, 514, 518, 519, 470, 473,
+ 168, 400, 486, 369, 162, 410, 218, 219, 220, 221,
+ 241, 242, 239, 243, 272, 0, 225, 244, 245, 253,
+ 0, 0, 0, 310, 0, 0, 218, 219, 220, 221,
+ 351, 351, 351, 243, 0, 0, 225, 244, 245, 0,
+ 74, 0, 0, 159, 159, 159, 349, 0, 0, 0,
+ 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
0, 0, 0, 0, 0, 74, 74, 0, 0, 0,
- 0, 0, 228, 229, 230, 231, 232, 233, 234, 312,
- 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 326, 327, 328, 0, 0, 0, 0,
- 0, 408, 316, 317, 318, 320, 321, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 359, 360,
- 0, 0, 367, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 0, 0, 0,
+ 409, 0, 0, 316, 317, 318, 320, 321, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 360,
+ 361, 0, 0, 368, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
- 74, 0, 0, 0, 0, 0, 440, 74, 0, 0,
- 0, 0, 0, 403, 404, 0, 405, 0, 0, 0,
- 410, 74, 412, 0, 74, 181, 182, 183, 184, 0,
- 0, 187, 188, 189, 190, 191, 0, 0, 201, 202,
- 0, 413, 414, 415, 416, 417, 418, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428, 429, 0, 0,
- 0, 0, 0, 469, 0, 0, 0, 437, 0, 0,
+ 74, 0, 0, 0, 0, 0, 442, 0, 74, 0,
+ 0, 0, 0, 0, 404, 405, 0, 406, 0, 0,
+ 0, 411, 74, 413, 0, 74, 0, 181, 182, 183,
+ 184, 0, 0, 187, 188, 189, 190, 191, 0, 0,
+ 201, 202, 414, 415, 416, 417, 418, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 429, 430, 0,
+ 0, 0, 0, 0, 472, 0, 0, 0, 438, 439,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 74, 74, 74, 0, 110, 446, 0, 74, 465,
- 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
+ 0, 0, 74, 74, 74, 0, 110, 0, 448, 467,
+ 74, 0, 0, 0, 0, 0, 0, 74, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 74, 265, 74, 0, 0, 493, 0, 485,
- 0, 218, 219, 220, 221, 241, 242, 0, 243, 0,
- 0, 225, 244, 245, 74, 0, 0, 74, 0, 0,
- 0, 74, 0, 0, 0, 74, 507, 0, 74, 74,
- 0, 0, 0, 0, 0, 74, 74, 0, 0, 74,
- 0, 0, 0, 0, 0, 0, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 266, 0, 489, 0,
- 0, 376, 377, 378, 379, 380, 381, 382, 383, 0,
- 0, 218, 219, 220, 221, 241, 242, 0, 243, 497,
- 240, 225, 244, 245, 398, 398, 400, 401, 0, 218,
- 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
- 244, 245, 218, 219, 220, 221, 241, 242, 0, 243,
- 0, 0, 225, 244, 245, 0, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 0, 300, 0, 301,
- 0, 0, 0, 0, 0, 0, 228, 229, 230, 231,
- 232, 233, 234, 0, 0, 0, 398, 0, 0, 228,
- 229, 230, 231, 232, 233, 234, 0, 0, 0, 0,
- 301, 330, 331, 332, 333, 334, 335, 0, 336, 0,
- 0, 337, 338, 339, 451, 0, 0, 0, 0, 456,
- 457, 0, 459, 460, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 265, 74, 0, 74, 0, 74, 497,
+ 488, 218, 219, 220, 221, 241, 242, 0, 243, 0,
+ 0, 225, 244, 245, 0, 0, 0, 74, 0, 0,
+ 74, 74, 0, 0, 0, 74, 0, 0, 0, 74,
+ 513, 0, 0, 74, 74, 0, 0, 0, 0, 0,
+ 0, 74, 74, 0, 0, 74, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 266, 0, 0, 0,
+ 0, 0, 493, 377, 378, 379, 380, 381, 382, 383,
+ 384, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 240, 0, 0, 502, 0, 399, 399, 401, 402,
+ 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
+ 225, 244, 245, 218, 219, 220, 221, 241, 242, 0,
+ 243, 0, 0, 225, 244, 245, 218, 219, 220, 221,
+ 241, 242, 0, 243, 0, 0, 225, 244, 245, 0,
+ 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
+ 231, 232, 233, 234, 0, 0, 0, 0, 0, 399,
+ 228, 229, 230, 231, 232, 233, 234, 0, 0, 300,
+ 0, 301, 0, 228, 229, 230, 231, 232, 233, 234,
+ 0, 0, 0, 0, 301, 0, 0, 453, 0, 0,
+ 0, 0, 458, 459, 0, 461, 462, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 340, 341,
+ 0, 330, 331, 332, 333, 334, 335, 0, 336, 0,
+ 0, 337, 338, 339, 218, 219, 220, 221, 241, 242,
+ 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 476,
+ 477, 478, 479, 0, 480, 481, 482, 483, 340, 341,
342, 343, 344, 345, 346, 0, 0, 347, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 473, 474, 475, 476, 0,
- 477, 478, 479, 480, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 456, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 502, 113, 114, 1, 205, 206, 87, 117,
- 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
- 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
- 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
- 0, 0, 0, 0, 30, 31, 123, 33, 34, 35,
- 0, 36, 37, 124, 39, 125, 41, 126, 43, 127,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
- 105, 106, 107, 0, 0, 0, 108, 0, 0, 0,
- 130, 131, 0, 0, 0, 0, 0, 150, 0, 133,
- 0, 207, 113, 114, 1, 115, 116, 87, 117, 118,
+ 0, 228, 229, 230, 231, 232, 233, 234, 0, 358,
+ 0, 0, 0, 0, 0, 458, 113, 114, 1, 205,
+ 206, 87, 117, 118, 119, 120, 6, 88, 507, 89,
+ 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
+ 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
+ 101, 102, 103, 0, 0, 0, 0, 30, 31, 123,
+ 33, 34, 35, 0, 36, 37, 124, 39, 125, 41,
+ 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
+ 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
+ 0, 0, 0, 130, 131, 0, 0, 0, 0, 0,
+ 150, 0, 133, 0, 207, 113, 114, 1, 115, 116,
+ 87, 117, 118, 119, 120, 6, 88, 0, 89, 8,
+ 90, 91, 92, 12, 13, 93, 15, 94, 217, 18,
+ 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
+ 102, 103, 218, 219, 220, 221, 222, 223, 123, 224,
+ 34, 35, 225, 226, 227, 124, 39, 125, 41, 126,
+ 43, 127, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 128, 58, 59, 129, 61,
+ 62, 104, 105, 106, 107, 0, 0, 0, 108, 228,
+ 229, 230, 231, 232, 233, 234, 0, 0, 235, 150,
+ 0, 133, 113, 114, 1, 115, 116, 87, 117, 118,
119, 120, 6, 88, 0, 89, 8, 90, 91, 92,
- 12, 13, 93, 15, 94, 217, 18, 95, 96, 97,
+ 12, 249, 93, 15, 94, 17, 18, 95, 96, 97,
98, 22, 99, 24, 25, 100, 101, 102, 103, 218,
- 219, 220, 221, 222, 223, 123, 224, 34, 35, 225,
+ 219, 220, 221, 222, 223, 123, 224, 250, 251, 225,
226, 227, 124, 39, 125, 41, 126, 43, 127, 45,
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
55, 56, 128, 58, 59, 129, 61, 62, 104, 105,
106, 107, 0, 0, 0, 108, 228, 229, 230, 231,
232, 233, 234, 0, 0, 235, 150, 0, 133, 113,
114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
- 88, 0, 89, 8, 90, 91, 92, 12, 249, 93,
+ 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
- 24, 25, 100, 101, 102, 103, 218, 219, 220, 221,
- 222, 223, 123, 224, 250, 251, 225, 226, 227, 124,
+ 261, 25, 100, 101, 102, 103, 218, 219, 220, 221,
+ 222, 223, 123, 224, 34, 35, 225, 226, 227, 124,
39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
49, 50, 0, 51, 52, 53, 54, 55, 56, 128,
58, 59, 129, 61, 62, 104, 105, 106, 107, 0,
@@ -1055,7 +1064,7 @@ static const yytype_int16 yytable[] =
0, 0, 235, 150, 0, 133, 113, 114, 1, 115,
116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
- 18, 95, 96, 97, 98, 22, 99, 261, 25, 100,
+ 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
101, 102, 103, 218, 219, 220, 221, 222, 223, 123,
224, 34, 35, 225, 226, 227, 124, 39, 125, 41,
126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
@@ -1064,26 +1073,26 @@ static const yytype_int16 yytable[] =
228, 229, 230, 231, 232, 233, 234, 0, 0, 235,
150, 0, 133, 113, 114, 1, 115, 116, 87, 117,
118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
- 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
+ 92, 12, 13, 93, 15, 94, 271, 18, 95, 96,
97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
218, 219, 220, 221, 222, 223, 123, 224, 34, 35,
225, 226, 227, 124, 39, 125, 41, 126, 43, 127,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
105, 106, 107, 0, 0, 0, 108, 228, 229, 230,
- 231, 232, 233, 234, 0, 0, 235, 150, 0, 133,
+ 231, 232, 233, 234, 0, 0, 0, 150, 0, 133,
113, 114, 1, 115, 116, 87, 117, 118, 119, 120,
6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
- 93, 15, 94, 271, 18, 95, 96, 97, 98, 22,
- 99, 24, 25, 100, 101, 102, 103, 218, 219, 220,
- 221, 222, 223, 123, 224, 34, 35, 225, 226, 227,
+ 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
+ 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
+ 0, 30, 31, 123, 33, 34, 35, 0, 36, 37,
124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
128, 58, 59, 129, 61, 62, 104, 105, 106, 107,
- 0, 0, 0, 108, 228, 229, 230, 231, 232, 233,
- 234, 0, 0, 0, 150, 0, 133, 113, 114, 1,
+ 0, 0, 0, 108, 0, 0, 0, 130, 131, 0,
+ 0, 0, 0, 0, 150, 203, 133, 113, 114, 1,
115, 116, 87, 117, 118, 119, 120, 6, 88, 0,
- 89, 8, 90, 91, 92, 12, 13, 93, 15, 94,
+ 89, 121, 90, 91, 92, 12, 13, 93, 122, 94,
17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
123, 33, 34, 35, 0, 36, 37, 124, 39, 125,
@@ -1091,16 +1100,16 @@ static const yytype_int16 yytable[] =
0, 51, 52, 53, 54, 55, 56, 128, 58, 59,
129, 61, 62, 104, 105, 106, 107, 0, 0, 0,
108, 0, 0, 0, 130, 131, 0, 0, 0, 0,
- 0, 150, 203, 133, 113, 114, 1, 115, 116, 87,
- 117, 118, 119, 120, 6, 88, 0, 89, 121, 90,
- 91, 92, 12, 13, 93, 122, 94, 17, 18, 95,
+ 0, 132, 0, 133, 113, 114, 1, 115, 116, 87,
+ 117, 118, 119, 120, 6, 88, 0, 89, 8, 90,
+ 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
103, 0, 0, 0, 0, 30, 31, 123, 33, 34,
35, 0, 36, 37, 124, 39, 125, 41, 126, 43,
127, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 128, 58, 59, 129, 61, 62,
104, 105, 106, 107, 0, 0, 0, 108, 0, 0,
- 0, 130, 131, 0, 0, 0, 0, 0, 132, 0,
+ 0, 130, 131, 0, 0, 0, 0, 0, 150, 0,
133, 113, 114, 1, 115, 116, 87, 117, 118, 119,
120, 6, 88, 0, 89, 8, 90, 91, 92, 12,
13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
@@ -1110,7 +1119,7 @@ static const yytype_int16 yytable[] =
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 128, 58, 59, 129, 61, 62, 104, 105, 106,
107, 0, 0, 0, 108, 0, 0, 0, 130, 131,
- 0, 0, 0, 0, 0, 150, 0, 133, 113, 114,
+ 0, 0, 0, 0, 0, 132, 0, 133, 113, 114,
1, 115, 116, 87, 117, 118, 119, 120, 6, 88,
0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
94, 17, 18, 95, 96, 97, 98, 22, 99, 24,
@@ -1118,16 +1127,16 @@ static const yytype_int16 yytable[] =
31, 123, 33, 34, 35, 0, 36, 37, 124, 39,
125, 41, 126, 43, 127, 45, 46, 47, 48, 49,
50, 0, 51, 52, 53, 54, 55, 56, 128, 58,
- 59, 129, 61, 62, 104, 105, 106, 107, 0, 0,
+ 59, 60, 61, 62, 104, 105, 106, 107, 0, 0,
0, 108, 0, 0, 0, 130, 131, 0, 0, 0,
- 0, 0, 132, 0, 133, 113, 114, 1, 115, 116,
+ 0, 0, 150, 0, 133, 113, 114, 1, 115, 116,
87, 117, 118, 119, 120, 6, 88, 0, 89, 8,
90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
102, 103, 0, 0, 0, 0, 30, 31, 123, 33,
- 34, 35, 0, 36, 37, 124, 39, 125, 41, 126,
- 43, 127, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 128, 58, 59, 60, 61,
+ 34, 35, 0, 36, 37, 124, 388, 125, 389, 126,
+ 390, 127, 391, 46, 47, 48, 49, 50, 0, 51,
+ 52, 392, 393, 394, 56, 128, 58, 395, 396, 61,
62, 104, 105, 106, 107, 0, 0, 0, 108, 0,
0, 0, 130, 131, 0, 0, 0, 0, 0, 150,
0, 133, 113, 114, 1, 115, 116, 87, 117, 118,
@@ -1135,26 +1144,26 @@ static const yytype_int16 yytable[] =
12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
0, 0, 0, 30, 31, 123, 33, 34, 35, 0,
- 36, 37, 124, 387, 125, 388, 126, 389, 127, 390,
- 46, 47, 48, 49, 50, 0, 51, 52, 391, 392,
- 393, 56, 128, 58, 394, 395, 61, 62, 104, 105,
+ 36, 37, 124, 39, 125, 41, 126, 43, 127, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 392, 393,
+ 55, 56, 128, 58, 395, 396, 61, 62, 104, 105,
106, 107, 0, 0, 0, 108, 0, 0, 0, 130,
131, 0, 0, 0, 0, 0, 150, 0, 133, 113,
114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
- 30, 31, 123, 33, 34, 35, 0, 36, 37, 124,
+ 0, 0, 123, 33, 34, 35, 0, 36, 37, 124,
39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 391, 392, 55, 56, 128,
- 58, 394, 395, 61, 62, 104, 105, 106, 107, 0,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 128,
+ 58, 59, 129, 61, 62, 104, 105, 106, 107, 0,
0, 0, 108, 0, 0, 0, 130, 131, 0, 0,
0, 0, 0, 150, 0, 133, 113, 114, 1, 115,
116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
101, 102, 103, 0, 0, 0, 0, 0, 0, 123,
- 33, 34, 35, 0, 36, 37, 124, 39, 125, 41,
+ 33, 34, 35, 0, 0, 0, 124, 39, 125, 41,
126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
@@ -1163,134 +1172,156 @@ static const yytype_int16 yytable[] =
118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
- 0, 0, 0, 0, 0, 0, 123, 33, 34, 35,
+ 0, 0, 0, 0, 0, 0, 123, 0, 34, 35,
0, 0, 0, 124, 39, 125, 41, 126, 43, 127,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
105, 106, 107, 0, 0, 0, 108, 0, 0, 0,
- 130, 131, 0, 0, 0, 0, 0, 150, 0, 133,
- 113, 114, 1, 115, 116, 87, 117, 118, 119, 120,
- 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
- 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
- 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
- 0, 0, 0, 123, 0, 34, 35, 0, 0, 0,
- 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 128, 58, 59, 129, 61, 62, 104, 105, 106, 107,
- 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 150, 0, 133, 2, 3, 4,
+ 0, 0, 0, 0, 0, 0, 1, 150, 0, 133,
+ 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 0, 0, 0, 1, 66, 0, 0,
+ 2, 3, 4, 5, 6, 464, 67, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 0, 0, 465, 0, 1, 66, 0, 0,
+ 2, 3, 4, 5, 6, 0, 370, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 0, 0, 0, 0, 445, 66, 0, 0,
+ 0, 0, 0, 1, 0, 0, 370, 2, 3, 4,
5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 471, 1, 66, 0, 475, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 462, 67, 7, 8, 9, 10, 11, 12,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 463, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 369, 7, 8, 9, 10, 11, 12,
+ 0, 500, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 443, 66, 0, 0, 0, 0, 0,
- 1, 0, 0, 369, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 468,
- 1, 66, 0, 472, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 496, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 503, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 510,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 511,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 348, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 369, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 1, 66, 0, 0, 2, 3, 4, 5, 6, 0,
- 464, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 484, 1, 406, 407, 87, 2, 3, 4, 5, 6,
+ 0, 0, 501, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 508, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 516, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 517, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 348, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
+ 5, 6, 0, 466, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
+ 0, 0, 0, 487, 1, 407, 408, 87, 2, 3,
+ 4, 5, 6, 88, 0, 89, 8, 90, 91, 92,
+ 12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
+ 98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 104, 105,
+ 106, 107, 0, 1, 0, 108, 87, 2, 3, 4,
+ 5, 6, 88, 0, 89, 8, 90, 91, 92, 12,
+ 13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
+ 22, 99, 24, 25, 100, 101, 102, 103, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 104, 105, 106,
+ 107, 0, 1, 0, 108, 87, 2, 3, 4, 5,
+ 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
+ 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
+ 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 158, 58, 59, 60, 61, 62, 104, 105, 106, 107,
+ 0, 1, 0, 108, 87, 2, 3, 4, 5, 6,
88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 39, 40, 41, 42, 43, 44, 45, 192, 193, 194,
+ 195, 196, 0, 51, 197, 53, 54, 55, 198, 57,
58, 59, 60, 61, 62, 104, 105, 106, 107, 0,
1, 0, 108, 87, 2, 3, 4, 5, 6, 88,
0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
@@ -1298,162 +1329,147 @@ static const yytype_int16 yytable[] =
25, 100, 101, 102, 103, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 50, 0, 51, 52, 53, 54, 55, 254, 57, 58,
59, 60, 61, 62, 104, 105, 106, 107, 0, 1,
- 0, 108, 87, 2, 3, 4, 5, 6, 88, 0,
+ 0, 108, 87, 117, 118, 4, 5, 6, 88, 0,
89, 8, 90, 91, 92, 12, 13, 93, 15, 94,
17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 158, 58, 59,
- 60, 61, 62, 104, 105, 106, 107, 0, 1, 0,
- 108, 87, 2, 3, 4, 5, 6, 88, 0, 89,
- 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
- 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
- 101, 102, 103, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 192, 193, 194, 195, 196, 0,
- 51, 197, 53, 54, 55, 198, 57, 58, 59, 60,
- 61, 62, 104, 105, 106, 107, 0, 1, 0, 108,
- 87, 2, 3, 4, 5, 6, 88, 0, 89, 8,
- 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
- 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
- 102, 103, 0, 0, 0, 0, 30, 31, 32, 33,
+ 32, 33, 34, 35, 0, 36, 37, 124, 39, 125,
+ 41, 126, 43, 127, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 104, 105, 106, 107, 1, 0, 0,
+ 108, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
+ 19, 96, 21, 0, 22, 0, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 254, 57, 58, 59, 60, 61,
- 62, 104, 105, 106, 107, 0, 1, 0, 108, 87,
- 117, 118, 4, 5, 6, 88, 0, 89, 8, 90,
- 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
- 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
- 103, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 124, 39, 125, 41, 126, 43,
- 127, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 104, 105, 106, 107, 1, 0, 0, 108, 2, 3,
- 4, 5, 6, 0, 0, 7, 8, 9, 10, 0,
- 12, 13, 0, 15, 16, 17, 18, 19, 96, 21,
- 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 104, 64,
- 0, 0, 0, 0, 0, 66, 218, 219, 220, 221,
- 241, 242, 0, 243, 0, 0, 225, 244, 245, 218,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 104, 64, 0, 0, 0, 0, 0, 66, 218,
219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
244, 245, 218, 219, 220, 221, 241, 242, 0, 243,
- 0, 0, 225, 244, 245, 0, 0, 0, 0, 0,
- 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
- 0, 357, 0, 0, 0, 0, 228, 229, 230, 231,
- 232, 233, 234, 0, 439, 0, 0, 0, 0, 228,
- 229, 230, 231, 232, 233, 234, 0, 442, 218, 219,
- 220, 221, 241, 242, 0, 243, 0, 0, 225, 244,
- 245, 218, 219, 220, 221, 241, 242, 0, 243, 0,
- 0, 225, 244, 245, 0, 0, 0, 0, 0, 0,
- 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
- 225, 244, 245, 0, 0, 228, 229, 230, 231, 232,
- 233, 234, 0, 498, 0, 0, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 505, 298, 299, 0,
- 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
- 231, 232, 233, 234, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 330, 331, 332,
- 333, 334, 335, 0, 336, 0, 0, 337, 338, 339,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 225, 244, 245, 218, 219, 220, 221, 241,
+ 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
+ 0, 0, 0, 0, 0, 0, 228, 229, 230, 231,
+ 232, 233, 234, 0, 441, 0, 0, 0, 0, 228,
+ 229, 230, 231, 232, 233, 234, 0, 444, 0, 0,
+ 0, 0, 228, 229, 230, 231, 232, 233, 234, 0,
+ 468, 218, 219, 220, 221, 241, 242, 0, 243, 0,
+ 0, 225, 244, 245, 218, 219, 220, 221, 241, 242,
+ 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
+ 0, 0, 0, 218, 219, 220, 221, 241, 242, 0,
+ 243, 0, 0, 225, 244, 245, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 503, 0, 0, 0,
+ 0, 228, 229, 230, 231, 232, 233, 234, 0, 511,
+ 298, 299, 0, 0, 0, 0, 0, 0, 0, 0,
+ 228, 229, 230, 231, 232, 233, 234, 218, 219, 220,
+ 221, 241, 242, 0, 243, 0, 0, 225, 244, 245,
+ 330, 331, 332, 333, 334, 335, 0, 336, 0, 0,
+ 337, 338, 339, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 228, 229, 230, 231, 232, 233, 234, 0, 0,
- 0, 0, 0, 0, 340, 341, 342, 343, 344, 345,
- 346
+ 0, 0, 0, 0, 228, 229, 230, 231, 232, 233,
+ 234, 0, 0, 0, 0, 0, 0, 340, 341, 342,
+ 343, 344, 345, 346
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 29, 66, 9, 235, 348, 0, 350, 14,
- 49, 28, 31, 52, 84, 357, 21, 34, 23, 49,
- 19, 26, 99, 34, 29, 31, 103, 97, 27, 28,
- 371, 69, 374, 44, 69, 69, 49, 64, 76, 28,
- 69, 76, 76, 28, 69, 34, 98, 76, 100, 34,
- 148, 76, 91, 92, 93, 94, 95, 155, 0, 64,
- 65, 28, 92, 93, 94, 95, 66, 34, 166, 69,
- 300, 10, 11, 36, 37, 74, 69, 148, 97, 177,
- 19, 94, 95, 97, 155, 97, 23, 185, 27, 28,
- 431, 28, 433, 33, 98, 166, 98, 438, 102, 387,
- 388, 389, 390, 99, 445, 393, 177, 55, 28, 57,
- 97, 59, 28, 61, 185, 97, 98, 347, 249, 250,
- 251, 97, 464, 128, 63, 152, 250, 251, 133, 97,
- 103, 97, 97, 97, 103, 74, 97, 97, 97, 97,
- 97, 26, 484, 98, 97, 172, 487, 152, 102, 491,
- 102, 156, 44, 158, 495, 28, 498, 26, 499, 97,
- 16, 28, 97, 505, 100, 506, 97, 172, 509, 97,
- 97, 28, 97, 28, 28, 180, 15, 103, 28, 97,
- 71, 34, 121, 122, 97, 97, 97, 71, 97, 97,
- 129, 97, 69, 132, 441, 34, 28, 297, 458, 21,
- 306, 185, 265, 42, 43, 44, 45, 46, 47, -1,
- 49, 150, -1, 52, 53, 54, 214, -1, 157, -1,
- -1, -1, -1, -1, -1, 42, 43, 44, 45, 249,
- 250, 251, 49, -1, -1, 52, 53, 54, -1, -1,
- 240, -1, -1, -1, 249, 250, 251, 240, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ 0, 29, 21, 9, 66, 235, 0, 49, 14, 49,
+ 31, 23, 348, 84, 350, 21, 19, 23, 49, 34,
+ 26, 52, 358, 29, 27, 28, 97, 31, 148, 44,
+ 0, 69, 44, 69, 69, 155, 64, 372, 76, 375,
+ 76, 76, 388, 389, 390, 391, 166, 97, 394, 148,
+ 92, 93, 94, 95, 94, 95, 155, 177, 64, 65,
+ 91, 92, 93, 94, 95, 185, 66, 166, 28, 69,
+ 300, 74, 10, 11, 34, 69, 97, 69, 177, 28,
+ 69, 19, 28, 97, 76, 34, 185, 76, 34, 27,
+ 28, 98, 55, 100, 57, 28, 59, 432, 61, 434,
+ 99, 34, 23, 98, 103, 440, 99, 28, 36, 37,
+ 98, 97, 447, 97, 102, 97, 98, 347, 249, 250,
+ 251, 97, 128, 97, 152, 63, 33, 133, 250, 251,
+ 466, 97, 468, 97, 28, 97, 74, 28, 97, 97,
+ 97, 97, 103, 26, 172, 97, 152, 98, 103, 102,
+ 156, 487, 158, 28, 102, 490, 491, 97, 26, 495,
+ 16, 100, 97, 97, 499, 97, 172, 503, 97, 504,
+ 28, 28, 103, 28, 180, 511, 28, 512, 97, 15,
+ 515, 28, 71, 121, 122, 97, 34, 97, 97, 71,
+ 69, 129, 97, 97, 132, 97, 97, 97, 34, 443,
+ 28, 297, 460, 265, 21, 306, 42, 43, 44, 45,
+ 46, 47, 150, 49, 185, -1, 52, 53, 54, 157,
+ -1, -1, -1, 214, -1, -1, 42, 43, 44, 45,
+ 249, 250, 251, 49, -1, -1, 52, 53, 54, -1,
+ 240, -1, -1, 249, 250, 251, 240, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
-1, -1, -1, -1, -1, 265, 266, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, -1, -1, -1, -1,
- -1, 306, 241, 242, 243, 244, 245, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
- -1, -1, 261, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 233, 234, -1, -1, -1,
+ 306, -1, -1, 241, 242, 243, 244, 245, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
+ 258, -1, -1, 261, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 348, -1,
- 350, -1, -1, -1, -1, -1, 361, 357, -1, -1,
- -1, -1, -1, 302, 303, -1, 305, -1, -1, -1,
- 309, 371, 311, -1, 374, 117, 118, 119, 120, -1,
- -1, 123, 124, 125, 126, 127, -1, -1, 130, 131,
- -1, 330, 331, 332, 333, 334, 335, 336, 337, 338,
- 339, 340, 341, 342, 343, 344, 345, 346, -1, -1,
- -1, -1, -1, 440, -1, -1, -1, 356, -1, -1,
+ 350, -1, -1, -1, -1, -1, 362, -1, 358, -1,
+ -1, -1, -1, -1, 302, 303, -1, 305, -1, -1,
+ -1, 309, 372, 311, -1, 375, -1, 117, 118, 119,
+ 120, -1, -1, 123, 124, 125, 126, 127, -1, -1,
+ 130, 131, 330, 331, 332, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 343, 344, 345, 346, -1,
+ -1, -1, -1, -1, 442, -1, -1, -1, 356, 357,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 431, 432, 433, -1, 440, 375, -1, 438, 432,
- -1, -1, -1, -1, -1, 445, -1, -1, -1, -1,
+ -1, -1, 432, 433, 434, -1, 442, -1, 376, 433,
+ 440, -1, -1, -1, -1, -1, -1, 447, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 462, 34, 464, -1, -1, 472, -1, 462,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 484, -1, -1, 487, -1, -1,
- -1, 491, -1, -1, -1, 495, 501, -1, 498, 499,
- -1, -1, -1, -1, -1, 505, 506, -1, -1, 509,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, 467, -1,
- -1, 273, 274, 275, 276, 277, 278, 279, 280, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, 488,
- 33, 52, 53, 54, 296, 297, 298, 299, -1, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, 98, -1, 100,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, 358, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
- 100, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 386, -1, -1, -1, -1, 391,
- 392, -1, 394, 395, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 34, 464, -1, 466, -1, 468, 475,
+ 464, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, 487, -1, -1,
+ 490, 491, -1, -1, -1, 495, -1, -1, -1, 499,
+ 506, -1, -1, 503, 504, -1, -1, -1, -1, -1,
+ -1, 511, 512, -1, -1, 515, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
+ -1, -1, 470, 273, 274, 275, 276, 277, 278, 279,
+ 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 33, -1, -1, 492, -1, 296, 297, 298, 299,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, -1, 359,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ -1, 100, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, 100, -1, -1, 387, -1, -1,
+ -1, -1, 392, 393, -1, 395, 396, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 449,
+ 450, 451, 452, -1, 454, 455, 456, 457, 89, 90,
91, 92, 93, 94, 95, -1, -1, 98, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 447, 448, 449, 450, -1,
- 452, 453, 454, 455, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 482, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 494, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
- 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
- -1, 103, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, -1, 485, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 498, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
+ -1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
+ 99, -1, 101, -1, 103, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 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, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, -1, -1, 88, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, 98, 99,
+ -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
@@ -1491,17 +1507,17 @@ static const yytype_int16 yycheck[] =
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
+ 92, 93, 94, 95, -1, -1, -1, 99, -1, 101,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, 100, 101, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -1511,7 +1527,7 @@ static const yytype_int16 yycheck[] =
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, 100, 101, 5, 6, 7, 8, 9, 10,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -1564,7 +1580,7 @@ static const yytype_int16 yycheck[] =
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ -1, -1, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
@@ -1574,7 +1590,7 @@ static const yytype_int16 yycheck[] =
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 49, 50, 51, -1, -1, -1, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
@@ -1583,38 +1599,109 @@ static const yytype_int16 yycheck[] =
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
+ -1, -1, -1, -1, -1, -1, 48, -1, 50, 51,
-1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
- 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, -1, -1, 48, -1, 50, 51, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 7, 99, -1, 101, 11, 12, 13,
+ -1, -1, -1, -1, -1, -1, 7, 99, -1, 101,
+ 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, 16, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, 85, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, -1, -1, 87, 88, -1, -1,
+ -1, -1, -1, 7, -1, -1, 97, 11, 12, 13,
14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, 10, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
-1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
-1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, 16, 97, 18, 19, 20, 21, 22, 23,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
-1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
@@ -1622,89 +1709,40 @@ static const yytype_int16 yycheck[] =
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 87, 88, -1, -1, -1, -1, -1,
- 7, -1, -1, 97, 11, 12, 13, 14, 15, -1,
- -1, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
- 7, 88, -1, 10, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, 86,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- -1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
- 97, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
+ -1, -1, -1, 97, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, 7, -1, 88, 10, 11, 12, 13,
+ 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, 7, -1, 88, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
@@ -1727,63 +1765,39 @@ static const yytype_int16 yycheck[] =
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 7, -1,
- 88, 10, 11, 12, 13, 14, 15, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, 7, -1, 88,
- 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 78, 79, 80, 81, 82, 83, 84, 7, -1, -1,
+ 88, 11, 12, 13, 14, 15, -1, -1, 18, 19,
+ 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
- 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 7, -1, -1, 88, 11, 12,
- 13, 14, 15, -1, -1, 18, 19, 20, 21, -1,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, -1, 88, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 80, 81, 82, -1, -1, -1, -1, -1, 88, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, 79, 80, -1,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, 42, 43, 44,
45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
-1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95
+ 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1825,23 +1839,23 @@ static const yytype_uint8 yystos[] =
155, 155, 155, 155, 155, 155, 155, 155, 155, 159,
42, 43, 44, 45, 46, 47, 49, 52, 53, 54,
89, 90, 91, 92, 93, 94, 95, 98, 97, 120,
- 97, 137, 138, 140, 138, 138, 44, 97, 28, 155,
- 155, 84, 97, 110, 111, 112, 113, 155, 121, 97,
- 120, 133, 134, 135, 97, 26, 154, 154, 154, 154,
- 154, 154, 154, 154, 23, 28, 149, 56, 58, 60,
- 62, 71, 72, 73, 77, 78, 143, 144, 154, 143,
- 154, 154, 159, 155, 155, 155, 8, 9, 117, 152,
- 155, 100, 155, 155, 155, 155, 155, 155, 155, 155,
+ 97, 137, 138, 140, 138, 138, 23, 44, 97, 28,
+ 155, 155, 84, 97, 110, 111, 112, 113, 155, 121,
+ 97, 120, 133, 134, 135, 97, 26, 154, 154, 154,
+ 154, 154, 154, 154, 154, 23, 28, 149, 56, 58,
+ 60, 62, 71, 72, 73, 77, 78, 143, 144, 154,
+ 143, 154, 154, 159, 155, 155, 155, 8, 9, 117,
+ 152, 155, 100, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 159, 133, 16, 133, 97, 97, 97, 155, 133, 97,
- 117, 97, 97, 87, 135, 133, 155, 28, 28, 28,
- 28, 154, 149, 149, 149, 149, 154, 154, 149, 154,
- 154, 100, 16, 85, 97, 120, 15, 34, 86, 118,
- 113, 97, 10, 154, 154, 154, 154, 154, 154, 154,
- 154, 28, 71, 144, 97, 120, 97, 133, 34, 155,
- 97, 97, 115, 117, 71, 133, 85, 155, 97, 133,
- 97, 98, 154, 85, 97, 97, 133, 117, 97, 133,
- 86, 86, 97, 97
+ 155, 159, 133, 16, 133, 97, 97, 97, 155, 155,
+ 133, 97, 117, 97, 97, 87, 135, 133, 155, 28,
+ 28, 28, 28, 154, 149, 149, 149, 149, 154, 154,
+ 149, 154, 154, 100, 16, 85, 97, 120, 97, 15,
+ 34, 86, 118, 113, 97, 10, 154, 154, 154, 154,
+ 154, 154, 154, 154, 28, 71, 144, 97, 120, 97,
+ 133, 133, 34, 155, 97, 97, 115, 117, 71, 133,
+ 85, 86, 155, 97, 133, 97, 98, 154, 85, 97,
+ 97, 97, 133, 117, 97, 133, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1862,19 +1876,19 @@ static const yytype_uint8 yyr1[] =
123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
124, 124, 125, 125, 125, 125, 126, 126, 127, 127,
127, 128, 128, 129, 129, 129, 129, 130, 130, 130,
- 131, 131, 132, 133, 133, 134, 134, 135, 135, 136,
+ 130, 131, 131, 132, 133, 133, 134, 134, 135, 135,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 137, 138, 138, 139, 139, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 141, 141, 142, 142,
- 142, 142, 143, 143, 143, 143, 143, 144, 145, 145,
- 145, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 147, 147, 147, 147, 147, 148, 148, 148, 148,
- 149, 149, 150, 150, 150, 151, 151, 152, 152, 152,
- 153, 153, 154, 154, 155, 155, 155, 155, 155, 155,
+ 136, 136, 137, 138, 138, 139, 139, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 141, 141, 142,
+ 142, 142, 142, 143, 143, 143, 143, 143, 144, 145,
+ 145, 145, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 147, 147, 147, 147, 147, 148, 148, 148,
+ 148, 149, 149, 150, 150, 150, 151, 151, 152, 152,
+ 152, 153, 153, 154, 154, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 156, 156, 156, 156, 156, 156, 156,
+ 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 157, 157, 158, 158, 159, 159
+ 156, 156, 156, 157, 157, 158, 158, 159, 159
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1895,19 +1909,19 @@ static const yytype_int8 yyr2[] =
0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
- 4, 6, 4, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 2, 4, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 4, 6,
- 4, 6, 4, 6, 4, 6, 2, 2, 1, 1,
- 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
- 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
- 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
+ 9, 4, 6, 4, 0, 1, 1, 2, 1, 1,
+ 1, 1, 1, 1, 2, 4, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 2, 4,
+ 6, 4, 6, 4, 6, 4, 6, 2, 2, 1,
+ 1, 1, 5, 1, 1, 5, 2, 2, 2, 2,
+ 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 6, 6, 6, 6, 6, 1, 1, 1,
+ 1, 1, 1, 3, 3, 3, 1, 3, 3, 3,
+ 3, 2, 2, 1, 1, 1, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2181,37 +2195,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2185 "engines/director/lingo/lingo-gr.cpp"
+#line 2199 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2191 "engines/director/lingo/lingo-gr.cpp"
+#line 2205 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2197 "engines/director/lingo/lingo-gr.cpp"
+#line 2211 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2203 "engines/director/lingo/lingo-gr.cpp"
+#line 2217 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2209 "engines/director/lingo/lingo-gr.cpp"
+#line 2223 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2215 "engines/director/lingo/lingo-gr.cpp"
+#line 2229 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2479,7 +2493,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2483 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2490,7 +2504,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2494 "engines/director/lingo/lingo-gr.cpp"
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2500,37 +2514,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2510 "engines/director/lingo/lingo-gr.cpp"
+#line 2524 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2516 "engines/director/lingo/lingo-gr.cpp"
+#line 2530 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2522 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2528 "engines/director/lingo/lingo-gr.cpp"
+#line 2542 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2534 "engines/director/lingo/lingo-gr.cpp"
+#line 2548 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2541,7 +2555,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2545 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
@@ -2551,13 +2565,13 @@ yyreduce:
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2555 "engines/director/lingo/lingo-gr.cpp"
+#line 2569 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2561 "engines/director/lingo/lingo-gr.cpp"
+#line 2575 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2566,446 +2580,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2584 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2601 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2607 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2613 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2619 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2625 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2643 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2655 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2661 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2691 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2697 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2727 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2733 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2757 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2781 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2805 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2817 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2829 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2835 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2841 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2853 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2859 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2865 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2871 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2877 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2883 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2889 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2895 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2907 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2913 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2943 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2949 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2955 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2967 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2973 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2985 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2991 "engines/director/lingo/lingo-gr.cpp"
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 3003 "engines/director/lingo/lingo-gr.cpp"
+#line 3017 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* nonemptyidlist: ID */
@@ -3014,7 +3028,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 3018 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -3022,49 +3036,49 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3026 "engines/director/lingo/lingo-gr.cpp"
+#line 3040 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* proc: CMDID cmdargs '\n' */
#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3046 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* proc: tPUT cmdargs '\n' */
#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 3038 "engines/director/lingo/lingo-gr.cpp"
+#line 3052 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* proc: tGO cmdargs '\n' */
#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3058 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: tGO frameargs '\n' */
#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3050 "engines/director/lingo/lingo-gr.cpp"
+#line 3064 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPLAY cmdargs '\n' */
#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3056 "engines/director/lingo/lingo-gr.cpp"
+#line 3070 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tPLAY frameargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3062 "engines/director/lingo/lingo-gr.cpp"
+#line 3076 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tOPEN cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3068 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tOPEN expr tWITH expr '\n' */
@@ -3074,31 +3088,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3078 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tNEXT tREPEAT '\n' */
#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3084 "engines/director/lingo/lingo-gr.cpp"
+#line 3098 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tEXIT tREPEAT '\n' */
#line 410 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3090 "engines/director/lingo/lingo-gr.cpp"
+#line 3104 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tEXIT '\n' */
#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3096 "engines/director/lingo/lingo-gr.cpp"
+#line 3110 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tASSERTERROR stmtoneliner */
#line 412 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3102 "engines/director/lingo/lingo-gr.cpp"
+#line 3116 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* cmdargs: %empty */
@@ -3106,7 +3120,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3110 "engines/director/lingo/lingo-gr.cpp"
+#line 3124 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* cmdargs: expr */
@@ -3116,7 +3130,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3120 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* cmdargs: expr ',' nonemptyexprlist */
@@ -3125,7 +3139,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+#line 3143 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: expr expr_nounarymath */
@@ -3136,7 +3150,7 @@ yyreduce:
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3140 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
@@ -3146,7 +3160,7 @@ yyreduce:
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3164 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: '(' ')' */
@@ -3154,7 +3168,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3172 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -3163,7 +3177,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3167 "engines/director/lingo/lingo-gr.cpp"
+#line 3181 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* frameargs: tFRAME expr */
@@ -3173,7 +3187,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3177 "engines/director/lingo/lingo-gr.cpp"
+#line 3191 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* frameargs: tMOVIE expr */
@@ -3184,7 +3198,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3202 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -3195,7 +3209,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
+#line 3213 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* frameargs: expr tOF tMOVIE expr */
@@ -3206,7 +3220,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
+#line 3224 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3217,49 +3231,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3221 "engines/director/lingo/lingo-gr.cpp"
+#line 3235 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 482 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3227 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3233 "engines/director/lingo/lingo-gr.cpp"
+#line 3247 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 484 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3239 "engines/director/lingo/lingo-gr.cpp"
+#line 3253 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* asgn: tSET varorthe to expr '\n' */
#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3245 "engines/director/lingo/lingo-gr.cpp"
+#line 3259 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* definevars: tGLOBAL idlist '\n' */
#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3251 "engines/director/lingo/lingo-gr.cpp"
+#line 3265 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* definevars: tPROPERTY idlist '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3257 "engines/director/lingo/lingo-gr.cpp"
+#line 3271 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* definevars: tINSTANCE idlist '\n' */
#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3263 "engines/director/lingo/lingo-gr.cpp"
+#line 3277 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* ifstmt: tIF expr tTHEN stmt */
@@ -3268,14 +3282,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3272 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
#line 499 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3279 "engines/director/lingo/lingo-gr.cpp"
+#line 3293 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3286,7 +3300,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3290 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
@@ -3295,7 +3309,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3299 "engines/director/lingo/lingo-gr.cpp"
+#line 3313 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
@@ -3304,700 +3318,707 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3308 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
#line 517 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3315 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 521 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3336 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 523 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3343 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 525 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3350 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* tell: tTELL expr tTO stmtoneliner */
-#line 529 "engines/director/lingo/lingo-gr.y"
+ case 150: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
+#line 527 "engines/director/lingo/lingo-gr.y"
+ {
+ (yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 151: /* tell: tTELL expr tTO stmtoneliner */
+#line 531 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3345 "engines/director/lingo/lingo-gr.cpp"
+#line 3366 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 533 "engines/director/lingo/lingo-gr.y"
+ case 152: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 535 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3352 "engines/director/lingo/lingo-gr.cpp"
+#line 3373 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* when: tWHEN ID tTHEN expr */
-#line 537 "engines/director/lingo/lingo-gr.y"
+ case 153: /* when: tWHEN ID tTHEN expr */
+#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3358 "engines/director/lingo/lingo-gr.cpp"
+#line 3379 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* stmtlist: %empty */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 154: /* stmtlist: %empty */
+#line 541 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+#line 3385 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* nonemptystmtlist: stmtlistline */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 156: /* nonemptystmtlist: stmtlistline */
+#line 546 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3375 "engines/director/lingo/lingo-gr.cpp"
+#line 3396 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* nonemptystmtlist: stmtlist stmtlistline */
-#line 550 "engines/director/lingo/lingo-gr.y"
+ case 157: /* nonemptystmtlist: stmtlist stmtlistline */
+#line 552 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3385 "engines/director/lingo/lingo-gr.cpp"
+#line 3406 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* stmtlistline: '\n' */
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 158: /* stmtlistline: '\n' */
+#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3391 "engines/director/lingo/lingo-gr.cpp"
+#line 3412 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* simpleexpr_nounarymath: tINT */
-#line 564 "engines/director/lingo/lingo-gr.y"
+ case 160: /* simpleexpr_nounarymath: tINT */
+#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3418 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* simpleexpr_nounarymath: tFLOAT */
-#line 565 "engines/director/lingo/lingo-gr.y"
+ case 161: /* simpleexpr_nounarymath: tFLOAT */
+#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* simpleexpr_nounarymath: tSYMBOL */
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 162: /* simpleexpr_nounarymath: tSYMBOL */
+#line 568 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* simpleexpr_nounarymath: tSTRING */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 163: /* simpleexpr_nounarymath: tSTRING */
+#line 569 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3436 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 568 "engines/director/lingo/lingo-gr.y"
+ case 164: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3421 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 569 "engines/director/lingo/lingo-gr.y"
+ case 165: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 571 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3427 "engines/director/lingo/lingo-gr.cpp"
+#line 3448 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 166: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 572 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3433 "engines/director/lingo/lingo-gr.cpp"
+#line 3454 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* var: ID */
-#line 578 "engines/director/lingo/lingo-gr.y"
+ case 172: /* var: ID */
+#line 580 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3439 "engines/director/lingo/lingo-gr.cpp"
+#line 3460 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* chunk: tFIELD simpleexpr */
-#line 588 "engines/director/lingo/lingo-gr.y"
+ case 177: /* chunk: tFIELD simpleexpr */
+#line 590 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3448 "engines/director/lingo/lingo-gr.cpp"
+#line 3469 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* chunk: tCAST simpleexpr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 178: /* chunk: tCAST simpleexpr */
+#line 594 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3457 "engines/director/lingo/lingo-gr.cpp"
+#line 3478 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* chunk: tCHAR simpleexpr tOF simpleexpr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 179: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 598 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3464 "engines/director/lingo/lingo-gr.cpp"
+#line 3485 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 180: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 600 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3471 "engines/director/lingo/lingo-gr.cpp"
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* chunk: tWORD simpleexpr tOF simpleexpr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 181: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3478 "engines/director/lingo/lingo-gr.cpp"
+#line 3499 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 182: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 604 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3485 "engines/director/lingo/lingo-gr.cpp"
+#line 3506 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* chunk: tITEM simpleexpr tOF simpleexpr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 183: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 3513 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 184: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 608 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3499 "engines/director/lingo/lingo-gr.cpp"
+#line 3520 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* chunk: tLINE simpleexpr tOF simpleexpr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 185: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 610 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3506 "engines/director/lingo/lingo-gr.cpp"
+#line 3527 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 186: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 612 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3513 "engines/director/lingo/lingo-gr.cpp"
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* object: tSCRIPT simpleexpr */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 187: /* object: tSCRIPT simpleexpr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 3543 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* object: tWINDOW simpleexpr */
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 188: /* object: tWINDOW simpleexpr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3531 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 192: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3537 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 195: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3543 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* theobj: tSOUND simpleexpr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 196: /* theobj: tSOUND simpleexpr */
+#line 635 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3549 "engines/director/lingo/lingo-gr.cpp"
+#line 3570 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* theobj: tSPRITE simpleexpr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 197: /* theobj: tSPRITE simpleexpr */
+#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3555 "engines/director/lingo/lingo-gr.cpp"
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* menu: tMENU simpleexpr */
-#line 637 "engines/director/lingo/lingo-gr.y"
+ case 198: /* menu: tMENU simpleexpr */
+#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3561 "engines/director/lingo/lingo-gr.cpp"
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* writablethe: tTHE ID */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 199: /* writablethe: tTHE ID */
+#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3567 "engines/director/lingo/lingo-gr.cpp"
+#line 3588 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* writablethe: tTHE ID tOF theobj */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 200: /* writablethe: tTHE ID tOF theobj */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3573 "engines/director/lingo/lingo-gr.cpp"
+#line 3594 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 201: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3579 "engines/director/lingo/lingo-gr.cpp"
+#line 3600 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 202: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3585 "engines/director/lingo/lingo-gr.cpp"
+#line 3606 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 203: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3591 "engines/director/lingo/lingo-gr.cpp"
+#line 3612 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* thedatetime: tTHE tABBREV tDATE */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 204: /* thedatetime: tTHE tABBREV tDATE */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* thedatetime: tTHE tABBREV tTIME */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 205: /* thedatetime: tTHE tABBREV tTIME */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3603 "engines/director/lingo/lingo-gr.cpp"
+#line 3624 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* thedatetime: tTHE tABBR tDATE */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 206: /* thedatetime: tTHE tABBR tDATE */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3609 "engines/director/lingo/lingo-gr.cpp"
+#line 3630 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* thedatetime: tTHE tABBR tTIME */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 207: /* thedatetime: tTHE tABBR tTIME */
+#line 651 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3615 "engines/director/lingo/lingo-gr.cpp"
+#line 3636 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* thedatetime: tTHE tLONG tDATE */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 208: /* thedatetime: tTHE tLONG tDATE */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3621 "engines/director/lingo/lingo-gr.cpp"
+#line 3642 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* thedatetime: tTHE tLONG tTIME */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 209: /* thedatetime: tTHE tLONG tTIME */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3648 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* thedatetime: tTHE tSHORT tDATE */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 210: /* thedatetime: tTHE tSHORT tDATE */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3633 "engines/director/lingo/lingo-gr.cpp"
+#line 3654 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* thedatetime: tTHE tSHORT tTIME */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 211: /* thedatetime: tTHE tSHORT tTIME */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3660 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 657 "engines/director/lingo/lingo-gr.y"
+ case 212: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3666 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 658 "engines/director/lingo/lingo-gr.y"
+ case 213: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3651 "engines/director/lingo/lingo-gr.cpp"
+#line 3672 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 214: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3678 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 215: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3663 "engines/director/lingo/lingo-gr.cpp"
+#line 3684 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 216: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3669 "engines/director/lingo/lingo-gr.cpp"
+#line 3690 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* chunktype: tCHAR */
-#line 664 "engines/director/lingo/lingo-gr.y"
+ case 217: /* chunktype: tCHAR */
+#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3675 "engines/director/lingo/lingo-gr.cpp"
+#line 3696 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* chunktype: tWORD */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 218: /* chunktype: tWORD */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3681 "engines/director/lingo/lingo-gr.cpp"
+#line 3702 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* chunktype: tITEM */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 219: /* chunktype: tITEM */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3687 "engines/director/lingo/lingo-gr.cpp"
+#line 3708 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* chunktype: tLINE */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 220: /* chunktype: tLINE */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3693 "engines/director/lingo/lingo-gr.cpp"
+#line 3714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* list: '[' exprlist ']' */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 223: /* list: '[' exprlist ']' */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3699 "engines/director/lingo/lingo-gr.cpp"
+#line 3720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* list: '[' ':' ']' */
-#line 673 "engines/director/lingo/lingo-gr.y"
+ case 224: /* list: '[' ':' ']' */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3705 "engines/director/lingo/lingo-gr.cpp"
+#line 3726 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* list: '[' proplist ']' */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 225: /* list: '[' proplist ']' */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3711 "engines/director/lingo/lingo-gr.cpp"
+#line 3732 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* proplist: proppair */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 226: /* proplist: proppair */
+#line 679 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3720 "engines/director/lingo/lingo-gr.cpp"
+#line 3741 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* proplist: proplist ',' proppair */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 227: /* proplist: proplist ',' proppair */
+#line 683 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3728 "engines/director/lingo/lingo-gr.cpp"
+#line 3749 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* proppair: tSYMBOL ':' expr */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 228: /* proppair: tSYMBOL ':' expr */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3734 "engines/director/lingo/lingo-gr.cpp"
+#line 3755 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* proppair: ID ':' expr */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 229: /* proppair: ID ':' expr */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3740 "engines/director/lingo/lingo-gr.cpp"
+#line 3761 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* proppair: tSTRING ':' expr */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 230: /* proppair: tSTRING ':' expr */
+#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3746 "engines/director/lingo/lingo-gr.cpp"
+#line 3767 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* unarymath: '+' simpleexpr */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 231: /* unarymath: '+' simpleexpr */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3752 "engines/director/lingo/lingo-gr.cpp"
+#line 3773 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* unarymath: '-' simpleexpr */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 232: /* unarymath: '-' simpleexpr */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3758 "engines/director/lingo/lingo-gr.cpp"
+#line 3779 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* expr: expr '+' expr */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 237: /* expr: expr '+' expr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3764 "engines/director/lingo/lingo-gr.cpp"
+#line 3785 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* expr: expr '-' expr */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 238: /* expr: expr '-' expr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3770 "engines/director/lingo/lingo-gr.cpp"
+#line 3791 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* expr: expr '*' expr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 239: /* expr: expr '*' expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3776 "engines/director/lingo/lingo-gr.cpp"
+#line 3797 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* expr: expr '/' expr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 240: /* expr: expr '/' expr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3782 "engines/director/lingo/lingo-gr.cpp"
+#line 3803 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* expr: expr tMOD expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 241: /* expr: expr tMOD expr */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3788 "engines/director/lingo/lingo-gr.cpp"
+#line 3809 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* expr: expr '>' expr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 242: /* expr: expr '>' expr */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3794 "engines/director/lingo/lingo-gr.cpp"
+#line 3815 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* expr: expr '<' expr */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 243: /* expr: expr '<' expr */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3800 "engines/director/lingo/lingo-gr.cpp"
+#line 3821 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* expr: expr tEQ expr */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 244: /* expr: expr tEQ expr */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3806 "engines/director/lingo/lingo-gr.cpp"
+#line 3827 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* expr: expr tNEQ expr */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 245: /* expr: expr tNEQ expr */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3812 "engines/director/lingo/lingo-gr.cpp"
+#line 3833 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* expr: expr tGE expr */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 246: /* expr: expr tGE expr */
+#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3818 "engines/director/lingo/lingo-gr.cpp"
+#line 3839 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* expr: expr tLE expr */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 247: /* expr: expr tLE expr */
+#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3824 "engines/director/lingo/lingo-gr.cpp"
+#line 3845 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* expr: expr tAND expr */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr: expr tAND expr */
+#line 715 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3830 "engines/director/lingo/lingo-gr.cpp"
+#line 3851 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr: expr tOR expr */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr: expr tOR expr */
+#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3836 "engines/director/lingo/lingo-gr.cpp"
+#line 3857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr: expr '&' expr */
-#line 715 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr: expr '&' expr */
+#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3842 "engines/director/lingo/lingo-gr.cpp"
+#line 3863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr: expr tCONCAT expr */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr: expr tCONCAT expr */
+#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3848 "engines/director/lingo/lingo-gr.cpp"
+#line 3869 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr: expr tCONTAINS expr */
-#line 717 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr: expr tCONTAINS expr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3854 "engines/director/lingo/lingo-gr.cpp"
+#line 3875 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr: expr tSTARTS expr */
-#line 718 "engines/director/lingo/lingo-gr.y"
+ case 253: /* expr: expr tSTARTS expr */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3860 "engines/director/lingo/lingo-gr.cpp"
+#line 3881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3866 "engines/director/lingo/lingo-gr.cpp"
+#line 3887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 728 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3872 "engines/director/lingo/lingo-gr.cpp"
+#line 3893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 729 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3878 "engines/director/lingo/lingo-gr.cpp"
+#line 3899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 730 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3884 "engines/director/lingo/lingo-gr.cpp"
+#line 3905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3890 "engines/director/lingo/lingo-gr.cpp"
+#line 3911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3896 "engines/director/lingo/lingo-gr.cpp"
+#line 3917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3902 "engines/director/lingo/lingo-gr.cpp"
+#line 3923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3908 "engines/director/lingo/lingo-gr.cpp"
+#line 3929 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3914 "engines/director/lingo/lingo-gr.cpp"
+#line 3935 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3920 "engines/director/lingo/lingo-gr.cpp"
+#line 3941 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3926 "engines/director/lingo/lingo-gr.cpp"
+#line 3947 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3932 "engines/director/lingo/lingo-gr.cpp"
+#line 3953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3938 "engines/director/lingo/lingo-gr.cpp"
+#line 3959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3944 "engines/director/lingo/lingo-gr.cpp"
+#line 3965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3950 "engines/director/lingo/lingo-gr.cpp"
+#line 3971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3956 "engines/director/lingo/lingo-gr.cpp"
+#line 3977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3962 "engines/director/lingo/lingo-gr.cpp"
+#line 3983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 746 "engines/director/lingo/lingo-gr.y"
+ case 273: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3968 "engines/director/lingo/lingo-gr.cpp"
+#line 3989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 747 "engines/director/lingo/lingo-gr.y"
+ case 274: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3974 "engines/director/lingo/lingo-gr.cpp"
+#line 3995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* exprlist: %empty */
-#line 750 "engines/director/lingo/lingo-gr.y"
+ case 275: /* exprlist: %empty */
+#line 752 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3980 "engines/director/lingo/lingo-gr.cpp"
+#line 4001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* nonemptyexprlist: expr */
-#line 754 "engines/director/lingo/lingo-gr.y"
+ case 277: /* nonemptyexprlist: expr */
+#line 756 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3989 "engines/director/lingo/lingo-gr.cpp"
+#line 4010 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 758 "engines/director/lingo/lingo-gr.y"
+ case 278: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3997 "engines/director/lingo/lingo-gr.cpp"
+#line 4018 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 4001 "engines/director/lingo/lingo-gr.cpp"
+#line 4022 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4196,7 +4217,7 @@ yyreturn:
return yyresult;
}
-#line 763 "engines/director/lingo/lingo-gr.y"
+#line 765 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 3b8369f79a..706fb450d8 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -524,6 +524,8 @@ loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' {
$$ = new RepeatWithToNode($ID, $start, false, $end, $stmtlist); }
| tREPEAT tWITH ID tEQ expr[start] tDOWN tTO expr[end] '\n' stmtlist tENDREPEAT '\n' {
$$ = new RepeatWithToNode($ID, $start, true, $end, $stmtlist); }
+ | tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' {
+ $$ = new RepeatWithInNode($ID, $expr, $stmtlist); }
;
tell: tTELL expr tTO stmtoneliner {
Commit: 0ff9d8437c78dfafc42ee48c1a098f87ac71f0d8
https://github.com/scummvm/scummvm/commit/0ff9d8437c78dfafc42ee48c1a098f87ac71f0d8
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add function fallback to getObjectProp
Changed paths:
engines/director/lingo/lingo-the.cpp
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 21ddecabc2..85de260f80 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1632,6 +1632,10 @@ Datum Lingo::getObjectProp(Datum &obj, Common::String &propName) {
} else {
warning("Lingo::getObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
}
+ } else if (_builtinFuncs.contains(propName) && _builtinFuncs[propName].nargs == 1) {
+ push(obj);
+ LC::call(_builtinFuncs[propName], 1, true);
+ d = pop();
} else {
warning("Lingo::getObjectProp: Invalid object: %s", obj.asString(true).c_str());
}
Commit: 46785dbe26c06a890cf64bdafcf11aa9cf1a3afc
https://github.com/scummvm/scummvm/commit/46785dbe26c06a890cf64bdafcf11aa9cf1a3afc
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix list definitions
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 2a930a8ee1..3295885be8 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -634,7 +634,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 174
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4223
+#define YYLAST 3441
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
@@ -643,7 +643,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 278
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 520
+#define YYNSTATES 519
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -794,7 +794,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-347)
+#define YYPACT_NINF (-339)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -808,58 +808,58 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2289, -347, -347, -347, -347, -347, -347, -21, -347, 3506,
- 1422, 1519, -347, -347, 3506, -347, -4, -347, -347, 1616,
- 72, 3585, -347, 3506, -347, -347, 3506, 1616, 1422, 3506,
- -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -347, -347, 1519, 3506, 3506, 3900, -347, 30, 2289,
- -347, -347, -347, -347, 1616, -347, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, -50, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -14, 5, -347, -347, -347, -347, 1713, 1713, 1713,
- 1713, 1519, 1519, 1713, 1713, 1713, 1713, 1713, 3664, 1519,
- 1713, 1713, 1325, 741, 7, 14, 16, -347, -347, -347,
- -347, -347, -347, -347, -347, -347, -347, -347, 840, -347,
- 1519, 518, 3506, 24, 26, 937, 3506, 1519, 3743, -347,
- -347, -15, -347, 93, 34, 36, 1034, 38, 41, 42,
- 429, 43, 3506, -347, -347, -347, 44, 1131, -347, -347,
- 3506, -347, -347, -347, -347, 1228, 4115, -347, 40, 51,
- 54, 67, -38, -36, -35, 8, 11, 37, 106, 109,
- 4061, -347, -347, -347, 531, 39, 45, 47, 1, 12,
- -347, 4115, 52, 49, 1519, -347, -347, 117, 1519, 1519,
- 1519, 1519, 2004, 2004, 2198, 1519, 2101, 2101, 1519, 1519,
- 1519, 1519, 1519, 1519, 1519, 1519, -347, 629, -347, 544,
- 3096, 1519, 1519, 1519, 1519, 1519, 48, -347, -347, 3822,
- 3822, 3822, -12, 642, 125, -347, -347, 1519, 1519, -71,
- -347, 1519, -347, -347, -347, 3900, 3176, -347, 60, -347,
- -347, 132, 4128, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
- 1713, -347, -347, -347, -347, -347, -347, -347, -347, -347,
- -347, -347, -347, -347, -347, 79, 1810, 1907, 1713, 1713,
- 1519, -347, 1519, 1519, -347, 1519, 3427, -347, -347, 1519,
- 61, 1519, -31, -31, -31, -31, 184, 184, -347, -42,
- -31, -31, -31, -31, -42, -40, -40, -347, -347, 49,
- 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
- 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 3176, 144,
- 3176, -347, 65, -347, 66, 68, 1519, 1519, 3176, 1907,
- 3947, 4115, 3506, -347, -347, 71, -347, -347, 3960, -347,
- -347, -347, 2449, -347, -347, 3176, 1519, -347, 142, -347,
- 143, -347, 145, -347, 148, -347, -347, 1713, 79, 79,
- 79, 79, 1713, 1713, 79, 1713, 1713, -347, -347, -347,
- -347, -347, -347, -7, 4115, 4115, 4115, 39, 45, 69,
- -347, 4115, -347, 4115, -31, -31, -31, -31, 184, 184,
- -347, -42, -31, -31, -31, -31, -42, -40, -40, -347,
- -347, 49, 2369, 3256, 3176, -347, -347, -347, 3973, 164,
- 2536, -347, 3506, -71, -347, 81, -347, 2616, 4115, 1713,
- 1713, 1713, 1713, -347, 1713, 1713, 1713, 1713, -347, 153,
- 111, -347, -347, -347, 3336, 88, 3176, -347, 3176, 152,
- 1519, 90, 91, -347, -347, 3506, -347, -347, -347, -347,
- -347, -347, -347, -347, 118, 1713, -347, 3176, -347, -347,
- 2696, 2776, 1519, 4029, -347, 3176, 18, -347, 1713, 2856,
- 95, 96, 4042, 3176, 3176, -347, 3506, -347, 98, -347,
- -347, 3176, 2936, -347, -347, 3016, 99, 100, -347, -347
+ 2329, -339, -339, -339, -339, -339, -339, -20, -339, 2819,
+ 1462, 1559, -339, -339, 2819, -339, -1, -339, -339, 1656,
+ 11, 2898, -339, 2819, -339, -339, 2819, 1656, 1462, 2819,
+ -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -339, -339, 1559, 2819, 2819, 3213, -339, 21, 2329,
+ -339, -339, -339, -339, 1656, -339, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, -64, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -30, 12, -339, -339, -339, -339, 1753, 1753, 1753,
+ 1753, 1559, 1559, 1753, 1753, 1753, 1753, 1753, 2977, 1559,
+ 1753, 1753, 1365, 781, 15, -19, 6, -339, -339, -339,
+ -339, -339, -339, -339, -339, -339, -339, -339, 880, -339,
+ 1559, 287, 2819, 25, 32, 977, 2819, 1559, 3056, -339,
+ -339, -21, -339, 85, 46, 58, 1074, 61, 62, 63,
+ 162, 64, 2819, -339, -339, -339, 65, 1171, -339, -339,
+ 2819, -339, -339, -339, -339, 1268, 3292, -339, 1, 4,
+ 31, 91, -45, -27, -25, 26, 28, 56, 129, 135,
+ 3279, -339, -339, -339, 428, 66, 67, 69, -53, -22,
+ -339, 3292, 72, 68, 1559, -339, -339, 141, 1559, 1559,
+ 1559, 1559, 2044, 2044, 2238, 1559, 2141, 2141, 1559, 1559,
+ 1559, 1559, 1559, 1559, 1559, 1559, -339, 398, -339, 493,
+ 2409, 1559, 1559, 1559, 1559, 1559, 71, -339, -339, 3135,
+ 3135, 3135, -5, 512, 147, -339, -339, 1559, 1559, -56,
+ -339, 1559, -339, -339, -339, 3213, 2489, -339, 83, -339,
+ -339, 158, 3346, 1753, 1753, 1753, 1753, 1753, 1753, 1753,
+ 1753, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+ -339, -339, -339, -339, -339, 40, 1850, 1947, 1753, 1753,
+ 1559, -339, 1559, 1559, -339, 1559, 2740, -339, -339, 1559,
+ 90, 1559, -9, -9, -9, -9, 134, 134, -339, -40,
+ -9, -9, -9, -9, -40, -34, -34, -339, -339, 68,
+ 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
+ 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 2489, 169,
+ 2489, -339, 94, -339, 96, 97, 1559, 1559, 2489, 1947,
+ 572, 3292, 2819, -339, -339, -339, -56, -339, 585, -339,
+ -339, -339, 108, 2489, -339, 2489, 1559, -339, 170, -339,
+ 171, -339, 172, -339, 173, -339, -339, 1753, 40, 40,
+ 40, 40, 1753, 1753, 40, 1753, 1753, -339, -339, -339,
+ -339, -339, -339, 52, 3292, 3292, 3292, 66, 67, 99,
+ -339, 3292, -339, 3292, -9, -9, -9, -9, 134, 134,
+ -339, -40, -9, -9, -9, -9, -40, -34, -34, -339,
+ -339, 68, -10, 2569, -339, -339, -339, -339, 670, 47,
+ 111, -339, 2819, -339, -339, 115, -339, 203, 3292, 1753,
+ 1753, 1753, 1753, -339, 1753, 1753, 1753, 1753, -339, 190,
+ 148, -339, -339, -339, 2649, 123, 2489, -339, 2489, 187,
+ 1559, 125, 133, -339, 2819, -339, -339, -339, -339, -339,
+ -339, -339, -339, 163, 1753, -339, 2489, -339, -339, 150,
+ 151, 1559, 683, -339, 2489, 49, -339, 1753, 153, 139,
+ 142, 3260, 2489, -339, -339, 2819, -339, 144, -339, -339,
+ 2489, 160, -339, -339, 161, 152, 164, -339, -339
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -911,32 +911,32 @@ static const yytype_int16 yydefact[] =
227, 278, 165, 130, 265, 266, 263, 264, 267, 268,
260, 270, 271, 272, 262, 261, 269, 256, 257, 258,
259, 124, 0, 0, 10, 132, 133, 134, 0, 0,
- 0, 135, 95, 0, 115, 0, 157, 20, 129, 0,
+ 0, 135, 95, 16, 115, 0, 157, 20, 129, 0,
0, 0, 0, 192, 0, 0, 0, 0, 198, 0,
0, 196, 197, 126, 0, 0, 154, 143, 154, 0,
- 0, 0, 0, 16, 152, 21, 180, 184, 186, 182,
- 212, 214, 215, 213, 0, 0, 216, 154, 145, 142,
- 0, 0, 0, 0, 147, 154, 0, 22, 0, 0,
- 0, 0, 0, 154, 12, 19, 0, 195, 0, 144,
- 150, 154, 0, 23, 146, 0, 0, 0, 148, 149
+ 0, 0, 0, 152, 21, 180, 184, 186, 182, 212,
+ 214, 215, 213, 0, 0, 216, 154, 145, 142, 0,
+ 0, 0, 0, 147, 154, 0, 22, 0, 0, 0,
+ 0, 0, 154, 12, 19, 0, 195, 0, 144, 150,
+ 154, 0, 23, 146, 0, 0, 0, 148, 149
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -347, -347, -347, 121, -347, -347, -347, -347, -347, -244,
- -347, -347, 0, -6, -28, -347, 6, -62, -347, -3,
- 172, -347, -347, -347, -347, -347, -347, -347, -347, -336,
- -347, -335, -120, -19, -122, -347, -131, -347, -347, -96,
- -258, 183, -347, -347, -347, -346, -347, -347, -101, -347,
- 260, 62, 29, -99, 9, -230
+ -339, -339, -339, 179, -339, -339, -339, -339, -339, -116,
+ -339, -339, 0, -7, -28, -339, 5, -62, -339, -2,
+ 230, -339, -339, -339, -339, -339, -339, -339, -339, -338,
+ -339, -113, -121, -18, -97, -339, -118, -339, -339, -35,
+ -197, 243, -339, -339, -339, -282, -339, -339, -39, -339,
+ 301, 60, 84, -50, 54, -227
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
0, 68, 69, 70, 71, 72, 364, 365, 366, 367,
- 73, 496, 109, 134, 111, 112, 371, 76, 77, 135,
+ 73, 495, 109, 134, 111, 112, 371, 76, 77, 135,
136, 78, 257, 79, 80, 81, 82, 83, 84, 372,
373, 374, 137, 138, 352, 161, 139, 140, 141, 397,
398, 142, 143, 144, 295, 387, 145, 209, 210, 146,
@@ -948,82 +948,86 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 74, 169, 160, 110, 173, 329, 75, 243, 152, 243,
- 85, 356, 432, 362, 434, 159, 154, 163, 243, 255,
- 164, 225, 440, 110, 165, 167, 363, 153, 236, 256,
- 174, 281, 357, 283, 285, 236, 171, 446, 282, 447,
- 284, 286, 454, 455, 456, 457, 236, 178, 460, 238,
- 231, 232, 233, 234, 233, 234, 238, 236, 110, 172,
- 230, 231, 232, 233, 234, 236, 74, 238, 273, 74,
- 403, 176, 148, 151, 274, 75, 86, 287, 238, 275,
- 289, 155, 277, 179, 288, 276, 238, 290, 278, 166,
- 148, 309, 291, 463, 292, 279, 293, 446, 294, 446,
- 214, 280, 385, 180, 305, 446, 214, 386, 156, 157,
- 306, 215, 446, 216, 307, 505, 506, 431, 353, 353,
- 353, 247, 199, 248, 246, 170, 258, 208, 354, 355,
- 490, 259, 491, 260, 296, 262, 177, 297, 263, 264,
- 267, 269, 302, 311, 268, 350, 110, 309, 303, 304,
- 252, 499, 199, 359, 308, 446, 446, 375, 376, 504,
- 433, 412, 435, 436, 446, 437, 110, 512, 443, 446,
- 449, 450, 305, 451, 270, 515, 452, 446, 474, 469,
- 446, 484, 485, 185, 186, 489, 492, 494, 495, 498,
- 175, 200, 509, 510, 204, 514, 518, 519, 470, 473,
- 168, 400, 486, 369, 162, 410, 218, 219, 220, 221,
- 241, 242, 239, 243, 272, 0, 225, 244, 245, 253,
- 0, 0, 0, 310, 0, 0, 218, 219, 220, 221,
- 351, 351, 351, 243, 0, 0, 225, 244, 245, 0,
- 74, 0, 0, 159, 159, 159, 349, 0, 0, 0,
- 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
- 0, 0, 0, 0, 0, 74, 74, 0, 0, 0,
- 0, 0, 0, 228, 229, 230, 231, 232, 233, 234,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
- 322, 323, 324, 325, 326, 327, 328, 0, 0, 0,
- 409, 0, 0, 316, 317, 318, 320, 321, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 360,
- 361, 0, 0, 368, 0, 0, 0, 0, 0, 0,
+ 74, 169, 110, 160, 173, 75, 464, 152, 329, 243,
+ 432, 85, 434, 255, 159, 243, 163, 154, 356, 164,
+ 440, 174, 110, 256, 281, 165, 167, 236, 362, 273,
+ 153, 282, 275, 178, 236, 274, 171, 447, 276, 357,
+ 243, 363, 283, 225, 285, 236, 214, 156, 157, 284,
+ 305, 286, 231, 232, 233, 234, 236, 110, 172, 277,
+ 233, 234, 469, 385, 236, 278, 74, 179, 386, 74,
+ 148, 151, 176, 403, 75, 465, 306, 86, 215, 155,
+ 307, 470, 230, 231, 232, 233, 234, 166, 148, 218,
+ 219, 220, 221, 241, 242, 287, 243, 289, 238, 225,
+ 244, 245, 288, 216, 290, 238, 454, 455, 456, 457,
+ 180, 291, 460, 292, 214, 293, 238, 294, 258, 279,
+ 431, 199, 247, 170, 246, 280, 208, 238, 489, 248,
+ 490, 353, 353, 353, 177, 238, 228, 229, 230, 231,
+ 232, 233, 234, 259, 268, 110, 504, 505, 498, 252,
+ 309, 199, 463, 354, 355, 260, 503, 296, 262, 263,
+ 264, 267, 269, 297, 511, 110, 309, 311, 350, 302,
+ 303, 304, 514, 270, 308, 359, 218, 219, 220, 221,
+ 375, 185, 186, 243, 376, 433, 225, 244, 245, 200,
+ 412, 435, 204, 436, 437, 445, 265, 471, 449, 450,
+ 451, 452, 305, 369, 218, 219, 220, 221, 241, 242,
+ 239, 243, 473, 474, 225, 244, 245, 253, 483, 484,
+ 488, 491, 493, 228, 229, 230, 231, 232, 233, 234,
+ 494, 351, 351, 351, 497, 499, 508, 500, 507, 509,
+ 74, 513, 159, 159, 159, 349, 515, 516, 175, 517,
+ 443, 228, 229, 230, 231, 232, 233, 234, 168, 266,
+ 446, 518, 400, 485, 162, 74, 74, 410, 310, 272,
+ 0, 0, 0, 0, 0, 0, 0, 0, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
+ 324, 325, 326, 327, 328, 0, 0, 0, 0, 409,
+ 0, 316, 317, 318, 320, 321, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 360, 361, 0,
+ 240, 368, 0, 0, 0, 0, 0, 0, 0, 218,
+ 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
+ 244, 245, 0, 0, 0, 0, 0, 0, 74, 0,
+ 74, 0, 0, 0, 0, 442, 0, 0, 74, 0,
+ 0, 0, 404, 405, 0, 406, 0, 0, 0, 411,
+ 0, 413, 0, 74, 0, 74, 228, 229, 230, 231,
+ 232, 233, 234, 0, 0, 0, 0, 0, 0, 0,
+ 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 0, 0, 0,
+ 0, 0, 0, 0, 472, 0, 438, 439, 181, 182,
+ 183, 184, 0, 0, 187, 188, 189, 190, 191, 0,
+ 0, 201, 202, 74, 0, 110, 448, 0, 467, 0,
+ 330, 331, 332, 333, 334, 335, 0, 336, 0, 0,
+ 337, 338, 339, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 74, 0, 74, 496, 74, 487,
+ 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
+ 225, 244, 245, 0, 0, 0, 74, 340, 341, 342,
+ 343, 344, 345, 346, 74, 0, 347, 0, 512, 0,
+ 0, 0, 74, 0, 0, 0, 0, 0, 0, 0,
+ 74, 0, 0, 0, 0, 0, 0, 228, 229, 230,
+ 231, 232, 233, 234, 0, 0, 300, 0, 301, 0,
+ 492, 0, 0, 0, 0, 218, 219, 220, 221, 241,
+ 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
+ 0, 501, 0, 0, 218, 219, 220, 221, 241, 242,
+ 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
+ 0, 0, 0, 0, 377, 378, 379, 380, 381, 382,
+ 383, 384, 228, 229, 230, 231, 232, 233, 234, 0,
+ 0, 0, 0, 301, 0, 0, 0, 399, 399, 401,
+ 402, 228, 229, 230, 231, 232, 233, 234, 0, 358,
+ 0, 0, 0, 0, 218, 219, 220, 221, 241, 242,
+ 0, 243, 0, 0, 225, 244, 245, 218, 219, 220,
+ 221, 241, 242, 0, 243, 0, 0, 225, 244, 245,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
- 74, 0, 0, 0, 0, 0, 442, 0, 74, 0,
- 0, 0, 0, 0, 404, 405, 0, 406, 0, 0,
- 0, 411, 74, 413, 0, 74, 0, 181, 182, 183,
- 184, 0, 0, 187, 188, 189, 190, 191, 0, 0,
- 201, 202, 414, 415, 416, 417, 418, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428, 429, 430, 0,
- 0, 0, 0, 0, 472, 0, 0, 0, 438, 439,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 74, 74, 74, 0, 110, 0, 448, 467,
- 74, 0, 0, 0, 0, 0, 0, 74, 0, 0,
+ 399, 228, 229, 230, 231, 232, 233, 234, 0, 441,
+ 0, 0, 0, 0, 228, 229, 230, 231, 232, 233,
+ 234, 0, 444, 0, 0, 0, 0, 0, 453, 0,
+ 0, 0, 0, 458, 459, 0, 461, 462, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 265, 74, 0, 74, 0, 74, 497,
- 488, 218, 219, 220, 221, 241, 242, 0, 243, 0,
- 0, 225, 244, 245, 0, 0, 0, 74, 0, 0,
- 74, 74, 0, 0, 0, 74, 0, 0, 0, 74,
- 513, 0, 0, 74, 74, 0, 0, 0, 0, 0,
- 0, 74, 74, 0, 0, 74, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 266, 0, 0, 0,
- 0, 0, 493, 377, 378, 379, 380, 381, 382, 383,
- 384, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 240, 0, 0, 502, 0, 399, 399, 401, 402,
- 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
- 225, 244, 245, 218, 219, 220, 221, 241, 242, 0,
- 243, 0, 0, 225, 244, 245, 218, 219, 220, 221,
- 241, 242, 0, 243, 0, 0, 225, 244, 245, 0,
- 0, 0, 0, 0, 0, 0, 0, 228, 229, 230,
- 231, 232, 233, 234, 0, 0, 0, 0, 0, 399,
- 228, 229, 230, 231, 232, 233, 234, 0, 0, 300,
- 0, 301, 0, 228, 229, 230, 231, 232, 233, 234,
- 0, 0, 0, 0, 301, 0, 0, 453, 0, 0,
- 0, 0, 458, 459, 0, 461, 462, 0, 0, 0,
+ 0, 0, 218, 219, 220, 221, 241, 242, 0, 243,
+ 0, 0, 225, 244, 245, 218, 219, 220, 221, 241,
+ 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 330, 331, 332, 333, 334, 335, 0, 336, 0,
- 0, 337, 338, 339, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 476,
- 477, 478, 479, 0, 480, 481, 482, 483, 340, 341,
- 342, 343, 344, 345, 346, 0, 0, 347, 0, 0,
- 0, 228, 229, 230, 231, 232, 233, 234, 0, 358,
- 0, 0, 0, 0, 0, 458, 113, 114, 1, 205,
- 206, 87, 117, 118, 119, 120, 6, 88, 507, 89,
+ 475, 476, 477, 478, 0, 479, 480, 481, 482, 228,
+ 229, 230, 231, 232, 233, 234, 0, 468, 0, 0,
+ 0, 0, 228, 229, 230, 231, 232, 233, 234, 0,
+ 502, 0, 0, 0, 0, 458, 113, 114, 1, 205,
+ 206, 87, 117, 118, 119, 120, 6, 88, 506, 89,
8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
101, 102, 103, 0, 0, 0, 0, 30, 31, 123,
@@ -1186,14 +1190,22 @@ static const yytype_int16 yytable[] =
44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 0, 0, 0, 1, 66, 0, 0,
- 2, 3, 4, 5, 6, 464, 67, 7, 8, 9,
+ 2, 3, 4, 5, 6, 0, 67, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
+ 2, 3, 4, 5, 6, 0, 348, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 465, 0, 1, 66, 0, 0,
+ 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
2, 3, 4, 5, 6, 0, 370, 7, 8, 9,
10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
@@ -1201,104 +1213,47 @@ static const yytype_int16 yytable[] =
35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 0, 0, 445, 66, 0, 0,
- 0, 0, 0, 1, 0, 0, 370, 2, 3, 4,
- 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 471, 1, 66, 0, 475, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 500, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 501, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 508, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 516, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 517, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 348, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 370, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 1, 66, 0, 0, 2, 3, 4,
- 5, 6, 0, 466, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
- 0, 0, 0, 487, 1, 407, 408, 87, 2, 3,
+ 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
+ 2, 3, 4, 5, 6, 0, 466, 7, 8, 9,
+ 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
+ 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 0, 0, 0, 0, 0, 66, 0, 0,
+ 0, 0, 0, 0, 0, 0, 486, 1, 407, 408,
+ 87, 2, 3, 4, 5, 6, 88, 0, 89, 8,
+ 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
+ 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
+ 102, 103, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 104, 105, 106, 107, 0, 1, 0, 108, 87,
+ 2, 3, 4, 5, 6, 88, 0, 89, 8, 90,
+ 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
+ 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
+ 103, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 104, 105, 106, 107, 0, 1, 0, 108, 87, 2,
+ 3, 4, 5, 6, 88, 0, 89, 8, 90, 91,
+ 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
+ 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 158, 58, 59, 60, 61, 62, 104,
+ 105, 106, 107, 0, 1, 0, 108, 87, 2, 3,
4, 5, 6, 88, 0, 89, 8, 90, 91, 92,
12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 104, 105,
+ 192, 193, 194, 195, 196, 0, 51, 197, 53, 54,
+ 55, 198, 57, 58, 59, 60, 61, 62, 104, 105,
106, 107, 0, 1, 0, 108, 87, 2, 3, 4,
5, 6, 88, 0, 89, 8, 90, 91, 92, 12,
13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
@@ -1306,151 +1261,122 @@ static const yytype_int16 yytable[] =
0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 104, 105, 106,
- 107, 0, 1, 0, 108, 87, 2, 3, 4, 5,
+ 254, 57, 58, 59, 60, 61, 62, 104, 105, 106,
+ 107, 0, 1, 0, 108, 87, 117, 118, 4, 5,
6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 158, 58, 59, 60, 61, 62, 104, 105, 106, 107,
- 0, 1, 0, 108, 87, 2, 3, 4, 5, 6,
- 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
- 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
- 24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 192, 193, 194,
- 195, 196, 0, 51, 197, 53, 54, 55, 198, 57,
- 58, 59, 60, 61, 62, 104, 105, 106, 107, 0,
- 1, 0, 108, 87, 2, 3, 4, 5, 6, 88,
- 0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
- 94, 17, 18, 95, 96, 97, 98, 22, 99, 24,
- 25, 100, 101, 102, 103, 0, 0, 0, 0, 30,
+ 57, 58, 59, 60, 61, 62, 104, 105, 106, 107,
+ 1, 0, 0, 108, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 0, 12, 13, 0, 15,
+ 16, 17, 18, 19, 96, 21, 0, 22, 0, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 254, 57, 58,
- 59, 60, 61, 62, 104, 105, 106, 107, 0, 1,
- 0, 108, 87, 117, 118, 4, 5, 6, 88, 0,
- 89, 8, 90, 91, 92, 12, 13, 93, 15, 94,
- 17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
- 100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 36, 37, 124, 39, 125,
- 41, 126, 43, 127, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 104, 105, 106, 107, 1, 0, 0,
- 108, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
- 19, 96, 21, 0, 22, 0, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 104, 64, 0, 0, 0, 0, 0, 66, 218,
- 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
- 244, 245, 218, 219, 220, 221, 241, 242, 0, 243,
- 0, 0, 225, 244, 245, 218, 219, 220, 221, 241,
- 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
- 0, 0, 0, 0, 0, 0, 228, 229, 230, 231,
- 232, 233, 234, 0, 441, 0, 0, 0, 0, 228,
- 229, 230, 231, 232, 233, 234, 0, 444, 0, 0,
- 0, 0, 228, 229, 230, 231, 232, 233, 234, 0,
- 468, 218, 219, 220, 221, 241, 242, 0, 243, 0,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 104, 64, 0, 0, 0, 0,
+ 0, 66, 218, 219, 220, 221, 241, 242, 0, 243,
+ 0, 0, 225, 244, 245, 0, 0, 0, 0, 0,
+ 0, 218, 219, 220, 221, 241, 242, 0, 243, 0,
0, 225, 244, 245, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
- 0, 0, 0, 218, 219, 220, 221, 241, 242, 0,
- 243, 0, 0, 225, 244, 245, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 503, 0, 0, 0,
- 0, 228, 229, 230, 231, 232, 233, 234, 0, 511,
- 298, 299, 0, 0, 0, 0, 0, 0, 0, 0,
- 228, 229, 230, 231, 232, 233, 234, 218, 219, 220,
- 221, 241, 242, 0, 243, 0, 0, 225, 244, 245,
- 330, 331, 332, 333, 334, 335, 0, 336, 0, 0,
- 337, 338, 339, 0, 0, 0, 0, 0, 0, 0,
+ 0, 243, 0, 0, 225, 244, 245, 0, 0, 228,
+ 229, 230, 231, 232, 233, 234, 0, 510, 298, 299,
+ 0, 0, 0, 0, 0, 0, 0, 0, 228, 229,
+ 230, 231, 232, 233, 234, 0, 0, 0, 0, 0,
+ 0, 228, 229, 230, 231, 232, 233, 234, 330, 331,
+ 332, 333, 334, 335, 0, 336, 0, 0, 337, 338,
+ 339, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 228, 229, 230, 231, 232, 233,
- 234, 0, 0, 0, 0, 0, 0, 340, 341, 342,
- 343, 344, 345, 346
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 340, 341, 342, 343, 344,
+ 345, 346
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 21, 9, 66, 235, 0, 49, 14, 49,
- 31, 23, 348, 84, 350, 21, 19, 23, 49, 34,
- 26, 52, 358, 29, 27, 28, 97, 31, 148, 44,
- 0, 69, 44, 69, 69, 155, 64, 372, 76, 375,
- 76, 76, 388, 389, 390, 391, 166, 97, 394, 148,
- 92, 93, 94, 95, 94, 95, 155, 177, 64, 65,
- 91, 92, 93, 94, 95, 185, 66, 166, 28, 69,
- 300, 74, 10, 11, 34, 69, 97, 69, 177, 28,
- 69, 19, 28, 97, 76, 34, 185, 76, 34, 27,
- 28, 98, 55, 100, 57, 28, 59, 432, 61, 434,
- 99, 34, 23, 98, 103, 440, 99, 28, 36, 37,
- 98, 97, 447, 97, 102, 97, 98, 347, 249, 250,
- 251, 97, 128, 97, 152, 63, 33, 133, 250, 251,
- 466, 97, 468, 97, 28, 97, 74, 28, 97, 97,
- 97, 97, 103, 26, 172, 97, 152, 98, 103, 102,
- 156, 487, 158, 28, 102, 490, 491, 97, 26, 495,
- 16, 100, 97, 97, 499, 97, 172, 503, 97, 504,
- 28, 28, 103, 28, 180, 511, 28, 512, 97, 15,
- 515, 28, 71, 121, 122, 97, 34, 97, 97, 71,
- 69, 129, 97, 97, 132, 97, 97, 97, 34, 443,
- 28, 297, 460, 265, 21, 306, 42, 43, 44, 45,
- 46, 47, 150, 49, 185, -1, 52, 53, 54, 157,
- -1, -1, -1, 214, -1, -1, 42, 43, 44, 45,
- 249, 250, 251, 49, -1, -1, 52, 53, 54, -1,
- 240, -1, -1, 249, 250, 251, 240, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, -1, 265, 266, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, -1, -1, -1,
- 306, -1, -1, 241, 242, 243, 244, 245, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
- 258, -1, -1, 261, -1, -1, -1, -1, -1, -1,
+ 0, 29, 9, 21, 66, 0, 16, 14, 235, 49,
+ 348, 31, 350, 34, 21, 49, 23, 19, 23, 26,
+ 358, 0, 29, 44, 69, 27, 28, 148, 84, 28,
+ 31, 76, 28, 97, 155, 34, 64, 375, 34, 44,
+ 49, 97, 69, 52, 69, 166, 99, 36, 37, 76,
+ 103, 76, 92, 93, 94, 95, 177, 64, 65, 28,
+ 94, 95, 15, 23, 185, 34, 66, 97, 28, 69,
+ 10, 11, 74, 300, 69, 85, 98, 97, 97, 19,
+ 102, 34, 91, 92, 93, 94, 95, 27, 28, 42,
+ 43, 44, 45, 46, 47, 69, 49, 69, 148, 52,
+ 53, 54, 76, 97, 76, 155, 388, 389, 390, 391,
+ 98, 55, 394, 57, 99, 59, 166, 61, 33, 28,
+ 347, 128, 97, 63, 152, 34, 133, 177, 466, 97,
+ 468, 249, 250, 251, 74, 185, 89, 90, 91, 92,
+ 93, 94, 95, 97, 172, 152, 97, 98, 486, 156,
+ 98, 158, 100, 250, 251, 97, 494, 28, 97, 97,
+ 97, 97, 97, 28, 502, 172, 98, 26, 97, 103,
+ 103, 102, 510, 180, 102, 28, 42, 43, 44, 45,
+ 97, 121, 122, 49, 26, 16, 52, 53, 54, 129,
+ 100, 97, 132, 97, 97, 87, 34, 86, 28, 28,
+ 28, 28, 103, 265, 42, 43, 44, 45, 46, 47,
+ 150, 49, 97, 10, 52, 53, 54, 157, 28, 71,
+ 97, 34, 97, 89, 90, 91, 92, 93, 94, 95,
+ 97, 249, 250, 251, 71, 85, 97, 86, 85, 97,
+ 240, 97, 249, 250, 251, 240, 86, 86, 69, 97,
+ 366, 89, 90, 91, 92, 93, 94, 95, 28, 97,
+ 373, 97, 297, 460, 21, 265, 266, 306, 214, 185,
+ -1, -1, -1, -1, -1, -1, -1, -1, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, -1, -1, -1, -1, 306,
+ -1, 241, 242, 243, 244, 245, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 257, 258, -1,
+ 33, 261, -1, -1, -1, -1, -1, -1, -1, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, -1, -1, -1, 348, -1,
+ 350, -1, -1, -1, -1, 362, -1, -1, 358, -1,
+ -1, -1, 302, 303, -1, 305, -1, -1, -1, 309,
+ -1, 311, -1, 373, -1, 375, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, -1, -1, -1,
+ -1, -1, -1, -1, 442, -1, 356, 357, 117, 118,
+ 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
+ -1, 130, 131, 433, -1, 442, 376, -1, 433, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 464, -1, 466, 474, 468, 464,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, 486, 89, 90, 91,
+ 92, 93, 94, 95, 494, -1, 98, -1, 505, -1,
+ -1, -1, 502, -1, -1, -1, -1, -1, -1, -1,
+ 510, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, -1, 100, -1,
+ 470, -1, -1, -1, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ -1, 491, -1, -1, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ -1, -1, -1, -1, 273, 274, 275, 276, 277, 278,
+ 279, 280, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, -1, 100, -1, -1, -1, 296, 297, 298,
+ 299, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 348, -1,
- 350, -1, -1, -1, -1, -1, 362, -1, 358, -1,
- -1, -1, -1, -1, 302, 303, -1, 305, -1, -1,
- -1, 309, 372, 311, -1, 375, -1, 117, 118, 119,
- 120, -1, -1, 123, 124, 125, 126, 127, -1, -1,
- 130, 131, 330, 331, 332, 333, 334, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345, 346, -1,
- -1, -1, -1, -1, 442, -1, -1, -1, 356, 357,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 432, 433, 434, -1, 442, -1, 376, 433,
- 440, -1, -1, -1, -1, -1, -1, 447, -1, -1,
+ 359, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, 97, -1, -1, -1, -1, -1, 387, -1,
+ -1, -1, -1, 392, 393, -1, 395, 396, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 34, 464, -1, 466, -1, 468, 475,
- 464, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, 487, -1, -1,
- 490, 491, -1, -1, -1, 495, -1, -1, -1, 499,
- 506, -1, -1, 503, 504, -1, -1, -1, -1, -1,
- -1, 511, 512, -1, -1, 515, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
- -1, -1, 470, 273, 274, 275, 276, 277, 278, 279,
- 280, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 33, -1, -1, 492, -1, 296, 297, 298, 299,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, -1, -1, 359,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- -1, 100, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, 100, -1, -1, 387, -1, -1,
- -1, -1, 392, 393, -1, 395, 396, -1, -1, -1,
+ -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 449,
- 450, 451, 452, -1, 454, 455, 456, 457, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, 98, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, -1, 485, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 498, 18,
+ 449, 450, 451, 452, -1, 454, 455, 456, 457, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ 97, -1, -1, -1, -1, 484, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 497, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
@@ -1613,14 +1539,14 @@ static const yytype_int16 yycheck[] =
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, 16, 97, 18, 19, 20,
+ 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, 85, -1, 7, 88, -1, -1,
+ 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
@@ -1628,97 +1554,48 @@ static const yytype_int16 yycheck[] =
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, 87, 88, -1, -1,
- -1, -1, -1, 7, -1, -1, 97, 11, 12, 13,
- 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, 10, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, 86, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
- -1, -1, -1, 97, 7, 8, 9, 10, 11, 12,
+ 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
+ 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
+ 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, -1, -1, -1, 88, -1, -1,
+ -1, -1, -1, -1, -1, -1, 97, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
+ 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, -1, 7, -1, 88, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, 7, -1, 88, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
@@ -1742,62 +1619,29 @@ static const yytype_int16 yycheck[] =
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
- 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 7, -1, 88, 10, 11, 12, 13, 14, 15, 16,
- -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 7, -1, -1, 88, 11, 12, 13, 14, 15, -1,
+ -1, 18, 19, 20, 21, -1, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, -1, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 7,
- -1, 88, 10, 11, 12, 13, 14, 15, 16, -1,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 7, -1, -1,
- 88, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, -1, -1, -1, -1, -1, 88, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ -1, 88, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 79, 80,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1848,14 +1692,14 @@ static const yytype_uint8 yystos[] =
152, 155, 100, 155, 155, 155, 155, 155, 155, 155,
155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
155, 159, 133, 16, 133, 97, 97, 97, 155, 155,
- 133, 97, 117, 97, 97, 87, 135, 133, 155, 28,
+ 133, 97, 117, 113, 97, 87, 135, 133, 155, 28,
28, 28, 28, 154, 149, 149, 149, 149, 154, 154,
149, 154, 154, 100, 16, 85, 97, 120, 97, 15,
- 34, 86, 118, 113, 97, 10, 154, 154, 154, 154,
- 154, 154, 154, 154, 28, 71, 144, 97, 120, 97,
- 133, 133, 34, 155, 97, 97, 115, 117, 71, 133,
- 85, 86, 155, 97, 133, 97, 98, 154, 85, 97,
- 97, 97, 133, 117, 97, 133, 86, 86, 97, 97
+ 34, 86, 118, 97, 10, 154, 154, 154, 154, 154,
+ 154, 154, 154, 28, 71, 144, 97, 120, 97, 133,
+ 133, 34, 155, 97, 97, 115, 117, 71, 133, 85,
+ 86, 155, 97, 133, 97, 98, 154, 85, 97, 97,
+ 97, 133, 117, 97, 133, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1895,7 +1739,7 @@ static const yytype_uint8 yyr1[] =
static const yytype_int8 yyr2[] =
{
0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
- 5, 4, 5, 0, 1, 1, 3, 1, 1, 8,
+ 5, 4, 5, 0, 1, 1, 2, 1, 1, 8,
5, 0, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2195,37 +2039,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2199 "engines/director/lingo/lingo-gr.cpp"
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2205 "engines/director/lingo/lingo-gr.cpp"
+#line 2049 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2211 "engines/director/lingo/lingo-gr.cpp"
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2217 "engines/director/lingo/lingo-gr.cpp"
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2223 "engines/director/lingo/lingo-gr.cpp"
+#line 2067 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2229 "engines/director/lingo/lingo-gr.cpp"
+#line 2073 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2493,7 +2337,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2341 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2504,7 +2348,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2352 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2514,37 +2358,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2518 "engines/director/lingo/lingo-gr.cpp"
+#line 2362 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2524 "engines/director/lingo/lingo-gr.cpp"
+#line 2368 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2530 "engines/director/lingo/lingo-gr.cpp"
+#line 2374 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2536 "engines/director/lingo/lingo-gr.cpp"
+#line 2380 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2542 "engines/director/lingo/lingo-gr.cpp"
+#line 2386 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2548 "engines/director/lingo/lingo-gr.cpp"
+#line 2392 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2555,23 +2399,23 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
- case 16: /* nonemptymethodlist: methodlist '\n' methodlistline */
+ case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
#line 261 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
- (yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
+ (yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
- (yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 2569 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 2413 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2575 "engines/director/lingo/lingo-gr.cpp"
+#line 2419 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2580,446 +2424,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2584 "engines/director/lingo/lingo-gr.cpp"
+#line 2428 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2609 "engines/director/lingo/lingo-gr.cpp"
+#line 2453 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2459 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2465 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2477 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2483 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2489 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2495 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2501 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2507 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2513 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2519 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2531 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2537 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2543 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2549 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2555 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2561 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2567 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2585 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2909 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2915 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2921 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2993 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 3005 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 3011 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 3017 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* nonemptyidlist: ID */
@@ -3028,7 +2872,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 2876 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -3036,49 +2880,49 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3040 "engines/director/lingo/lingo-gr.cpp"
+#line 2884 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* proc: CMDID cmdargs '\n' */
#line 397 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 3046 "engines/director/lingo/lingo-gr.cpp"
+#line 2890 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* proc: tPUT cmdargs '\n' */
#line 398 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 3052 "engines/director/lingo/lingo-gr.cpp"
+#line 2896 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* proc: tGO cmdargs '\n' */
#line 399 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3058 "engines/director/lingo/lingo-gr.cpp"
+#line 2902 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: tGO frameargs '\n' */
#line 400 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3064 "engines/director/lingo/lingo-gr.cpp"
+#line 2908 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPLAY cmdargs '\n' */
#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3070 "engines/director/lingo/lingo-gr.cpp"
+#line 2914 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tPLAY frameargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3076 "engines/director/lingo/lingo-gr.cpp"
+#line 2920 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tOPEN cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 2926 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tOPEN expr tWITH expr '\n' */
@@ -3088,31 +2932,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3092 "engines/director/lingo/lingo-gr.cpp"
+#line 2936 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tNEXT tREPEAT '\n' */
#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3098 "engines/director/lingo/lingo-gr.cpp"
+#line 2942 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tEXIT tREPEAT '\n' */
#line 410 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3104 "engines/director/lingo/lingo-gr.cpp"
+#line 2948 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tEXIT '\n' */
#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3110 "engines/director/lingo/lingo-gr.cpp"
+#line 2954 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tASSERTERROR stmtoneliner */
#line 412 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3116 "engines/director/lingo/lingo-gr.cpp"
+#line 2960 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* cmdargs: %empty */
@@ -3120,7 +2964,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 2968 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* cmdargs: expr */
@@ -3130,7 +2974,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 2978 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* cmdargs: expr ',' nonemptyexprlist */
@@ -3139,7 +2983,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3143 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: expr expr_nounarymath */
@@ -3150,7 +2994,7 @@ yyreduce:
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
+#line 2998 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
@@ -3160,7 +3004,7 @@ yyreduce:
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3008 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: '(' ')' */
@@ -3168,7 +3012,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3172 "engines/director/lingo/lingo-gr.cpp"
+#line 3016 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -3177,7 +3021,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3181 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* frameargs: tFRAME expr */
@@ -3187,7 +3031,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3191 "engines/director/lingo/lingo-gr.cpp"
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* frameargs: tMOVIE expr */
@@ -3198,7 +3042,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3202 "engines/director/lingo/lingo-gr.cpp"
+#line 3046 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -3209,7 +3053,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3213 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* frameargs: expr tOF tMOVIE expr */
@@ -3220,7 +3064,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3224 "engines/director/lingo/lingo-gr.cpp"
+#line 3068 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3231,49 +3075,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3235 "engines/director/lingo/lingo-gr.cpp"
+#line 3079 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 482 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3241 "engines/director/lingo/lingo-gr.cpp"
+#line 3085 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 483 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3247 "engines/director/lingo/lingo-gr.cpp"
+#line 3091 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 484 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3253 "engines/director/lingo/lingo-gr.cpp"
+#line 3097 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* asgn: tSET varorthe to expr '\n' */
#line 485 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3259 "engines/director/lingo/lingo-gr.cpp"
+#line 3103 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* definevars: tGLOBAL idlist '\n' */
#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3265 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* definevars: tPROPERTY idlist '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3271 "engines/director/lingo/lingo-gr.cpp"
+#line 3115 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* definevars: tINSTANCE idlist '\n' */
#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3277 "engines/director/lingo/lingo-gr.cpp"
+#line 3121 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* ifstmt: tIF expr tTHEN stmt */
@@ -3282,14 +3126,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+#line 3130 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
#line 499 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3293 "engines/director/lingo/lingo-gr.cpp"
+#line 3137 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3300,7 +3144,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3148 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
@@ -3309,7 +3153,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3313 "engines/director/lingo/lingo-gr.cpp"
+#line 3157 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
@@ -3318,42 +3162,42 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3166 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
#line 517 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3173 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 521 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3180 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 523 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3343 "engines/director/lingo/lingo-gr.cpp"
+#line 3187 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 525 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3350 "engines/director/lingo/lingo-gr.cpp"
+#line 3194 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
#line 527 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3357 "engines/director/lingo/lingo-gr.cpp"
+#line 3201 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* tell: tTELL expr tTO stmtoneliner */
@@ -3362,26 +3206,26 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3366 "engines/director/lingo/lingo-gr.cpp"
+#line 3210 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 535 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3373 "engines/director/lingo/lingo-gr.cpp"
+#line 3217 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* when: tWHEN ID tTHEN expr */
#line 539 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3379 "engines/director/lingo/lingo-gr.cpp"
+#line 3223 "engines/director/lingo/lingo-gr.cpp"
break;
case 154: /* stmtlist: %empty */
#line 541 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3385 "engines/director/lingo/lingo-gr.cpp"
+#line 3229 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* nonemptystmtlist: stmtlistline */
@@ -3392,71 +3236,71 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3396 "engines/director/lingo/lingo-gr.cpp"
+#line 3240 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* nonemptystmtlist: stmtlist stmtlistline */
+ case 157: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
#line 552 "engines/director/lingo/lingo-gr.y"
- {
+ {
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3406 "engines/director/lingo/lingo-gr.cpp"
+#line 3250 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* stmtlistline: '\n' */
#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3412 "engines/director/lingo/lingo-gr.cpp"
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
break;
case 160: /* simpleexpr_nounarymath: tINT */
#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3418 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* simpleexpr_nounarymath: tFLOAT */
#line 567 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+#line 3268 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* simpleexpr_nounarymath: tSYMBOL */
#line 568 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3430 "engines/director/lingo/lingo-gr.cpp"
+#line 3274 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* simpleexpr_nounarymath: tSTRING */
#line 569 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3436 "engines/director/lingo/lingo-gr.cpp"
+#line 3280 "engines/director/lingo/lingo-gr.cpp"
break;
case 164: /* simpleexpr_nounarymath: tNOT simpleexpr */
#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
#line 571 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3448 "engines/director/lingo/lingo-gr.cpp"
+#line 3292 "engines/director/lingo/lingo-gr.cpp"
break;
case 166: /* simpleexpr_nounarymath: '(' expr ')' */
#line 572 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3454 "engines/director/lingo/lingo-gr.cpp"
+#line 3298 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* var: ID */
#line 580 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3460 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* chunk: tFIELD simpleexpr */
@@ -3465,7 +3309,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3469 "engines/director/lingo/lingo-gr.cpp"
+#line 3313 "engines/director/lingo/lingo-gr.cpp"
break;
case 178: /* chunk: tCAST simpleexpr */
@@ -3474,63 +3318,63 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3478 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
break;
case 179: /* chunk: tCHAR simpleexpr tOF simpleexpr */
#line 598 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3485 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
case 180: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
#line 600 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 3336 "engines/director/lingo/lingo-gr.cpp"
break;
case 181: /* chunk: tWORD simpleexpr tOF simpleexpr */
#line 602 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3499 "engines/director/lingo/lingo-gr.cpp"
+#line 3343 "engines/director/lingo/lingo-gr.cpp"
break;
case 182: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
#line 604 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3506 "engines/director/lingo/lingo-gr.cpp"
+#line 3350 "engines/director/lingo/lingo-gr.cpp"
break;
case 183: /* chunk: tITEM simpleexpr tOF simpleexpr */
#line 606 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3513 "engines/director/lingo/lingo-gr.cpp"
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
break;
case 184: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
#line 608 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3520 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
break;
case 185: /* chunk: tLINE simpleexpr tOF simpleexpr */
#line 610 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3527 "engines/director/lingo/lingo-gr.cpp"
+#line 3371 "engines/director/lingo/lingo-gr.cpp"
break;
case 186: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
#line 612 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3534 "engines/director/lingo/lingo-gr.cpp"
+#line 3378 "engines/director/lingo/lingo-gr.cpp"
break;
case 187: /* object: tSCRIPT simpleexpr */
@@ -3539,7 +3383,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3543 "engines/director/lingo/lingo-gr.cpp"
+#line 3387 "engines/director/lingo/lingo-gr.cpp"
break;
case 188: /* object: tWINDOW simpleexpr */
@@ -3548,187 +3392,187 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3396 "engines/director/lingo/lingo-gr.cpp"
break;
case 192: /* the: tTHE tLAST chunktype inof simpleexpr */
#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3402 "engines/director/lingo/lingo-gr.cpp"
break;
case 195: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3408 "engines/director/lingo/lingo-gr.cpp"
break;
case 196: /* theobj: tSOUND simpleexpr */
#line 635 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 3414 "engines/director/lingo/lingo-gr.cpp"
break;
case 197: /* theobj: tSPRITE simpleexpr */
#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 3420 "engines/director/lingo/lingo-gr.cpp"
break;
case 198: /* menu: tMENU simpleexpr */
#line 639 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+#line 3426 "engines/director/lingo/lingo-gr.cpp"
break;
case 199: /* writablethe: tTHE ID */
#line 641 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3588 "engines/director/lingo/lingo-gr.cpp"
+#line 3432 "engines/director/lingo/lingo-gr.cpp"
break;
case 200: /* writablethe: tTHE ID tOF theobj */
#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3594 "engines/director/lingo/lingo-gr.cpp"
+#line 3438 "engines/director/lingo/lingo-gr.cpp"
break;
case 201: /* writablethe: tTHE tNUMBER tOF theobj */
#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3600 "engines/director/lingo/lingo-gr.cpp"
+#line 3444 "engines/director/lingo/lingo-gr.cpp"
break;
case 202: /* thedatetime: tTHE tABBREVIATED tDATE */
#line 646 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3606 "engines/director/lingo/lingo-gr.cpp"
+#line 3450 "engines/director/lingo/lingo-gr.cpp"
break;
case 203: /* thedatetime: tTHE tABBREVIATED tTIME */
#line 647 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3612 "engines/director/lingo/lingo-gr.cpp"
+#line 3456 "engines/director/lingo/lingo-gr.cpp"
break;
case 204: /* thedatetime: tTHE tABBREV tDATE */
#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+#line 3462 "engines/director/lingo/lingo-gr.cpp"
break;
case 205: /* thedatetime: tTHE tABBREV tTIME */
#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3624 "engines/director/lingo/lingo-gr.cpp"
+#line 3468 "engines/director/lingo/lingo-gr.cpp"
break;
case 206: /* thedatetime: tTHE tABBR tDATE */
#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3630 "engines/director/lingo/lingo-gr.cpp"
+#line 3474 "engines/director/lingo/lingo-gr.cpp"
break;
case 207: /* thedatetime: tTHE tABBR tTIME */
#line 651 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3636 "engines/director/lingo/lingo-gr.cpp"
+#line 3480 "engines/director/lingo/lingo-gr.cpp"
break;
case 208: /* thedatetime: tTHE tLONG tDATE */
#line 652 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3642 "engines/director/lingo/lingo-gr.cpp"
+#line 3486 "engines/director/lingo/lingo-gr.cpp"
break;
case 209: /* thedatetime: tTHE tLONG tTIME */
#line 653 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3648 "engines/director/lingo/lingo-gr.cpp"
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
break;
case 210: /* thedatetime: tTHE tSHORT tDATE */
#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3654 "engines/director/lingo/lingo-gr.cpp"
+#line 3498 "engines/director/lingo/lingo-gr.cpp"
break;
case 211: /* thedatetime: tTHE tSHORT tTIME */
#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3660 "engines/director/lingo/lingo-gr.cpp"
+#line 3504 "engines/director/lingo/lingo-gr.cpp"
break;
case 212: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3666 "engines/director/lingo/lingo-gr.cpp"
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
break;
case 213: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3672 "engines/director/lingo/lingo-gr.cpp"
+#line 3516 "engines/director/lingo/lingo-gr.cpp"
break;
case 214: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3678 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
break;
case 215: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3684 "engines/director/lingo/lingo-gr.cpp"
+#line 3528 "engines/director/lingo/lingo-gr.cpp"
break;
case 216: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3690 "engines/director/lingo/lingo-gr.cpp"
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
break;
case 217: /* chunktype: tCHAR */
#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3696 "engines/director/lingo/lingo-gr.cpp"
+#line 3540 "engines/director/lingo/lingo-gr.cpp"
break;
case 218: /* chunktype: tWORD */
#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3702 "engines/director/lingo/lingo-gr.cpp"
+#line 3546 "engines/director/lingo/lingo-gr.cpp"
break;
case 219: /* chunktype: tITEM */
#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3708 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
break;
case 220: /* chunktype: tLINE */
#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3714 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
break;
case 223: /* list: '[' exprlist ']' */
#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3720 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
break;
case 224: /* list: '[' ':' ']' */
#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3726 "engines/director/lingo/lingo-gr.cpp"
+#line 3570 "engines/director/lingo/lingo-gr.cpp"
break;
case 225: /* list: '[' proplist ']' */
#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3732 "engines/director/lingo/lingo-gr.cpp"
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
break;
case 226: /* proplist: proppair */
@@ -3737,7 +3581,7 @@ yyreduce:
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3741 "engines/director/lingo/lingo-gr.cpp"
+#line 3585 "engines/director/lingo/lingo-gr.cpp"
break;
case 227: /* proplist: proplist ',' proppair */
@@ -3745,259 +3589,259 @@ yyreduce:
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3749 "engines/director/lingo/lingo-gr.cpp"
+#line 3593 "engines/director/lingo/lingo-gr.cpp"
break;
case 228: /* proppair: tSYMBOL ':' expr */
#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3755 "engines/director/lingo/lingo-gr.cpp"
+#line 3599 "engines/director/lingo/lingo-gr.cpp"
break;
case 229: /* proppair: ID ':' expr */
#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3761 "engines/director/lingo/lingo-gr.cpp"
+#line 3605 "engines/director/lingo/lingo-gr.cpp"
break;
case 230: /* proppair: tSTRING ':' expr */
#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3767 "engines/director/lingo/lingo-gr.cpp"
+#line 3611 "engines/director/lingo/lingo-gr.cpp"
break;
case 231: /* unarymath: '+' simpleexpr */
#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3773 "engines/director/lingo/lingo-gr.cpp"
+#line 3617 "engines/director/lingo/lingo-gr.cpp"
break;
case 232: /* unarymath: '-' simpleexpr */
#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3779 "engines/director/lingo/lingo-gr.cpp"
+#line 3623 "engines/director/lingo/lingo-gr.cpp"
break;
case 237: /* expr: expr '+' expr */
#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3785 "engines/director/lingo/lingo-gr.cpp"
+#line 3629 "engines/director/lingo/lingo-gr.cpp"
break;
case 238: /* expr: expr '-' expr */
#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3791 "engines/director/lingo/lingo-gr.cpp"
+#line 3635 "engines/director/lingo/lingo-gr.cpp"
break;
case 239: /* expr: expr '*' expr */
#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3797 "engines/director/lingo/lingo-gr.cpp"
+#line 3641 "engines/director/lingo/lingo-gr.cpp"
break;
case 240: /* expr: expr '/' expr */
#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3803 "engines/director/lingo/lingo-gr.cpp"
+#line 3647 "engines/director/lingo/lingo-gr.cpp"
break;
case 241: /* expr: expr tMOD expr */
#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3809 "engines/director/lingo/lingo-gr.cpp"
+#line 3653 "engines/director/lingo/lingo-gr.cpp"
break;
case 242: /* expr: expr '>' expr */
#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3815 "engines/director/lingo/lingo-gr.cpp"
+#line 3659 "engines/director/lingo/lingo-gr.cpp"
break;
case 243: /* expr: expr '<' expr */
#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3821 "engines/director/lingo/lingo-gr.cpp"
+#line 3665 "engines/director/lingo/lingo-gr.cpp"
break;
case 244: /* expr: expr tEQ expr */
#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3827 "engines/director/lingo/lingo-gr.cpp"
+#line 3671 "engines/director/lingo/lingo-gr.cpp"
break;
case 245: /* expr: expr tNEQ expr */
#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3833 "engines/director/lingo/lingo-gr.cpp"
+#line 3677 "engines/director/lingo/lingo-gr.cpp"
break;
case 246: /* expr: expr tGE expr */
#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3839 "engines/director/lingo/lingo-gr.cpp"
+#line 3683 "engines/director/lingo/lingo-gr.cpp"
break;
case 247: /* expr: expr tLE expr */
#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3845 "engines/director/lingo/lingo-gr.cpp"
+#line 3689 "engines/director/lingo/lingo-gr.cpp"
break;
case 248: /* expr: expr tAND expr */
#line 715 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3851 "engines/director/lingo/lingo-gr.cpp"
+#line 3695 "engines/director/lingo/lingo-gr.cpp"
break;
case 249: /* expr: expr tOR expr */
#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3857 "engines/director/lingo/lingo-gr.cpp"
+#line 3701 "engines/director/lingo/lingo-gr.cpp"
break;
case 250: /* expr: expr '&' expr */
#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3863 "engines/director/lingo/lingo-gr.cpp"
+#line 3707 "engines/director/lingo/lingo-gr.cpp"
break;
case 251: /* expr: expr tCONCAT expr */
#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3869 "engines/director/lingo/lingo-gr.cpp"
+#line 3713 "engines/director/lingo/lingo-gr.cpp"
break;
case 252: /* expr: expr tCONTAINS expr */
#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3875 "engines/director/lingo/lingo-gr.cpp"
+#line 3719 "engines/director/lingo/lingo-gr.cpp"
break;
case 253: /* expr: expr tSTARTS expr */
#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3881 "engines/director/lingo/lingo-gr.cpp"
+#line 3725 "engines/director/lingo/lingo-gr.cpp"
break;
case 256: /* expr_nounarymath: expr_nounarymath '+' expr */
#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3887 "engines/director/lingo/lingo-gr.cpp"
+#line 3731 "engines/director/lingo/lingo-gr.cpp"
break;
case 257: /* expr_nounarymath: expr_nounarymath '-' expr */
#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3893 "engines/director/lingo/lingo-gr.cpp"
+#line 3737 "engines/director/lingo/lingo-gr.cpp"
break;
case 258: /* expr_nounarymath: expr_nounarymath '*' expr */
#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3899 "engines/director/lingo/lingo-gr.cpp"
+#line 3743 "engines/director/lingo/lingo-gr.cpp"
break;
case 259: /* expr_nounarymath: expr_nounarymath '/' expr */
#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3905 "engines/director/lingo/lingo-gr.cpp"
+#line 3749 "engines/director/lingo/lingo-gr.cpp"
break;
case 260: /* expr_nounarymath: expr_nounarymath tMOD expr */
#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3911 "engines/director/lingo/lingo-gr.cpp"
+#line 3755 "engines/director/lingo/lingo-gr.cpp"
break;
case 261: /* expr_nounarymath: expr_nounarymath '>' expr */
#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3917 "engines/director/lingo/lingo-gr.cpp"
+#line 3761 "engines/director/lingo/lingo-gr.cpp"
break;
case 262: /* expr_nounarymath: expr_nounarymath '<' expr */
#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3923 "engines/director/lingo/lingo-gr.cpp"
+#line 3767 "engines/director/lingo/lingo-gr.cpp"
break;
case 263: /* expr_nounarymath: expr_nounarymath tEQ expr */
#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3929 "engines/director/lingo/lingo-gr.cpp"
+#line 3773 "engines/director/lingo/lingo-gr.cpp"
break;
case 264: /* expr_nounarymath: expr_nounarymath tNEQ expr */
#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3935 "engines/director/lingo/lingo-gr.cpp"
+#line 3779 "engines/director/lingo/lingo-gr.cpp"
break;
case 265: /* expr_nounarymath: expr_nounarymath tGE expr */
#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3941 "engines/director/lingo/lingo-gr.cpp"
+#line 3785 "engines/director/lingo/lingo-gr.cpp"
break;
case 266: /* expr_nounarymath: expr_nounarymath tLE expr */
#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3947 "engines/director/lingo/lingo-gr.cpp"
+#line 3791 "engines/director/lingo/lingo-gr.cpp"
break;
case 267: /* expr_nounarymath: expr_nounarymath tAND expr */
#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3953 "engines/director/lingo/lingo-gr.cpp"
+#line 3797 "engines/director/lingo/lingo-gr.cpp"
break;
case 268: /* expr_nounarymath: expr_nounarymath tOR expr */
#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3959 "engines/director/lingo/lingo-gr.cpp"
+#line 3803 "engines/director/lingo/lingo-gr.cpp"
break;
case 269: /* expr_nounarymath: expr_nounarymath '&' expr */
#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3965 "engines/director/lingo/lingo-gr.cpp"
+#line 3809 "engines/director/lingo/lingo-gr.cpp"
break;
case 270: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3971 "engines/director/lingo/lingo-gr.cpp"
+#line 3815 "engines/director/lingo/lingo-gr.cpp"
break;
case 271: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3977 "engines/director/lingo/lingo-gr.cpp"
+#line 3821 "engines/director/lingo/lingo-gr.cpp"
break;
case 272: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3983 "engines/director/lingo/lingo-gr.cpp"
+#line 3827 "engines/director/lingo/lingo-gr.cpp"
break;
case 273: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3989 "engines/director/lingo/lingo-gr.cpp"
+#line 3833 "engines/director/lingo/lingo-gr.cpp"
break;
case 274: /* sprite: tSPRITE expr tWITHIN simpleexpr */
#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3995 "engines/director/lingo/lingo-gr.cpp"
+#line 3839 "engines/director/lingo/lingo-gr.cpp"
break;
case 275: /* exprlist: %empty */
#line 752 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 4001 "engines/director/lingo/lingo-gr.cpp"
+#line 3845 "engines/director/lingo/lingo-gr.cpp"
break;
case 277: /* nonemptyexprlist: expr */
@@ -4006,7 +3850,7 @@ yyreduce:
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 4010 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
break;
case 278: /* nonemptyexprlist: nonemptyexprlist ',' expr */
@@ -4014,11 +3858,11 @@ yyreduce:
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4018 "engines/director/lingo/lingo-gr.cpp"
+#line 3862 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 4022 "engines/director/lingo/lingo-gr.cpp"
+#line 3866 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 706fb450d8..e686a06092 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -258,7 +258,7 @@ nonemptymethodlist: methodlistline[item] {
list->push_back($item);
}
$$ = list; }
- | methodlist[prev] '\n' methodlistline[item] {
+ | nonemptymethodlist[prev] methodlistline[item] {
if ($item) {
$prev->push_back($item);
}
@@ -549,7 +549,7 @@ nonemptystmtlist:
list->push_back($item);
}
$$ = list; }
- | stmtlist[prev] stmtlistline[item] {
+ | nonemptystmtlist[prev] stmtlistline[item] {
if ($item) {
$prev->push_back($item);
}
Commit: ba8671f7e019d5a681815c84d2faabacb135275e
https://github.com/scummvm/scummvm/commit/ba8671f7e019d5a681815c84d2faabacb135275e
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add buildbot warnings to compiler
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 52c8cae709..5e7d8805a6 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -295,7 +295,7 @@ void LingoCompiler::codeVarRef(const Common::String &name) {
if (_methodVars->contains(name)) {
type = (*_methodVars)[name];
} else {
- warning("LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
+ warning("BUILDBOT: LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
@@ -322,7 +322,7 @@ void LingoCompiler::codeVarGet(const Common::String &name) {
if (_methodVars->contains(name)) {
type = (*_methodVars)[name];
} else {
- warning("LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
+ warning("BUILDBOT: LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
@@ -366,7 +366,7 @@ void LingoCompiler::registerFactory(Common::String &name) {
if (!g_lingo->_globalvars.contains(name)) {
g_lingo->_globalvars[name] = _assemblyContext;
} else {
- warning("Factory '%s' already defined", name.c_str());
+ warning("BUILDBOT: Factory '%s' already defined", name.c_str());
}
}
@@ -573,7 +573,7 @@ bool LingoCompiler::visitPutBeforeNode(PutBeforeNode *node) {
bool LingoCompiler::codeTheFieldSet(int entity, Node *id, const Common::String &field) {
Common::String fieldId = Common::String::format("%d%s", entity, field.c_str());
if (!g_lingo->_theEntityFields.contains(fieldId)) {
- warning("LingoCompiler::codeTheFieldSet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
+ warning("BUILDBOT: LingoCompiler::codeTheFieldSet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
return false;
}
COMPILE(id);
@@ -595,7 +595,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
codeInt(0); // No field
return true;
}
- warning("LingoCompiler:visitSetNode: Unhandled the entity '%s'", the->prop->c_str());
+ warning("BUILDBOT: LingoCompiler:visitSetNode: Unhandled the entity '%s'", the->prop->c_str());
return false;
}
@@ -628,7 +628,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
MenuItemNode *menuItem = static_cast<MenuItemNode *>(the->obj);
Common::String fieldId = Common::String::format("%d%s", kTheMenuItem, the->prop->c_str());
if (!g_lingo->_theEntityFields.contains(fieldId)) {
- warning("LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", the->prop->c_str());
+ warning("BUILDBOT: LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", the->prop->c_str());
return false;
}
COMPILE(menuItem->arg1)
@@ -675,7 +675,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
return true;
}
- warning("LingoCompiler::visitSetNode: Unhandled the field %s", the->prop->c_str());
+ warning("BUILDBOT: LingoCompiler::visitSetNode: Unhandled the field %s", the->prop->c_str());
return false;
}
@@ -895,7 +895,7 @@ bool LingoCompiler::visitRepeatWithInNode(RepeatWithInNode *node) {
bool LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
if (!_currentLoop) {
- warning("LingoCompiler::visitNextRepeatNode: next repeat not inside repeat loop");
+ warning("BUILDBOT: LingoCompiler::visitNextRepeatNode: next repeat not inside repeat loop");
return false;
}
_currentLoop->nextRepeats.push_back(_currentAssembly->size());
@@ -907,7 +907,7 @@ bool LingoCompiler::visitNextRepeatNode(NextRepeatNode *node) {
bool LingoCompiler::visitExitRepeatNode(ExitRepeatNode *node) {
if (!_currentLoop) {
- warning("LingoCompiler::visitExitRepeatLoop: exit repeat not inside repeat loop");
+ warning("BUILDBOT: LingoCompiler::visitExitRepeatLoop: exit repeat not inside repeat loop");
return false;
}
_currentLoop->exitRepeats.push_back(_currentAssembly->size());
@@ -1108,7 +1108,7 @@ bool LingoCompiler::visitTheNode(TheNode *node) {
return true;
}
- warning("LingoCompiler:visitTheNode: Unhandled the entity '%s'", node->prop->c_str());
+ warning("BUILDBOT: LingoCompiler:visitTheNode: Unhandled the entity '%s'", node->prop->c_str());
return false;
}
@@ -1117,7 +1117,7 @@ bool LingoCompiler::visitTheNode(TheNode *node) {
bool LingoCompiler::codeTheFieldGet(int entity, Node *id, const Common::String &field) {
Common::String fieldId = Common::String::format("%d%s", entity, field.c_str());
if (!g_lingo->_theEntityFields.contains(fieldId)) {
- warning("LingoCompiler::codeTheFieldGet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
+ warning("BUILDBOT: LingoCompiler::codeTheFieldGet: Unhandled the field %s of %s", field.c_str(), g_lingo->entity2str(entity));
return false;
}
COMPILE(id);
@@ -1154,7 +1154,7 @@ bool LingoCompiler::visitTheOfNode(TheOfNode *node) {
MenuItemNode *menuItem = static_cast<MenuItemNode *>(node->obj);
Common::String fieldId = Common::String::format("%d%s", kTheMenuItem, node->prop->c_str());
if (!g_lingo->_theEntityFields.contains(fieldId)) {
- warning("LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", node->prop->c_str());
+ warning("BUILDBOT: LingoCompiler:visitTheNode: Unhandled the field %s of menuItem", node->prop->c_str());
return false;
}
COMPILE(menuItem->arg1)
@@ -1207,7 +1207,7 @@ bool LingoCompiler::visitTheOfNode(TheOfNode *node) {
return true;
}
- warning("LingoCompiler::visitTheOfNode: Unhandled the field %s", node->prop->c_str());
+ warning("BUILDBOT: LingoCompiler::visitTheOfNode: Unhandled the field %s", node->prop->c_str());
return false;
}
@@ -1234,7 +1234,7 @@ bool LingoCompiler::visitTheNumberOfNode(TheNumberOfNode *node) {
case kNumberOfMenuItems:
{
if (node->arg->type != kMenuNode) {
- warning("LingoCompiler::visitTheNumberOfNode: expected menu");
+ warning("BUILDBOT: LingoCompiler::visitTheNumberOfNode: expected menu");
return false;
}
MenuNode *menu = static_cast<MenuNode *>(node->arg);
Commit: 161cf05f7ceeeebcf61726f2955d94206bcf21a1
https://github.com/scummvm/scummvm/commit/161cf05f7ceeeebcf61726f2955d94206bcf21a1
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add missing !
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index e6a75491f7..03b9bcac3c 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -410,7 +410,7 @@ void LC::cb_objectcall() {
Datum nargs = g_lingo->pop();
Datum var = g_lingo->findVarV4(varType, varId);
- if (var.isVarRef()) {
+ if (!var.isVarRef()) {
warning("cb_objectcall: first arg did not resolve to variable");
return;
}
Commit: 597952bdd83f68602278d1b9818a7eb9876123bd
https://github.com/scummvm/scummvm/commit/597952bdd83f68602278d1b9818a7eb9876123bd
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Correct codeTheFieldGet to codeTheFieldSet
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 5e7d8805a6..c6c1914bb9 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -608,10 +608,10 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
FuncNode *func = static_cast<FuncNode *>(the->obj);
if (func->args->size() == 1) {
if (func->name->equalsIgnoreCase("cast")) {
- return codeTheFieldGet(kTheCast, (*func->args)[0], *the->prop);
+ return codeTheFieldSet(kTheCast, (*func->args)[0], *the->prop);
}
if (func->name->equalsIgnoreCase("field")) {
- return codeTheFieldGet(kTheField, (*func->args)[0], *the->prop);
+ return codeTheFieldSet(kTheField, (*func->args)[0], *the->prop);
}
// window is an object and is handled by that case
}
@@ -642,13 +642,13 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
case kSoundNode:
{
SoundNode *sound = static_cast<SoundNode *>(the->obj);
- return codeTheFieldGet(kTheSoundEntity, sound->arg, *the->prop);
+ return codeTheFieldSet(kTheSoundEntity, sound->arg, *the->prop);
}
break;
case kSpriteNode:
{
SpriteNode *sprite = static_cast<SpriteNode *>(the->obj);
- return codeTheFieldGet(kTheSprite, sprite->arg, *the->prop);
+ return codeTheFieldSet(kTheSprite, sprite->arg, *the->prop);
}
break;
case kVarNode:
Commit: 150e819d3f582cbb7dc8d9670cfa2e1447a9e37f
https://github.com/scummvm/scummvm/commit/150e819d3f582cbb7dc8d9670cfa2e1447a9e37f
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Correct more 'the' assignments
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index c6c1914bb9..6d84934cf2 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -620,7 +620,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
case kMenuNode:
{
MenuNode *menu = static_cast<MenuNode *>(the->obj);
- return codeTheFieldGet(kTheMenu, menu->arg, *the->prop);
+ return codeTheFieldSet(kTheMenu, menu->arg, *the->prop);
}
break;
case kMenuItemNode:
@@ -633,7 +633,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
}
COMPILE(menuItem->arg1)
COMPILE(menuItem->arg2);
- code1(LC::c_theentitypush);
+ code1(LC::c_theentityassign);
codeInt(kTheMenuItem);
codeInt(g_lingo->_theEntityFields[fieldId]->field);
return true;
@@ -657,7 +657,7 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
if (the->prop->equalsIgnoreCase("number") && var->name->equalsIgnoreCase("castMembers")) {
code1(LC::c_intpush);
codeInt(0); // Put dummy id
- code1(LC::c_theentitypush);
+ code1(LC::c_theentityassign);
codeInt(kTheCastMembers);
codeInt(kTheNumber);
return true;
@@ -669,8 +669,9 @@ bool LingoCompiler::visitSetNode(SetNode *node) {
}
if (g_director->getVersion() >= 400) {
+ COMPILE(node->val);
COMPILE(the->obj);
- code1(LC::c_objectproppush);
+ code1(LC::c_objectpropassign);
codeString(the->prop->c_str());
return true;
}
Commit: fee4e419f8b2cc91d17918d36e8e547bec80d5e6
https://github.com/scummvm/scummvm/commit/fee4e419f8b2cc91d17918d36e8e547bec80d5e6
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Make var undefined warning stricter
Now it only warns if the var is inside a definition. If it's in
scopeless Lingo, it should be fine.
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 6d84934cf2..2b8bd8647e 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -295,7 +295,8 @@ void LingoCompiler::codeVarRef(const Common::String &name) {
if (_methodVars->contains(name)) {
type = (*_methodVars)[name];
} else {
- warning("BUILDBOT: LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
+ if (_indef)
+ warning("BUILDBOT: LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
@@ -322,7 +323,8 @@ void LingoCompiler::codeVarGet(const Common::String &name) {
if (_methodVars->contains(name)) {
type = (*_methodVars)[name];
} else {
- warning("BUILDBOT: LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
+ if (_indef)
+ warning("BUILDBOT: LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
Commit: 87dc8c0269574be6657df00cc8375a3b46587bbb
https://github.com/scummvm/scummvm/commit/87dc8c0269574be6657df00cc8375a3b46587bbb
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix delete/hilite type checks
Changed paths:
engines/director/lingo/lingo-builtins.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 97232830a8..078f1c42b8 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -507,12 +507,12 @@ void LB::b_delete(int nargs) {
Datum field;
int start, end;
if (d.type == CHUNKREF) {
- if (d.u.cref->source.isVarRef()) {
+ if (d.u.cref->source.isVarRef() || d.u.cref->source.isCastRef()) {
field = d.u.cref->source;
start = d.u.cref->start;
end = d.u.cref->end;
} else {
- warning("b_delete: bad chunk ref field type: %s", d.type2str());
+ warning("BUILDBOT: b_delete: bad chunk ref field type: %s", d.u.cref->source.type2str());
return;
}
} else if (d.isRef()) {
@@ -520,7 +520,7 @@ void LB::b_delete(int nargs) {
start = 0;
end = -1;
} else {
- warning("b_delete: bad field type: %s", d.type2str());
+ warning("BUILDBOT: b_delete: bad field type: %s", d.type2str());
return;
}
@@ -556,17 +556,21 @@ void LB::b_hilite(int nargs) {
Datum d = g_lingo->pop(false);
int fieldId, start, end;
- if (d.type == FIELDREF) {
+ if (d.isCastRef()) {
fieldId = d.u.i;
start = 0;
end = -1;
} else if (d.type == CHUNKREF) {
- TYPECHECK(d.u.cref->source, FIELDREF);
- fieldId = d.u.cref->source.u.i;
- start = d.u.cref->start;
- end = d.u.cref->end;
+ if (d.u.cref->source.isCastRef()) {
+ fieldId = d.u.cref->source.u.i;
+ start = d.u.cref->start;
+ end = d.u.cref->end;
+ } else {
+ warning("BUILDBOT: b_delete: bad chunk ref field type: %s", d.u.cref->source.type2str());
+ return;
+ }
} else {
- warning("b_hilite: bad field type: %s", d.type2str());
+ warning("BUILDBOT: b_hilite: bad field type: %s", d.type2str());
return;
}
Commit: 6a85f472914934a016aa41b3571d8e274d370b7f
https://github.com/scummvm/scummvm/commit/6a85f472914934a016aa41b3571d8e274d370b7f
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Compile vars as refs for delete/hilite
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 2b8bd8647e..9395b27ba3 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -529,6 +529,12 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
}
}
+ if ((node->name->equalsIgnoreCase("delete") || node->name->equalsIgnoreCase("hilite")) && node->args->size() == 1) {
+ COMPILE_REF((*node->args)[0]);
+ codeCmd(*node->name, 1);
+ return true;
+ }
+
COMPILE_LIST(node->args);
codeCmd(*node->name, node->args->size());
return true;
Commit: b098219eae446c25132b478a58eda49e5236abc9
https://github.com/scummvm/scummvm/commit/b098219eae446c25132b478a58eda49e5236abc9
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix if statements in tests
>From my testing, end if is not allowed to appear on the same line as
the statement.
Changed paths:
engines/director/lingo/tests/c2.lingo
engines/director/lingo/tests/if.lingo
engines/director/lingo/tests/macros2.lingo
diff --git a/engines/director/lingo/tests/c2.lingo b/engines/director/lingo/tests/c2.lingo
index 1ba075997c..c785dc69ba 100644
--- a/engines/director/lingo/tests/c2.lingo
+++ b/engines/director/lingo/tests/c2.lingo
@@ -17,7 +17,7 @@ the continuation
of previous line
if the castNum of sprite 1 > the number of cast "StarLast" then set the castNum of sprite 1 to the number of Â
- cast "StarFirst" end if
+ cast "StarFirst"
put "HelloÂ
World!"
diff --git a/engines/director/lingo/tests/if.lingo b/engines/director/lingo/tests/if.lingo
index 20dfb2c97e..056279f817 100644
--- a/engines/director/lingo/tests/if.lingo
+++ b/engines/director/lingo/tests/if.lingo
@@ -53,7 +53,8 @@ else
end if
if abs(y) = x and abs(x) = y then put 5
-if abs(y) = x and abs(x) = y then put 5 else put 6
+if abs(y) = x and abs(x) = y then put 5
+else put 6
if the selection = the text of cast A31 then
go to frame "sEnd"
@@ -73,7 +74,8 @@ else if whichTry = 2 then
else if whichTry = 3 then go to frame "sDo"
else put 6
-if the selection = the text of cast A31 then go to frame "sEnd" else put 7
+if the selection = the text of cast A31 then go to frame "sEnd"
+else put 7
if the selection = the text of cast A31 then go to frame "sEnd"
else if whichTry = 1 then
@@ -93,7 +95,8 @@ else if whichTry = 1 then
else if whichTry = 2 then
put 5
go to frame "sShow"
-else if whichTry = 3 then go to frame "sDo" else put 7 end if
+else if whichTry = 3 then go to frame "sDo"
+else put 7
if rollOver(2) then
put "The cursor is INSIDE the square." into field "Cursor Status"
@@ -102,16 +105,23 @@ else
end if
if the selection = the text of cast A31 then
- if whichTry = 3 then go to frame "sDo" end if
+ if whichTry = 3 then
+ go to frame "sDo"
+ end if
else if whichTry = 1 then
- if whichTry = 3 then go to frame "sDo" else
+ if whichTry = 3 then go to frame "sDo"
+ else
put 5
end if
else if whichTry = 2 then
- if whichTry = 3 then go to frame "sDo" else
+ if whichTry = 3 then go to frame "sDo"
+ else
if the selection = the text of cast A21 then
- if whichTry = 3 then go to frame "Foo" end if
- else if abra = 5 then put 6 else
+ if whichTry = 3 then
+ go to frame "Foo"
+ end if
+ else if abra = 5 then put 6
+ else
put 7
if abra = 7 then put 5
end if
@@ -119,10 +129,10 @@ else if whichTry = 2 then
else if whichTry = 3 then go to frame "sDo"
else put 6
-if the selection = the text of cast A31 then go to frame "sEnd" else put 7 end if
+if the selection = the text of cast A31 then go to frame "sEnd"
when keyDown then if the key = RETURN then checkField
-when keyDown then if the key = QUOTE then checkField else put "bar"
+when keyDown then if the key = QUOTE then checkField
if the mouseH > ((the right of sprite 15) - 20) then HidePopUp
else if ((the mouseH > ((the left of sprite 15) + 30)) and Â
diff --git a/engines/director/lingo/tests/macros2.lingo b/engines/director/lingo/tests/macros2.lingo
index bb35ca1d36..094f37e3c6 100644
--- a/engines/director/lingo/tests/macros2.lingo
+++ b/engines/director/lingo/tests/macros2.lingo
@@ -14,4 +14,4 @@ test
test()
put test
put test()
-if test then test end if
+if test then test
Commit: 76195e62f4b9695f86ddb83d59c0d2497be4f27c
https://github.com/scummvm/scummvm/commit/76195e62f4b9695f86ddb83d59c0d2497be4f27c
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Allow stray end ifs
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 3295885be8..0ddc3955c2 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -274,45 +274,49 @@ enum yysymbol_kind_t
YYSYMBOL_idlist = 118, /* idlist */
YYSYMBOL_nonemptyidlist = 119, /* nonemptyidlist */
YYSYMBOL_stmt = 120, /* stmt */
- YYSYMBOL_stmtoneliner = 121, /* stmtoneliner */
- YYSYMBOL_proc = 122, /* proc */
- YYSYMBOL_cmdargs = 123, /* cmdargs */
- YYSYMBOL_frameargs = 124, /* frameargs */
- YYSYMBOL_asgn = 125, /* asgn */
- YYSYMBOL_to = 126, /* to */
- YYSYMBOL_definevars = 127, /* definevars */
- YYSYMBOL_ifstmt = 128, /* ifstmt */
- YYSYMBOL_ifelsestmt = 129, /* ifelsestmt */
- YYSYMBOL_loop = 130, /* loop */
- YYSYMBOL_tell = 131, /* tell */
- YYSYMBOL_when = 132, /* when */
- YYSYMBOL_stmtlist = 133, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 134, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 135, /* stmtlistline */
- YYSYMBOL_simpleexpr_nounarymath = 136, /* simpleexpr_nounarymath */
- YYSYMBOL_var = 137, /* var */
- YYSYMBOL_varorchunk = 138, /* varorchunk */
- YYSYMBOL_varorthe = 139, /* varorthe */
- YYSYMBOL_chunk = 140, /* chunk */
- YYSYMBOL_object = 141, /* object */
- YYSYMBOL_the = 142, /* the */
- YYSYMBOL_theobj = 143, /* theobj */
- YYSYMBOL_menu = 144, /* menu */
- YYSYMBOL_writablethe = 145, /* writablethe */
- YYSYMBOL_thedatetime = 146, /* thedatetime */
- YYSYMBOL_thenumberof = 147, /* thenumberof */
- YYSYMBOL_chunktype = 148, /* chunktype */
- YYSYMBOL_inof = 149, /* inof */
- YYSYMBOL_list = 150, /* list */
- YYSYMBOL_proplist = 151, /* proplist */
- YYSYMBOL_proppair = 152, /* proppair */
- YYSYMBOL_unarymath = 153, /* unarymath */
- YYSYMBOL_simpleexpr = 154, /* simpleexpr */
- YYSYMBOL_expr = 155, /* expr */
- YYSYMBOL_expr_nounarymath = 156, /* expr_nounarymath */
- YYSYMBOL_sprite = 157, /* sprite */
- YYSYMBOL_exprlist = 158, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 159 /* nonemptyexprlist */
+ YYSYMBOL_stmt_insideif = 121, /* stmt_insideif */
+ YYSYMBOL_stmtoneliner = 122, /* stmtoneliner */
+ YYSYMBOL_proc = 123, /* proc */
+ YYSYMBOL_cmdargs = 124, /* cmdargs */
+ YYSYMBOL_frameargs = 125, /* frameargs */
+ YYSYMBOL_asgn = 126, /* asgn */
+ YYSYMBOL_to = 127, /* to */
+ YYSYMBOL_definevars = 128, /* definevars */
+ YYSYMBOL_ifstmt = 129, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 130, /* ifelsestmt */
+ YYSYMBOL_loop = 131, /* loop */
+ YYSYMBOL_tell = 132, /* tell */
+ YYSYMBOL_when = 133, /* when */
+ YYSYMBOL_stmtlist = 134, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 135, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 136, /* stmtlistline */
+ YYSYMBOL_stmtlist_insideif = 137, /* stmtlist_insideif */
+ YYSYMBOL_nonemptystmtlist_insideif = 138, /* nonemptystmtlist_insideif */
+ YYSYMBOL_stmtlistline_insideif = 139, /* stmtlistline_insideif */
+ YYSYMBOL_simpleexpr_nounarymath = 140, /* simpleexpr_nounarymath */
+ YYSYMBOL_var = 141, /* var */
+ YYSYMBOL_varorchunk = 142, /* varorchunk */
+ YYSYMBOL_varorthe = 143, /* varorthe */
+ YYSYMBOL_chunk = 144, /* chunk */
+ YYSYMBOL_object = 145, /* object */
+ YYSYMBOL_the = 146, /* the */
+ YYSYMBOL_theobj = 147, /* theobj */
+ YYSYMBOL_menu = 148, /* menu */
+ YYSYMBOL_writablethe = 149, /* writablethe */
+ YYSYMBOL_thedatetime = 150, /* thedatetime */
+ YYSYMBOL_thenumberof = 151, /* thenumberof */
+ YYSYMBOL_chunktype = 152, /* chunktype */
+ YYSYMBOL_inof = 153, /* inof */
+ YYSYMBOL_list = 154, /* list */
+ YYSYMBOL_proplist = 155, /* proplist */
+ YYSYMBOL_proppair = 156, /* proppair */
+ YYSYMBOL_unarymath = 157, /* unarymath */
+ YYSYMBOL_simpleexpr = 158, /* simpleexpr */
+ YYSYMBOL_expr = 159, /* expr */
+ YYSYMBOL_expr_nounarymath = 160, /* expr_nounarymath */
+ YYSYMBOL_sprite = 161, /* sprite */
+ YYSYMBOL_exprlist = 162, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 163 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -632,18 +636,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 174
+#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3441
+#define YYLAST 3483
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 56
+#define YYNNTS 60
/* YYNRULES -- Number of rules. */
-#define YYNRULES 278
+#define YYNRULES 286
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 519
+#define YYNSTATES 527
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -711,24 +715,25 @@ static const yytype_int16 yyrline[] =
337, 338, 339, 340, 341, 342, 343, 346, 347, 348,
349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 366, 367, 370, 374, 384,
- 385, 386, 387, 388, 389, 392, 393, 394, 397, 398,
- 399, 400, 401, 402, 403, 404, 409, 410, 411, 412,
- 415, 418, 423, 427, 433, 438, 441, 451, 456, 462,
- 468, 474, 482, 483, 484, 485, 488, 488, 490, 491,
- 492, 495, 499, 503, 509, 513, 517, 521, 523, 525,
- 527, 531, 535, 539, 541, 542, 546, 552, 559, 560,
- 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
- 576, 577, 580, 582, 583, 586, 587, 590, 594, 598,
- 600, 602, 604, 606, 608, 610, 612, 616, 620, 626,
- 627, 628, 629, 632, 633, 634, 635, 636, 639, 641,
- 642, 643, 646, 647, 648, 649, 650, 651, 652, 653,
- 654, 655, 659, 660, 661, 662, 663, 666, 667, 668,
- 669, 672, 672, 674, 675, 676, 679, 683, 688, 689,
- 690, 693, 694, 697, 698, 702, 703, 704, 705, 706,
- 707, 708, 709, 710, 711, 712, 713, 714, 715, 716,
- 717, 718, 719, 720, 727, 728, 729, 730, 731, 732,
- 733, 734, 735, 736, 737, 738, 739, 740, 741, 742,
- 743, 744, 745, 748, 749, 752, 753, 756, 760
+ 385, 388, 389, 390, 391, 392, 393, 396, 397, 398,
+ 401, 402, 403, 404, 405, 406, 407, 408, 413, 414,
+ 415, 416, 419, 422, 427, 431, 437, 442, 445, 455,
+ 460, 466, 472, 478, 486, 487, 488, 489, 492, 492,
+ 494, 495, 496, 499, 503, 507, 513, 517, 521, 525,
+ 527, 529, 531, 535, 539, 543, 545, 546, 550, 556,
+ 563, 564, 567, 568, 572, 578, 585, 586, 592, 593,
+ 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
+ 606, 608, 609, 612, 613, 616, 620, 624, 626, 628,
+ 630, 632, 634, 636, 638, 642, 646, 652, 653, 654,
+ 655, 658, 659, 660, 661, 662, 665, 667, 668, 669,
+ 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
+ 685, 686, 687, 688, 689, 692, 693, 694, 695, 698,
+ 698, 700, 701, 702, 705, 709, 714, 715, 716, 719,
+ 720, 723, 724, 728, 729, 730, 731, 732, 733, 734,
+ 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
+ 745, 746, 753, 754, 755, 756, 757, 758, 759, 760,
+ 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
+ 771, 774, 775, 778, 779, 782, 786
};
#endif
@@ -762,14 +767,16 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"')'", "'['", "']'", "':'", "$accept", "script", "scriptpartlist",
"scriptpart", "macro", "factory", "method", "methodlist",
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "CMDID",
- "ID", "idlist", "nonemptyidlist", "stmt", "stmtoneliner", "proc",
- "cmdargs", "frameargs", "asgn", "to", "definevars", "ifstmt",
- "ifelsestmt", "loop", "tell", "when", "stmtlist", "nonemptystmtlist",
- "stmtlistline", "simpleexpr_nounarymath", "var", "varorchunk",
- "varorthe", "chunk", "object", "the", "theobj", "menu", "writablethe",
- "thedatetime", "thenumberof", "chunktype", "inof", "list", "proplist",
- "proppair", "unarymath", "simpleexpr", "expr", "expr_nounarymath",
- "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "ID", "idlist", "nonemptyidlist", "stmt", "stmt_insideif",
+ "stmtoneliner", "proc", "cmdargs", "frameargs", "asgn", "to",
+ "definevars", "ifstmt", "ifelsestmt", "loop", "tell", "when", "stmtlist",
+ "nonemptystmtlist", "stmtlistline", "stmtlist_insideif",
+ "nonemptystmtlist_insideif", "stmtlistline_insideif",
+ "simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
+ "object", "the", "theobj", "menu", "writablethe", "thedatetime",
+ "thenumberof", "chunktype", "inof", "list", "proplist", "proppair",
+ "unarymath", "simpleexpr", "expr", "expr_nounarymath", "sprite",
+ "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -794,7 +801,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-339)
+#define YYPACT_NINF (-462)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -808,58 +815,59 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2329, -339, -339, -339, -339, -339, -339, -20, -339, 2819,
- 1462, 1559, -339, -339, 2819, -339, -1, -339, -339, 1656,
- 11, 2898, -339, 2819, -339, -339, 2819, 1656, 1462, 2819,
- -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, 1559, 2819, 2819, 3213, -339, 21, 2329,
- -339, -339, -339, -339, 1656, -339, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, -64, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -30, 12, -339, -339, -339, -339, 1753, 1753, 1753,
- 1753, 1559, 1559, 1753, 1753, 1753, 1753, 1753, 2977, 1559,
- 1753, 1753, 1365, 781, 15, -19, 6, -339, -339, -339,
- -339, -339, -339, -339, -339, -339, -339, -339, 880, -339,
- 1559, 287, 2819, 25, 32, 977, 2819, 1559, 3056, -339,
- -339, -21, -339, 85, 46, 58, 1074, 61, 62, 63,
- 162, 64, 2819, -339, -339, -339, 65, 1171, -339, -339,
- 2819, -339, -339, -339, -339, 1268, 3292, -339, 1, 4,
- 31, 91, -45, -27, -25, 26, 28, 56, 129, 135,
- 3279, -339, -339, -339, 428, 66, 67, 69, -53, -22,
- -339, 3292, 72, 68, 1559, -339, -339, 141, 1559, 1559,
- 1559, 1559, 2044, 2044, 2238, 1559, 2141, 2141, 1559, 1559,
- 1559, 1559, 1559, 1559, 1559, 1559, -339, 398, -339, 493,
- 2409, 1559, 1559, 1559, 1559, 1559, 71, -339, -339, 3135,
- 3135, 3135, -5, 512, 147, -339, -339, 1559, 1559, -56,
- -339, 1559, -339, -339, -339, 3213, 2489, -339, 83, -339,
- -339, 158, 3346, 1753, 1753, 1753, 1753, 1753, 1753, 1753,
- 1753, -339, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, -339, -339, 40, 1850, 1947, 1753, 1753,
- 1559, -339, 1559, 1559, -339, 1559, 2740, -339, -339, 1559,
- 90, 1559, -9, -9, -9, -9, 134, 134, -339, -40,
- -9, -9, -9, -9, -40, -34, -34, -339, -339, 68,
- 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
- 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 2489, 169,
- 2489, -339, 94, -339, 96, 97, 1559, 1559, 2489, 1947,
- 572, 3292, 2819, -339, -339, -339, -56, -339, 585, -339,
- -339, -339, 108, 2489, -339, 2489, 1559, -339, 170, -339,
- 171, -339, 172, -339, 173, -339, -339, 1753, 40, 40,
- 40, 40, 1753, 1753, 40, 1753, 1753, -339, -339, -339,
- -339, -339, -339, 52, 3292, 3292, 3292, 66, 67, 99,
- -339, 3292, -339, 3292, -9, -9, -9, -9, 134, 134,
- -339, -40, -9, -9, -9, -9, -40, -34, -34, -339,
- -339, 68, -10, 2569, -339, -339, -339, -339, 670, 47,
- 111, -339, 2819, -339, -339, 115, -339, 203, 3292, 1753,
- 1753, 1753, 1753, -339, 1753, 1753, 1753, 1753, -339, 190,
- 148, -339, -339, -339, 2649, 123, 2489, -339, 2489, 187,
- 1559, 125, 133, -339, 2819, -339, -339, -339, -339, -339,
- -339, -339, -339, 163, 1753, -339, 2489, -339, -339, 150,
- 151, 1559, 683, -339, 2489, 49, -339, 1753, 153, 139,
- 142, 3260, 2489, -339, -339, 2819, -339, 144, -339, -339,
- 2489, 160, -339, -339, 161, 152, 164, -339, -339
+ 2364, -462, -462, -462, -462, -462, -462, -22, -462, 2934,
+ 1497, 1594, -462, -462, 2934, -462, 28, -462, -462, 1691,
+ -1, 3013, -462, 2934, -462, -462, 2934, 1691, 1497, 2934,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, 1594, 2934, 2934, -32, 3328, -462, 68,
+ 2364, -462, -462, -462, -462, 1691, -462, -462, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, 9, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, 27, 29, -462, -462, -462, -462, 1788,
+ 1788, 1788, 1788, 1594, 1594, 1788, 1788, 1788, 1788, 1788,
+ 3092, 1594, 1788, 1788, 1400, 816, -5, 36, 40, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+ 915, -462, 1594, 245, 2934, 41, 43, 1012, 2934, 1594,
+ 3171, -462, -462, -10, -462, 93, 44, 53, 1109, 58,
+ 59, 60, -4, 61, 2934, -462, -462, -462, -462, 62,
+ 1206, -462, -462, 2934, -462, -462, -462, -462, 1303, 717,
+ -462, 69, 77, 86, 87, -25, -3, 8, 31, 33,
+ 109, 124, 135, 3375, -462, -462, -462, 436, 70, 71,
+ 63, 26, 34, -462, 717, 73, 74, 1594, -462, -462,
+ 145, 1594, 1594, 1594, 1594, 2079, 2079, 2273, 1594, 2176,
+ 2176, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, -462,
+ 523, -462, 496, 2444, 1594, 1594, 1594, 1594, 1594, 89,
+ -462, -462, 3250, 3250, 3250, -15, 320, 154, -462, -462,
+ 1594, 1594, -69, -462, 1594, -462, -462, -462, 3328, 2524,
+ -462, 90, -462, -462, 158, 3388, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, -462, -462, -462, -462, -462, -462,
+ -462, -462, -462, -462, -462, -462, -462, -462, 55, 1885,
+ 1982, 1788, 1788, 1594, -462, 1594, 1594, -462, 1594, 2855,
+ -462, -462, 1594, 91, 1594, -31, -31, -31, -31, 136,
+ 136, -462, -39, -31, -31, -31, -31, -39, -23, -23,
+ -462, -462, 74, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 2764, 176, 2524, -462, 96, -462, 97, 98, 1594,
+ 1594, 2524, 1982, 589, 717, 2934, -462, -462, -462, -69,
+ -462, 602, -462, -462, -462, 110, 2524, -462, 2524, 1594,
+ -462, 170, -462, 171, -462, 172, -462, 173, -462, -462,
+ 1788, 55, 55, 55, 55, 1788, 1788, 55, 1788, 1788,
+ -462, -462, -462, -462, -462, -462, -73, 717, 717, 717,
+ 70, 71, 100, -462, 717, -462, 717, -31, -31, -31,
+ -31, 136, 136, -462, -39, -31, -31, -31, -31, -39,
+ -23, -23, -462, -462, 74, -462, -462, -11, 2764, -462,
+ 2604, -462, -462, -462, -462, 615, 168, 119, -462, 2934,
+ -462, -462, 99, -462, 196, 717, 1788, 1788, 1788, 1788,
+ -462, 1788, 1788, 1788, 1788, -462, 179, 147, -462, -462,
+ -462, 2684, 126, -462, 2764, -462, 2524, 190, 1594, 138,
+ 139, -462, 2934, -462, -462, -462, -462, -462, -462, -462,
+ -462, 167, 1788, -462, 2764, -462, -462, 155, 153, 1594,
+ 686, -462, 2524, -51, -462, 1788, 156, 151, 157, 704,
+ 2524, -462, -462, 2934, -462, 159, -462, -462, 2524, 164,
+ -462, -462, 165, 169, 174, -462, -462
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -868,79 +876,80 @@ static const yytype_int16 yypact[] =
static const yytype_int16 yydefact[] =
{
0, 24, 31, 37, 60, 72, 36, 0, 38, 95,
- 120, 0, 39, 41, 0, 52, 53, 56, 58, 120,
- 59, 62, 70, 0, 73, 71, 0, 120, 120, 95,
+ 122, 0, 39, 41, 0, 52, 53, 56, 58, 122,
+ 59, 62, 70, 0, 73, 71, 0, 122, 122, 95,
29, 57, 54, 51, 28, 30, 34, 66, 32, 33,
42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
63, 35, 44, 48, 49, 50, 55, 68, 69, 64,
- 65, 40, 74, 67, 95, 0, 61, 5, 0, 2,
- 3, 6, 7, 8, 120, 9, 99, 105, 106, 107,
- 100, 101, 102, 103, 104, 0, 118, 79, 78, 80,
- 82, 83, 84, 86, 53, 92, 59, 62, 93, 94,
- 81, 89, 90, 85, 67, 91, 88, 87, 61, 77,
- 97, 0, 96, 160, 161, 163, 162, 31, 37, 60,
- 72, 38, 52, 54, 32, 42, 45, 75, 68, 65,
- 0, 0, 0, 275, 172, 0, 0, 233, 167, 168,
- 169, 170, 189, 190, 191, 171, 234, 235, 121, 236,
- 0, 0, 95, 0, 0, 121, 0, 0, 68, 172,
- 175, 0, 176, 0, 0, 0, 121, 0, 0, 0,
- 0, 0, 95, 119, 1, 4, 0, 121, 117, 138,
- 0, 178, 177, 187, 188, 127, 128, 164, 0, 0,
- 0, 0, 25, 26, 27, 47, 63, 44, 55, 199,
- 0, 231, 232, 125, 0, 163, 162, 0, 172, 0,
- 226, 277, 0, 276, 275, 110, 111, 56, 0, 0,
- 0, 0, 29, 57, 51, 0, 34, 66, 0, 0,
- 0, 0, 0, 0, 0, 0, 254, 123, 255, 0,
- 0, 0, 0, 0, 0, 0, 0, 116, 109, 41,
- 28, 30, 0, 0, 55, 136, 137, 0, 0, 13,
- 114, 73, 112, 113, 140, 0, 154, 139, 0, 108,
- 98, 56, 131, 0, 0, 0, 0, 0, 0, 0,
- 0, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 217, 219, 220, 218, 0, 0, 0, 0, 0,
- 0, 166, 0, 0, 224, 0, 0, 225, 223, 0,
- 0, 0, 246, 247, 244, 245, 248, 249, 241, 251,
- 252, 253, 243, 242, 250, 237, 238, 239, 240, 122,
+ 65, 40, 74, 67, 95, 0, 0, 61, 5, 0,
+ 2, 3, 6, 7, 8, 122, 9, 99, 101, 107,
+ 108, 109, 102, 103, 104, 105, 106, 0, 120, 79,
+ 78, 80, 82, 83, 84, 86, 53, 92, 59, 62,
+ 93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
+ 61, 77, 97, 0, 96, 168, 169, 171, 170, 31,
+ 37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
+ 68, 65, 0, 0, 0, 283, 180, 0, 0, 241,
+ 175, 176, 177, 178, 197, 198, 199, 179, 242, 243,
+ 123, 244, 0, 0, 95, 0, 0, 123, 0, 0,
+ 68, 180, 183, 0, 184, 0, 0, 0, 123, 0,
+ 0, 0, 0, 0, 95, 100, 121, 1, 4, 0,
+ 123, 119, 140, 0, 186, 185, 195, 196, 129, 130,
+ 172, 0, 0, 0, 0, 25, 26, 27, 47, 63,
+ 44, 55, 207, 0, 239, 240, 127, 0, 171, 170,
+ 0, 180, 0, 234, 285, 0, 284, 283, 112, 113,
+ 56, 0, 0, 0, 0, 29, 57, 51, 0, 34,
+ 66, 0, 0, 0, 0, 0, 0, 0, 0, 262,
+ 125, 263, 0, 0, 0, 0, 0, 0, 0, 0,
+ 118, 111, 41, 28, 30, 0, 0, 55, 138, 139,
+ 0, 0, 13, 116, 73, 114, 115, 142, 0, 156,
+ 141, 0, 110, 98, 56, 133, 0, 0, 0, 0,
+ 0, 0, 0, 0, 210, 211, 212, 213, 214, 215,
+ 216, 217, 218, 219, 225, 227, 228, 226, 0, 0,
+ 0, 0, 0, 0, 174, 0, 0, 232, 0, 0,
+ 233, 231, 0, 0, 0, 254, 255, 252, 253, 256,
+ 257, 249, 259, 260, 261, 251, 250, 258, 245, 246,
+ 247, 248, 124, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 154, 141,
- 154, 173, 0, 174, 0, 0, 0, 0, 154, 0,
- 0, 153, 0, 17, 18, 11, 14, 15, 0, 151,
- 158, 159, 0, 155, 156, 154, 0, 179, 0, 183,
- 0, 185, 0, 181, 0, 221, 222, 0, 33, 43,
- 46, 76, 48, 49, 50, 64, 65, 201, 194, 193,
- 200, 273, 274, 0, 230, 228, 229, 0, 0, 0,
- 227, 278, 165, 130, 265, 266, 263, 264, 267, 268,
- 260, 270, 271, 272, 262, 261, 269, 256, 257, 258,
- 259, 124, 0, 0, 10, 132, 133, 134, 0, 0,
- 0, 135, 95, 16, 115, 0, 157, 20, 129, 0,
- 0, 0, 0, 192, 0, 0, 0, 0, 198, 0,
- 0, 196, 197, 126, 0, 0, 154, 143, 154, 0,
- 0, 0, 0, 152, 21, 180, 184, 186, 182, 212,
- 214, 215, 213, 0, 0, 216, 154, 145, 142, 0,
- 0, 0, 0, 147, 154, 0, 22, 0, 0, 0,
- 0, 0, 154, 12, 19, 0, 195, 0, 144, 150,
- 154, 0, 23, 146, 0, 0, 0, 148, 149
+ 0, 162, 143, 156, 181, 0, 182, 0, 0, 0,
+ 0, 156, 0, 0, 155, 0, 17, 18, 11, 14,
+ 15, 0, 153, 160, 161, 0, 157, 158, 156, 0,
+ 187, 0, 191, 0, 193, 0, 189, 0, 229, 230,
+ 0, 33, 43, 46, 76, 48, 49, 50, 64, 65,
+ 209, 202, 201, 208, 281, 282, 0, 238, 236, 237,
+ 0, 0, 0, 235, 286, 173, 132, 273, 274, 271,
+ 272, 275, 276, 268, 278, 279, 280, 270, 269, 277,
+ 264, 265, 266, 267, 126, 166, 167, 0, 163, 164,
+ 0, 10, 134, 135, 136, 0, 0, 0, 137, 95,
+ 16, 117, 0, 159, 20, 131, 0, 0, 0, 0,
+ 200, 0, 0, 0, 0, 206, 0, 0, 204, 205,
+ 128, 0, 0, 165, 162, 145, 156, 0, 0, 0,
+ 0, 154, 21, 188, 192, 194, 190, 220, 222, 223,
+ 221, 0, 0, 224, 162, 147, 144, 0, 0, 0,
+ 0, 149, 156, 0, 22, 0, 0, 0, 0, 0,
+ 156, 12, 19, 0, 203, 0, 146, 152, 156, 0,
+ 23, 148, 0, 0, 0, 150, 151
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -339, -339, -339, 179, -339, -339, -339, -339, -339, -116,
- -339, -339, 0, -7, -28, -339, 5, -62, -339, -2,
- 230, -339, -339, -339, -339, -339, -339, -339, -339, -338,
- -339, -113, -121, -18, -97, -339, -118, -339, -339, -35,
- -197, 243, -339, -339, -339, -282, -339, -339, -39, -339,
- 301, 60, 84, -50, 54, -227
+ -462, -462, -462, 182, -462, -462, -462, -462, -462, -127,
+ -462, -462, 0, -7, -12, -462, 6, -340, -64, -462,
+ 4, 225, -462, -462, -462, -462, -462, -462, -462, -462,
+ -341, -462, -121, -461, -462, -174, -58, -20, -136, -462,
+ -172, -462, -462, -35, -200, 249, -462, -462, -462, -248,
+ -462, -462, -37, -462, 328, 85, 88, -49, 56, -234
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 68, 69, 70, 71, 72, 364, 365, 366, 367,
- 73, 495, 109, 134, 111, 112, 371, 76, 77, 135,
- 136, 78, 257, 79, 80, 81, 82, 83, 84, 372,
- 373, 374, 137, 138, 352, 161, 139, 140, 141, 397,
- 398, 142, 143, 144, 295, 387, 145, 209, 210, 146,
- 147, 211, 237, 149, 212, 213
+ 0, 69, 70, 71, 72, 73, 367, 368, 369, 370,
+ 74, 503, 111, 136, 113, 114, 374, 77, 78, 79,
+ 137, 138, 80, 260, 81, 82, 83, 84, 85, 86,
+ 375, 376, 377, 437, 438, 439, 139, 140, 355, 163,
+ 141, 142, 143, 400, 401, 144, 145, 146, 298, 390,
+ 147, 212, 213, 148, 149, 214, 240, 151, 215, 216
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -948,540 +957,499 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 74, 169, 110, 160, 173, 75, 464, 152, 329, 243,
- 432, 85, 434, 255, 159, 243, 163, 154, 356, 164,
- 440, 174, 110, 256, 281, 165, 167, 236, 362, 273,
- 153, 282, 275, 178, 236, 274, 171, 447, 276, 357,
- 243, 363, 283, 225, 285, 236, 214, 156, 157, 284,
- 305, 286, 231, 232, 233, 234, 236, 110, 172, 277,
- 233, 234, 469, 385, 236, 278, 74, 179, 386, 74,
- 148, 151, 176, 403, 75, 465, 306, 86, 215, 155,
- 307, 470, 230, 231, 232, 233, 234, 166, 148, 218,
- 219, 220, 221, 241, 242, 287, 243, 289, 238, 225,
- 244, 245, 288, 216, 290, 238, 454, 455, 456, 457,
- 180, 291, 460, 292, 214, 293, 238, 294, 258, 279,
- 431, 199, 247, 170, 246, 280, 208, 238, 489, 248,
- 490, 353, 353, 353, 177, 238, 228, 229, 230, 231,
- 232, 233, 234, 259, 268, 110, 504, 505, 498, 252,
- 309, 199, 463, 354, 355, 260, 503, 296, 262, 263,
- 264, 267, 269, 297, 511, 110, 309, 311, 350, 302,
- 303, 304, 514, 270, 308, 359, 218, 219, 220, 221,
- 375, 185, 186, 243, 376, 433, 225, 244, 245, 200,
- 412, 435, 204, 436, 437, 445, 265, 471, 449, 450,
- 451, 452, 305, 369, 218, 219, 220, 221, 241, 242,
- 239, 243, 473, 474, 225, 244, 245, 253, 483, 484,
- 488, 491, 493, 228, 229, 230, 231, 232, 233, 234,
- 494, 351, 351, 351, 497, 499, 508, 500, 507, 509,
- 74, 513, 159, 159, 159, 349, 515, 516, 175, 517,
- 443, 228, 229, 230, 231, 232, 233, 234, 168, 266,
- 446, 518, 400, 485, 162, 74, 74, 410, 310, 272,
- 0, 0, 0, 0, 0, 0, 0, 0, 312, 313,
- 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 0, 0, 0, 0, 409,
- 0, 316, 317, 318, 320, 321, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 360, 361, 0,
- 240, 368, 0, 0, 0, 0, 0, 0, 0, 218,
- 219, 220, 221, 241, 242, 0, 243, 0, 0, 225,
- 244, 245, 0, 0, 0, 0, 0, 0, 74, 0,
- 74, 0, 0, 0, 0, 442, 0, 0, 74, 0,
- 0, 0, 404, 405, 0, 406, 0, 0, 0, 411,
- 0, 413, 0, 74, 0, 74, 228, 229, 230, 231,
- 232, 233, 234, 0, 0, 0, 0, 0, 0, 0,
- 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 429, 430, 0, 0, 0,
- 0, 0, 0, 0, 472, 0, 438, 439, 181, 182,
- 183, 184, 0, 0, 187, 188, 189, 190, 191, 0,
- 0, 201, 202, 74, 0, 110, 448, 0, 467, 0,
- 330, 331, 332, 333, 334, 335, 0, 336, 0, 0,
- 337, 338, 339, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 74, 0, 74, 496, 74, 487,
- 218, 219, 220, 221, 241, 242, 0, 243, 0, 0,
- 225, 244, 245, 0, 0, 0, 74, 340, 341, 342,
- 343, 344, 345, 346, 74, 0, 347, 0, 512, 0,
- 0, 0, 74, 0, 0, 0, 0, 0, 0, 0,
- 74, 0, 0, 0, 0, 0, 0, 228, 229, 230,
- 231, 232, 233, 234, 0, 0, 300, 0, 301, 0,
- 492, 0, 0, 0, 0, 218, 219, 220, 221, 241,
- 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
- 0, 501, 0, 0, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 0, 0, 0,
- 0, 0, 0, 0, 377, 378, 379, 380, 381, 382,
- 383, 384, 228, 229, 230, 231, 232, 233, 234, 0,
- 0, 0, 0, 301, 0, 0, 0, 399, 399, 401,
- 402, 228, 229, 230, 231, 232, 233, 234, 0, 358,
- 0, 0, 0, 0, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 218, 219, 220,
- 221, 241, 242, 0, 243, 0, 0, 225, 244, 245,
+ 75, 162, 112, 176, 332, 471, 76, 154, 359, 87,
+ 246, 436, 441, 497, 161, 365, 165, 171, 246, 166,
+ 447, 228, 112, 156, 258, 312, 246, 470, 366, 360,
+ 268, 167, 169, 506, 259, 158, 159, 454, 221, 222,
+ 223, 224, 244, 245, 284, 246, 512, 513, 228, 247,
+ 248, 285, 173, 234, 235, 236, 237, 112, 174, 155,
+ 233, 234, 235, 236, 237, 175, 286, 75, 177, 406,
+ 75, 236, 237, 287, 472, 88, 76, 288, 388, 179,
+ 356, 356, 356, 389, 289, 231, 232, 233, 234, 235,
+ 236, 237, 239, 269, 217, 150, 153, 276, 436, 239,
+ 290, 241, 292, 277, 157, 278, 181, 291, 241, 293,
+ 239, 279, 168, 150, 280, 282, 434, 357, 358, 241,
+ 281, 283, 239, 202, 182, 217, 261, 183, 211, 308,
+ 239, 241, 309, 218, 436, 498, 310, 219, 250, 241,
+ 251, 262, 249, 461, 462, 463, 464, 112, 172, 467,
+ 263, 255, 299, 202, 436, 265, 266, 267, 270, 272,
+ 180, 511, 271, 300, 294, 307, 295, 112, 296, 519,
+ 297, 314, 312, 305, 306, 311, 273, 522, 221, 222,
+ 223, 224, 362, 477, 379, 246, 353, 378, 228, 247,
+ 248, 415, 440, 442, 443, 444, 481, 452, 456, 457,
+ 458, 459, 478, 308, 372, 479, 482, 491, 188, 189,
+ 221, 222, 223, 224, 244, 245, 203, 246, 492, 207,
+ 228, 247, 248, 496, 499, 231, 232, 233, 234, 235,
+ 236, 237, 354, 354, 354, 501, 502, 242, 505, 508,
+ 507, 515, 450, 75, 256, 161, 161, 161, 516, 352,
+ 523, 524, 178, 170, 517, 453, 521, 231, 232, 233,
+ 234, 235, 236, 237, 473, 403, 525, 493, 75, 75,
+ 164, 526, 413, 313, 0, 0, 275, 0, 243, 0,
+ 0, 0, 0, 0, 0, 0, 0, 221, 222, 223,
+ 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
+ 0, 0, 412, 0, 0, 0, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 0, 0, 0, 0, 0, 0, 319,
+ 320, 321, 323, 324, 231, 232, 233, 234, 235, 236,
+ 237, 0, 0, 0, 0, 363, 364, 0, 0, 371,
+ 0, 75, 0, 75, 0, 0, 0, 0, 449, 0,
+ 0, 75, 221, 222, 223, 224, 244, 245, 0, 246,
+ 0, 0, 228, 247, 248, 0, 75, 0, 75, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 399, 228, 229, 230, 231, 232, 233, 234, 0, 441,
- 0, 0, 0, 0, 228, 229, 230, 231, 232, 233,
- 234, 0, 444, 0, 0, 0, 0, 0, 453, 0,
- 0, 0, 0, 458, 459, 0, 461, 462, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 218, 219, 220, 221, 241, 242, 0, 243,
- 0, 0, 225, 244, 245, 218, 219, 220, 221, 241,
- 242, 0, 243, 0, 0, 225, 244, 245, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 475, 476, 477, 478, 0, 479, 480, 481, 482, 228,
- 229, 230, 231, 232, 233, 234, 0, 468, 0, 0,
- 0, 0, 228, 229, 230, 231, 232, 233, 234, 0,
- 502, 0, 0, 0, 0, 458, 113, 114, 1, 205,
- 206, 87, 117, 118, 119, 120, 6, 88, 506, 89,
- 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
- 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
- 101, 102, 103, 0, 0, 0, 0, 30, 31, 123,
- 33, 34, 35, 0, 36, 37, 124, 39, 125, 41,
- 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
- 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
- 0, 0, 0, 130, 131, 0, 0, 0, 0, 0,
- 150, 0, 133, 0, 207, 113, 114, 1, 115, 116,
- 87, 117, 118, 119, 120, 6, 88, 0, 89, 8,
- 90, 91, 92, 12, 13, 93, 15, 94, 217, 18,
- 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
- 102, 103, 218, 219, 220, 221, 222, 223, 123, 224,
- 34, 35, 225, 226, 227, 124, 39, 125, 41, 126,
- 43, 127, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 128, 58, 59, 129, 61,
- 62, 104, 105, 106, 107, 0, 0, 0, 108, 228,
- 229, 230, 231, 232, 233, 234, 0, 0, 235, 150,
- 0, 133, 113, 114, 1, 115, 116, 87, 117, 118,
- 119, 120, 6, 88, 0, 89, 8, 90, 91, 92,
- 12, 249, 93, 15, 94, 17, 18, 95, 96, 97,
- 98, 22, 99, 24, 25, 100, 101, 102, 103, 218,
- 219, 220, 221, 222, 223, 123, 224, 250, 251, 225,
- 226, 227, 124, 39, 125, 41, 126, 43, 127, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 128, 58, 59, 129, 61, 62, 104, 105,
- 106, 107, 0, 0, 0, 108, 228, 229, 230, 231,
- 232, 233, 234, 0, 0, 235, 150, 0, 133, 113,
- 114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
- 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
- 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
- 261, 25, 100, 101, 102, 103, 218, 219, 220, 221,
- 222, 223, 123, 224, 34, 35, 225, 226, 227, 124,
- 39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 128,
- 58, 59, 129, 61, 62, 104, 105, 106, 107, 0,
- 0, 0, 108, 228, 229, 230, 231, 232, 233, 234,
- 0, 0, 235, 150, 0, 133, 113, 114, 1, 115,
- 116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
- 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
- 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
- 101, 102, 103, 218, 219, 220, 221, 222, 223, 123,
- 224, 34, 35, 225, 226, 227, 124, 39, 125, 41,
- 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
- 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
- 228, 229, 230, 231, 232, 233, 234, 0, 0, 235,
- 150, 0, 133, 113, 114, 1, 115, 116, 87, 117,
- 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
- 92, 12, 13, 93, 15, 94, 271, 18, 95, 96,
- 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
- 218, 219, 220, 221, 222, 223, 123, 224, 34, 35,
- 225, 226, 227, 124, 39, 125, 41, 126, 43, 127,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
- 105, 106, 107, 0, 0, 0, 108, 228, 229, 230,
- 231, 232, 233, 234, 0, 0, 0, 150, 0, 133,
- 113, 114, 1, 115, 116, 87, 117, 118, 119, 120,
- 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
- 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
- 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
- 0, 30, 31, 123, 33, 34, 35, 0, 36, 37,
- 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
+ 407, 408, 0, 409, 0, 0, 0, 414, 0, 416,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 231,
+ 232, 233, 234, 235, 236, 237, 0, 361, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 480, 75, 0,
+ 75, 0, 112, 0, 445, 446, 475, 184, 185, 186,
+ 187, 0, 0, 190, 191, 192, 193, 194, 0, 0,
+ 204, 205, 0, 0, 455, 0, 0, 0, 0, 0,
+ 0, 75, 0, 0, 75, 504, 75, 495, 221, 222,
+ 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
+ 248, 0, 0, 0, 75, 0, 0, 0, 0, 0,
+ 0, 0, 75, 0, 0, 0, 520, 0, 0, 0,
+ 75, 0, 0, 0, 0, 0, 0, 0, 75, 0,
+ 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
+ 236, 237, 0, 0, 303, 0, 304, 0, 221, 222,
+ 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
+ 248, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 500, 0, 333, 334, 335, 336, 337,
+ 338, 0, 339, 0, 0, 340, 341, 342, 0, 0,
+ 0, 0, 0, 0, 509, 231, 232, 233, 234, 235,
+ 236, 237, 0, 0, 0, 0, 304, 0, 0, 0,
+ 0, 0, 0, 0, 380, 381, 382, 383, 384, 385,
+ 386, 387, 343, 344, 345, 346, 347, 348, 349, 0,
+ 0, 350, 0, 0, 0, 0, 0, 402, 402, 404,
+ 405, 221, 222, 223, 224, 244, 245, 0, 246, 0,
+ 0, 228, 247, 248, 221, 222, 223, 224, 244, 245,
+ 0, 246, 0, 0, 228, 247, 248, 221, 222, 223,
+ 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
+ 0, 0, 0, 0, 0, 0, 0, 0, 231, 232,
+ 233, 234, 235, 236, 237, 0, 448, 0, 0, 0,
+ 402, 231, 232, 233, 234, 235, 236, 237, 0, 451,
+ 0, 0, 0, 0, 231, 232, 233, 234, 235, 236,
+ 237, 0, 476, 0, 0, 0, 0, 0, 460, 0,
+ 0, 0, 0, 465, 466, 0, 468, 469, 221, 222,
+ 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
+ 248, 0, 0, 0, 0, 0, 221, 222, 223, 224,
+ 244, 245, 0, 246, 0, 0, 228, 247, 248, 221,
+ 222, 223, 224, 244, 245, 0, 246, 0, 0, 228,
+ 247, 248, 0, 0, 0, 231, 232, 233, 234, 235,
+ 236, 237, 0, 510, 483, 484, 485, 486, 0, 487,
+ 488, 489, 490, 231, 232, 233, 234, 235, 236, 237,
+ 0, 518, 0, 0, 0, 0, 231, 232, 233, 234,
+ 235, 236, 237, 0, 0, 0, 0, 0, 0, 0,
+ 465, 115, 116, 1, 208, 209, 89, 119, 120, 121,
+ 122, 6, 90, 514, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
+ 0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
+ 37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
+ 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
+ 0, 0, 0, 0, 0, 152, 0, 135, 0, 210,
+ 115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
+ 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 220, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 221, 222, 223,
+ 224, 225, 226, 125, 227, 34, 35, 228, 229, 230,
+ 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 128, 58, 59, 129, 61, 62, 104, 105, 106, 107,
- 0, 0, 0, 108, 0, 0, 0, 130, 131, 0,
- 0, 0, 0, 0, 150, 203, 133, 113, 114, 1,
- 115, 116, 87, 117, 118, 119, 120, 6, 88, 0,
- 89, 121, 90, 91, 92, 12, 13, 93, 122, 94,
- 17, 18, 95, 96, 97, 98, 22, 99, 24, 25,
- 100, 101, 102, 103, 0, 0, 0, 0, 30, 31,
- 123, 33, 34, 35, 0, 36, 37, 124, 39, 125,
- 41, 126, 43, 127, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 128, 58, 59,
- 129, 61, 62, 104, 105, 106, 107, 0, 0, 0,
- 108, 0, 0, 0, 130, 131, 0, 0, 0, 0,
- 0, 132, 0, 133, 113, 114, 1, 115, 116, 87,
- 117, 118, 119, 120, 6, 88, 0, 89, 8, 90,
- 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
- 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
- 103, 0, 0, 0, 0, 30, 31, 123, 33, 34,
- 35, 0, 36, 37, 124, 39, 125, 41, 126, 43,
- 127, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 128, 58, 59, 129, 61, 62,
- 104, 105, 106, 107, 0, 0, 0, 108, 0, 0,
- 0, 130, 131, 0, 0, 0, 0, 0, 150, 0,
- 133, 113, 114, 1, 115, 116, 87, 117, 118, 119,
- 120, 6, 88, 0, 89, 8, 90, 91, 92, 12,
- 13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
- 22, 99, 24, 25, 100, 101, 102, 103, 0, 0,
- 0, 0, 30, 31, 123, 33, 34, 35, 0, 36,
- 37, 124, 39, 125, 41, 126, 43, 127, 45, 46,
+ 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
+ 0, 0, 0, 110, 231, 232, 233, 234, 235, 236,
+ 237, 0, 0, 238, 152, 0, 135, 115, 116, 1,
+ 117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
+ 91, 8, 92, 93, 94, 12, 252, 95, 15, 96,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 221, 222, 223, 224, 225, 226,
+ 125, 227, 253, 254, 228, 229, 230, 126, 39, 127,
+ 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
+ 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 231, 232, 233, 234, 235, 236, 237, 0, 0,
+ 238, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
+ 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
+ 98, 99, 100, 22, 101, 264, 25, 102, 103, 104,
+ 105, 221, 222, 223, 224, 225, 226, 125, 227, 34,
+ 35, 228, 229, 230, 126, 39, 127, 41, 128, 43,
+ 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
+ 106, 107, 108, 109, 0, 0, 0, 110, 231, 232,
+ 233, 234, 235, 236, 237, 0, 0, 238, 152, 0,
+ 135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
+ 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 221, 222,
+ 223, 224, 225, 226, 125, 227, 34, 35, 228, 229,
+ 230, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 128, 58, 59, 129, 61, 62, 104, 105, 106,
- 107, 0, 0, 0, 108, 0, 0, 0, 130, 131,
- 0, 0, 0, 0, 0, 132, 0, 133, 113, 114,
- 1, 115, 116, 87, 117, 118, 119, 120, 6, 88,
- 0, 89, 8, 90, 91, 92, 12, 13, 93, 15,
- 94, 17, 18, 95, 96, 97, 98, 22, 99, 24,
- 25, 100, 101, 102, 103, 0, 0, 0, 0, 30,
- 31, 123, 33, 34, 35, 0, 36, 37, 124, 39,
- 125, 41, 126, 43, 127, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 128, 58,
- 59, 60, 61, 62, 104, 105, 106, 107, 0, 0,
- 0, 108, 0, 0, 0, 130, 131, 0, 0, 0,
- 0, 0, 150, 0, 133, 113, 114, 1, 115, 116,
- 87, 117, 118, 119, 120, 6, 88, 0, 89, 8,
- 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
- 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
- 102, 103, 0, 0, 0, 0, 30, 31, 123, 33,
- 34, 35, 0, 36, 37, 124, 388, 125, 389, 126,
- 390, 127, 391, 46, 47, 48, 49, 50, 0, 51,
- 52, 392, 393, 394, 56, 128, 58, 395, 396, 61,
- 62, 104, 105, 106, 107, 0, 0, 0, 108, 0,
- 0, 0, 130, 131, 0, 0, 0, 0, 0, 150,
- 0, 133, 113, 114, 1, 115, 116, 87, 117, 118,
- 119, 120, 6, 88, 0, 89, 8, 90, 91, 92,
- 12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
- 98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
- 0, 0, 0, 30, 31, 123, 33, 34, 35, 0,
- 36, 37, 124, 39, 125, 41, 126, 43, 127, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 392, 393,
- 55, 56, 128, 58, 395, 396, 61, 62, 104, 105,
- 106, 107, 0, 0, 0, 108, 0, 0, 0, 130,
- 131, 0, 0, 0, 0, 0, 150, 0, 133, 113,
- 114, 1, 115, 116, 87, 117, 118, 119, 120, 6,
- 88, 0, 89, 8, 90, 91, 92, 12, 13, 93,
- 15, 94, 17, 18, 95, 96, 97, 98, 22, 99,
- 24, 25, 100, 101, 102, 103, 0, 0, 0, 0,
- 0, 0, 123, 33, 34, 35, 0, 36, 37, 124,
- 39, 125, 41, 126, 43, 127, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 128,
- 58, 59, 129, 61, 62, 104, 105, 106, 107, 0,
- 0, 0, 108, 0, 0, 0, 130, 131, 0, 0,
- 0, 0, 0, 150, 0, 133, 113, 114, 1, 115,
- 116, 87, 117, 118, 119, 120, 6, 88, 0, 89,
- 8, 90, 91, 92, 12, 13, 93, 15, 94, 17,
- 18, 95, 96, 97, 98, 22, 99, 24, 25, 100,
- 101, 102, 103, 0, 0, 0, 0, 0, 0, 123,
- 33, 34, 35, 0, 0, 0, 124, 39, 125, 41,
- 126, 43, 127, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 128, 58, 59, 129,
- 61, 62, 104, 105, 106, 107, 0, 0, 0, 108,
- 0, 0, 0, 130, 131, 0, 0, 0, 0, 0,
- 150, 0, 133, 113, 114, 1, 115, 116, 87, 117,
- 118, 119, 120, 6, 88, 0, 89, 8, 90, 91,
- 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
- 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
- 0, 0, 0, 0, 0, 0, 123, 0, 34, 35,
- 0, 0, 0, 124, 39, 125, 41, 126, 43, 127,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 128, 58, 59, 129, 61, 62, 104,
- 105, 106, 107, 0, 0, 0, 108, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 150, 0, 133,
- 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 26, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 0, 0, 0, 1, 66, 0, 0,
- 2, 3, 4, 5, 6, 0, 67, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
- 2, 3, 4, 5, 6, 0, 348, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
- 2, 3, 4, 5, 6, 0, 370, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 0, 0, 1, 66, 0, 0,
- 2, 3, 4, 5, 6, 0, 466, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 0, 22, 23, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 0, 0, 0, 0, 0, 66, 0, 0,
- 0, 0, 0, 0, 0, 0, 486, 1, 407, 408,
- 87, 2, 3, 4, 5, 6, 88, 0, 89, 8,
- 90, 91, 92, 12, 13, 93, 15, 94, 17, 18,
- 95, 96, 97, 98, 22, 99, 24, 25, 100, 101,
- 102, 103, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 104, 105, 106, 107, 0, 1, 0, 108, 87,
- 2, 3, 4, 5, 6, 88, 0, 89, 8, 90,
- 91, 92, 12, 13, 93, 15, 94, 17, 18, 95,
- 96, 97, 98, 22, 99, 24, 25, 100, 101, 102,
- 103, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 104, 105, 106, 107, 0, 1, 0, 108, 87, 2,
- 3, 4, 5, 6, 88, 0, 89, 8, 90, 91,
- 92, 12, 13, 93, 15, 94, 17, 18, 95, 96,
- 97, 98, 22, 99, 24, 25, 100, 101, 102, 103,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
+ 109, 0, 0, 0, 110, 231, 232, 233, 234, 235,
+ 236, 237, 0, 0, 238, 152, 0, 135, 115, 116,
+ 1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
+ 0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 96, 274, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 221, 222, 223, 224, 225,
+ 226, 125, 227, 34, 35, 228, 229, 230, 126, 39,
+ 127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
+ 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
+ 0, 110, 231, 232, 233, 234, 235, 236, 237, 0,
+ 0, 0, 152, 0, 135, 115, 116, 1, 117, 118,
+ 89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
+ 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
+ 97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
+ 104, 105, 0, 0, 0, 0, 30, 31, 125, 33,
+ 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
+ 62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
+ 0, 0, 132, 133, 0, 0, 0, 0, 0, 152,
+ 206, 135, 115, 116, 1, 117, 118, 89, 119, 120,
+ 121, 122, 6, 90, 0, 91, 123, 92, 93, 94,
+ 12, 13, 95, 124, 96, 17, 18, 97, 98, 99,
+ 100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
+ 0, 0, 0, 30, 31, 125, 33, 34, 35, 0,
+ 36, 37, 126, 39, 127, 41, 128, 43, 129, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
+ 108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
+ 133, 0, 0, 0, 0, 0, 134, 0, 135, 115,
+ 116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
+ 90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
+ 15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
+ 24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
+ 30, 31, 125, 33, 34, 35, 0, 36, 37, 126,
+ 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
+ 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
+ 0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
+ 0, 0, 0, 152, 0, 135, 115, 116, 1, 117,
+ 118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
+ 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
+ 103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
+ 33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
+ 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
+ 61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
+ 0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
+ 134, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
+ 94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
+ 99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
+ 0, 0, 0, 0, 30, 31, 125, 33, 34, 35,
+ 0, 36, 37, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 158, 58, 59, 60, 61, 62, 104,
- 105, 106, 107, 0, 1, 0, 108, 87, 2, 3,
- 4, 5, 6, 88, 0, 89, 8, 90, 91, 92,
- 12, 13, 93, 15, 94, 17, 18, 95, 96, 97,
- 98, 22, 99, 24, 25, 100, 101, 102, 103, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 192, 193, 194, 195, 196, 0, 51, 197, 53, 54,
- 55, 198, 57, 58, 59, 60, 61, 62, 104, 105,
- 106, 107, 0, 1, 0, 108, 87, 2, 3, 4,
- 5, 6, 88, 0, 89, 8, 90, 91, 92, 12,
- 13, 93, 15, 94, 17, 18, 95, 96, 97, 98,
- 22, 99, 24, 25, 100, 101, 102, 103, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 54, 55, 56, 130, 58, 59, 60, 61, 62, 106,
+ 107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
+ 132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
+ 115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
+ 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
+ 0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
+ 126, 391, 127, 392, 128, 393, 129, 394, 46, 47,
+ 48, 49, 50, 0, 51, 52, 395, 396, 397, 56,
+ 130, 58, 398, 399, 61, 62, 106, 107, 108, 109,
+ 0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
+ 0, 0, 0, 0, 152, 0, 135, 115, 116, 1,
+ 117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
+ 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
+ 125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
+ 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 395, 396, 55, 56, 130, 58, 398,
+ 399, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
+ 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
+ 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
+ 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
+ 105, 0, 0, 0, 0, 0, 0, 125, 33, 34,
+ 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
+ 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
+ 106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
+ 0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
+ 135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
+ 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
+ 0, 0, 0, 0, 125, 33, 34, 35, 0, 0,
+ 0, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 254, 57, 58, 59, 60, 61, 62, 104, 105, 106,
- 107, 0, 1, 0, 108, 87, 117, 118, 4, 5,
- 6, 88, 0, 89, 8, 90, 91, 92, 12, 13,
- 93, 15, 94, 17, 18, 95, 96, 97, 98, 22,
- 99, 24, 25, 100, 101, 102, 103, 0, 0, 0,
+ 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
+ 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
+ 0, 0, 0, 0, 0, 152, 0, 135, 115, 116,
+ 1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
+ 0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 0,
+ 0, 125, 0, 34, 35, 0, 0, 0, 126, 39,
+ 127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
+ 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
+ 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 152, 0, 135, 2, 3, 4, 5, 6,
+ 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 68, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 351, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 373, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 474, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 494, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
+ 0, 0, 67, 0, 0, 0, 0, 0, 0, 0,
+ 0, 435, 1, 410, 411, 89, 2, 3, 4, 5,
+ 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 124, 39, 125, 41, 126, 43, 127, 45, 46, 47,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 104, 105, 106, 107,
- 1, 0, 0, 108, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 0, 12, 13, 0, 15,
- 16, 17, 18, 19, 96, 21, 0, 22, 0, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 57, 58, 59, 60, 61, 62, 106, 107, 108, 109,
+ 0, 1, 0, 110, 89, 2, 3, 4, 5, 6,
+ 90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
+ 15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
+ 24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 106, 107, 108, 109, 0,
+ 1, 0, 110, 89, 2, 3, 4, 5, 6, 90,
+ 0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 104, 64, 0, 0, 0, 0,
- 0, 66, 218, 219, 220, 221, 241, 242, 0, 243,
- 0, 0, 225, 244, 245, 0, 0, 0, 0, 0,
- 0, 218, 219, 220, 221, 241, 242, 0, 243, 0,
- 0, 225, 244, 245, 218, 219, 220, 221, 241, 242,
- 0, 243, 0, 0, 225, 244, 245, 0, 0, 228,
- 229, 230, 231, 232, 233, 234, 0, 510, 298, 299,
- 0, 0, 0, 0, 0, 0, 0, 0, 228, 229,
- 230, 231, 232, 233, 234, 0, 0, 0, 0, 0,
- 0, 228, 229, 230, 231, 232, 233, 234, 330, 331,
- 332, 333, 334, 335, 0, 336, 0, 0, 337, 338,
- 339, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 340, 341, 342, 343, 344,
- 345, 346
+ 50, 0, 51, 52, 53, 54, 55, 56, 160, 58,
+ 59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
+ 0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
+ 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
+ 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 195, 196, 197, 198, 199,
+ 0, 51, 200, 53, 54, 55, 201, 57, 58, 59,
+ 60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
+ 110, 89, 2, 3, 4, 5, 6, 90, 0, 91,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
+ 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
+ 103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 257, 57, 58, 59, 60,
+ 61, 62, 106, 107, 108, 109, 0, 1, 0, 110,
+ 89, 119, 120, 4, 5, 6, 90, 0, 91, 8,
+ 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
+ 97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
+ 104, 105, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 106, 107, 108, 109, 1, 0, 0, 110, 2,
+ 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
+ 0, 12, 13, 0, 15, 16, 17, 18, 19, 98,
+ 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 106,
+ 64, 0, 0, 0, 0, 0, 67, 221, 222, 223,
+ 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
+ 333, 334, 335, 336, 337, 338, 0, 339, 0, 0,
+ 340, 341, 342, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 301, 302, 0, 0, 0, 0,
+ 0, 0, 0, 0, 231, 232, 233, 234, 235, 236,
+ 237, 0, 0, 0, 0, 0, 0, 343, 344, 345,
+ 346, 347, 348, 349
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 9, 21, 66, 0, 16, 14, 235, 49,
- 348, 31, 350, 34, 21, 49, 23, 19, 23, 26,
- 358, 0, 29, 44, 69, 27, 28, 148, 84, 28,
- 31, 76, 28, 97, 155, 34, 64, 375, 34, 44,
- 49, 97, 69, 52, 69, 166, 99, 36, 37, 76,
- 103, 76, 92, 93, 94, 95, 177, 64, 65, 28,
- 94, 95, 15, 23, 185, 34, 66, 97, 28, 69,
- 10, 11, 74, 300, 69, 85, 98, 97, 97, 19,
- 102, 34, 91, 92, 93, 94, 95, 27, 28, 42,
- 43, 44, 45, 46, 47, 69, 49, 69, 148, 52,
- 53, 54, 76, 97, 76, 155, 388, 389, 390, 391,
- 98, 55, 394, 57, 99, 59, 166, 61, 33, 28,
- 347, 128, 97, 63, 152, 34, 133, 177, 466, 97,
- 468, 249, 250, 251, 74, 185, 89, 90, 91, 92,
- 93, 94, 95, 97, 172, 152, 97, 98, 486, 156,
- 98, 158, 100, 250, 251, 97, 494, 28, 97, 97,
- 97, 97, 97, 28, 502, 172, 98, 26, 97, 103,
- 103, 102, 510, 180, 102, 28, 42, 43, 44, 45,
- 97, 121, 122, 49, 26, 16, 52, 53, 54, 129,
- 100, 97, 132, 97, 97, 87, 34, 86, 28, 28,
- 28, 28, 103, 265, 42, 43, 44, 45, 46, 47,
- 150, 49, 97, 10, 52, 53, 54, 157, 28, 71,
- 97, 34, 97, 89, 90, 91, 92, 93, 94, 95,
- 97, 249, 250, 251, 71, 85, 97, 86, 85, 97,
- 240, 97, 249, 250, 251, 240, 86, 86, 69, 97,
- 366, 89, 90, 91, 92, 93, 94, 95, 28, 97,
- 373, 97, 297, 460, 21, 265, 266, 306, 214, 185,
- -1, -1, -1, -1, -1, -1, -1, -1, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
- 230, 231, 232, 233, 234, -1, -1, -1, -1, 306,
- -1, 241, 242, 243, 244, 245, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 257, 258, -1,
- 33, 261, -1, -1, -1, -1, -1, -1, -1, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, -1, -1, -1, 348, -1,
- 350, -1, -1, -1, -1, 362, -1, -1, 358, -1,
- -1, -1, 302, 303, -1, 305, -1, -1, -1, 309,
- -1, 311, -1, 373, -1, 375, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
- 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346, -1, -1, -1,
- -1, -1, -1, -1, 442, -1, 356, 357, 117, 118,
- 119, 120, -1, -1, 123, 124, 125, 126, 127, -1,
- -1, 130, 131, 433, -1, 442, 376, -1, 433, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 464, -1, 466, 474, 468, 464,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, 486, 89, 90, 91,
- 92, 93, 94, 95, 494, -1, 98, -1, 505, -1,
- -1, -1, 502, -1, -1, -1, -1, -1, -1, -1,
- 510, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, -1, 100, -1,
- 470, -1, -1, -1, -1, 42, 43, 44, 45, 46,
+ 0, 21, 9, 67, 238, 16, 0, 14, 23, 31,
+ 49, 351, 353, 474, 21, 84, 23, 29, 49, 26,
+ 361, 52, 29, 19, 34, 98, 49, 100, 97, 44,
+ 34, 27, 28, 494, 44, 36, 37, 378, 42, 43,
+ 44, 45, 46, 47, 69, 49, 97, 98, 52, 53,
+ 54, 76, 64, 92, 93, 94, 95, 64, 65, 31,
+ 91, 92, 93, 94, 95, 97, 69, 67, 0, 303,
+ 70, 94, 95, 76, 85, 97, 70, 69, 23, 75,
+ 252, 253, 254, 28, 76, 89, 90, 91, 92, 93,
+ 94, 95, 150, 97, 99, 10, 11, 28, 438, 157,
+ 69, 150, 69, 34, 19, 28, 97, 76, 157, 76,
+ 168, 34, 27, 28, 28, 28, 350, 253, 254, 168,
+ 34, 34, 180, 130, 97, 99, 33, 98, 135, 103,
+ 188, 180, 98, 97, 474, 476, 102, 97, 97, 188,
+ 97, 97, 154, 391, 392, 393, 394, 154, 63, 397,
+ 97, 158, 28, 160, 494, 97, 97, 97, 97, 97,
+ 75, 502, 174, 28, 55, 102, 57, 174, 59, 510,
+ 61, 26, 98, 103, 103, 102, 183, 518, 42, 43,
+ 44, 45, 28, 15, 26, 49, 97, 97, 52, 53,
+ 54, 100, 16, 97, 97, 97, 97, 87, 28, 28,
+ 28, 28, 34, 103, 268, 86, 10, 28, 123, 124,
+ 42, 43, 44, 45, 46, 47, 131, 49, 71, 134,
+ 52, 53, 54, 97, 34, 89, 90, 91, 92, 93,
+ 94, 95, 252, 253, 254, 97, 97, 152, 71, 86,
+ 85, 85, 369, 243, 159, 252, 253, 254, 97, 243,
+ 86, 86, 70, 28, 97, 376, 97, 89, 90, 91,
+ 92, 93, 94, 95, 438, 300, 97, 467, 268, 269,
+ 21, 97, 309, 217, -1, -1, 188, -1, 33, -1,
+ -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, 309, -1, -1, -1, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, -1, -1, -1, -1, -1, -1, 244,
+ 245, 246, 247, 248, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, 260, 261, -1, -1, 264,
+ -1, 351, -1, 353, -1, -1, -1, -1, 365, -1,
+ -1, 361, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, 376, -1, 378, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 305, 306, -1, 308, -1, -1, -1, 312, -1, 314,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, -1, -1, 449, 438, -1,
+ 440, -1, 449, -1, 359, 360, 440, 119, 120, 121,
+ 122, -1, -1, 125, 126, 127, 128, 129, -1, -1,
+ 132, 133, -1, -1, 379, -1, -1, -1, -1, -1,
+ -1, 471, -1, -1, 474, 482, 476, 471, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, 494, -1, -1, -1, -1, -1,
+ -1, -1, 502, -1, -1, -1, 513, -1, -1, -1,
+ 510, -1, -1, -1, -1, -1, -1, -1, 518, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, -1, 98, -1, 100, -1, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 478, -1, 42, 43, 44, 45, 46,
47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, 491, -1, -1, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, 273, 274, 275, 276, 277, 278,
- 279, 280, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, -1, 100, -1, -1, -1, 296, 297, 298,
- 299, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, 42, 43, 44, 45, 46, 47,
+ -1, -1, -1, -1, 499, 89, 90, 91, 92, 93,
+ 94, 95, -1, -1, -1, -1, 100, -1, -1, -1,
+ -1, -1, -1, -1, 276, 277, 278, 279, 280, 281,
+ 282, 283, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 98, -1, -1, -1, -1, -1, 299, 300, 301,
+ 302, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
-1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
+ 362, 89, 90, 91, 92, 93, 94, 95, -1, 97,
-1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, -1, -1, -1, -1, -1, 387, -1,
- -1, -1, -1, 392, 393, -1, 395, 396, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 449, 450, 451, 452, -1, 454, 455, 456, 457, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, -1, -1, -1, -1, 484, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 497, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
- -1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
- 99, -1, 101, -1, 103, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 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, -1, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, -1, 88, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, 98, 99,
- -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 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, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, 98, 99, -1, 101, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 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, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 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, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, 99, -1, 101,
+ 95, -1, 97, -1, -1, -1, -1, -1, 390, -1,
+ -1, -1, -1, 395, 396, -1, 398, 399, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, 456, 457, 458, 459, -1, 461,
+ 462, 463, 464, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
+ 492, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 505, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, -1, 99, -1, 101, -1, 103,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 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, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, 100, 101, 5, 6, 7,
+ -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, 98, 99, -1, 101, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 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,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
+ 88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ 98, 99, -1, 101, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 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, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 81, 82, 83, 84, -1, -1, -1, 88, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, 98, 99, -1,
101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 34, 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, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ 84, -1, -1, -1, 88, 89, 90, 91, 92, 93,
+ 94, 95, -1, -1, 98, 99, -1, 101, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 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, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
+ -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
-1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
@@ -1492,7 +1460,7 @@ static const yytype_int16 yycheck[] =
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, -1, -1, -1, 88, -1,
-1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
- -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
+ 100, 101, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
@@ -1506,7 +1474,7 @@ static const yytype_int16 yycheck[] =
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, -1, 53, 54, 55,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
@@ -1515,8 +1483,8 @@ static const yytype_int16 yycheck[] =
9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, -1, -1, -1, 55, 56, 57, 58,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
@@ -1525,93 +1493,110 @@ static const yytype_int16 yycheck[] =
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, -1, -1, 48, -1, 50, 51,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 7, 99, -1, 101,
- 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, 7, 88, -1, -1,
- 11, 12, 13, 14, 15, -1, 97, 18, 19, 20,
- 21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, -1, -1, -1, -1, -1, 97, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
+ 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 41, -1, -1, -1, -1, -1, -1, 48, 49, 50,
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 7, -1, 88, 10, 11,
- 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, 7, -1, 88, 10, 11, 12,
- 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, 7, -1, 88, 10, 11, 12, 13,
+ 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, -1, -1, 48, 49, 50, 51, -1, -1,
+ -1, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, 7, -1, 88, 10, 11, 12, 13, 14,
+ 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, -1,
+ -1, 48, -1, 50, 51, -1, -1, -1, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 7, 99, -1, 101, 11, 12, 13, 14, 15,
+ -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, -1,
+ -1, -1, 88, -1, -1, -1, -1, -1, -1, -1,
+ -1, 97, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
@@ -1619,29 +1604,61 @@ static const yytype_int16 yycheck[] =
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 7, -1, -1, 88, 11, 12, 13, 14, 15, -1,
- -1, 18, 19, 20, 21, -1, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, -1, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ 7, -1, 88, 10, 11, 12, 13, 14, 15, 16,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- -1, 88, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, 79, 80,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, 7,
+ -1, 88, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, 7, -1,
+ 88, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 7, -1, 88,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 7, -1, -1, 88, 11,
+ 12, 13, 14, 15, -1, -1, 18, 19, 20, 21,
+ -1, 23, 24, -1, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, -1, -1, -1, -1, -1, 88, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 79, 80, -1, -1, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1654,52 +1671,53 @@ static const yytype_uint8 yystos[] =
46, 47, 48, 49, 50, 51, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 88, 97, 105, 106,
- 107, 108, 109, 114, 116, 120, 121, 122, 125, 127,
- 128, 129, 130, 131, 132, 31, 97, 10, 16, 18,
- 20, 21, 22, 25, 27, 30, 31, 32, 33, 35,
- 38, 39, 40, 41, 81, 82, 83, 84, 88, 116,
- 117, 118, 119, 5, 6, 8, 9, 11, 12, 13,
- 14, 19, 26, 48, 55, 57, 59, 61, 75, 78,
- 92, 93, 99, 101, 117, 123, 124, 136, 137, 140,
- 141, 142, 145, 146, 147, 150, 153, 154, 155, 157,
- 99, 155, 117, 31, 123, 155, 36, 37, 75, 117,
- 137, 139, 145, 117, 117, 123, 155, 123, 124, 118,
- 155, 118, 117, 121, 0, 107, 123, 155, 97, 97,
- 98, 154, 154, 154, 154, 155, 155, 154, 154, 154,
- 154, 154, 63, 64, 65, 66, 67, 70, 74, 117,
- 155, 154, 154, 100, 155, 8, 9, 103, 117, 151,
- 152, 155, 158, 159, 99, 97, 97, 28, 42, 43,
- 44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
- 91, 92, 93, 94, 95, 98, 136, 156, 157, 155,
- 33, 46, 47, 49, 53, 54, 118, 97, 97, 24,
- 50, 51, 117, 155, 74, 34, 44, 126, 33, 97,
- 97, 36, 97, 97, 97, 34, 97, 97, 118, 97,
- 117, 28, 156, 28, 34, 28, 34, 28, 34, 28,
- 34, 69, 76, 69, 76, 69, 76, 69, 76, 69,
- 76, 55, 57, 59, 61, 148, 28, 28, 79, 80,
- 98, 100, 103, 103, 102, 103, 98, 102, 102, 98,
- 158, 26, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 159,
- 42, 43, 44, 45, 46, 47, 49, 52, 53, 54,
- 89, 90, 91, 92, 93, 94, 95, 98, 97, 120,
- 97, 137, 138, 140, 138, 138, 23, 44, 97, 28,
- 155, 155, 84, 97, 110, 111, 112, 113, 155, 121,
- 97, 120, 133, 134, 135, 97, 26, 154, 154, 154,
- 154, 154, 154, 154, 154, 23, 28, 149, 56, 58,
- 60, 62, 71, 72, 73, 77, 78, 143, 144, 154,
- 143, 154, 154, 159, 155, 155, 155, 8, 9, 117,
- 152, 155, 100, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 159, 133, 16, 133, 97, 97, 97, 155, 155,
- 133, 97, 117, 113, 97, 87, 135, 133, 155, 28,
- 28, 28, 28, 154, 149, 149, 149, 149, 154, 154,
- 149, 154, 154, 100, 16, 85, 97, 120, 97, 15,
- 34, 86, 118, 97, 10, 154, 154, 154, 154, 154,
- 154, 154, 154, 28, 71, 144, 97, 120, 97, 133,
- 133, 34, 155, 97, 97, 115, 117, 71, 133, 85,
- 86, 155, 97, 133, 97, 98, 154, 85, 97, 97,
- 97, 133, 117, 97, 133, 86, 86, 97, 97
+ 78, 79, 80, 81, 82, 83, 85, 88, 97, 105,
+ 106, 107, 108, 109, 114, 116, 120, 121, 122, 123,
+ 126, 128, 129, 130, 131, 132, 133, 31, 97, 10,
+ 16, 18, 20, 21, 22, 25, 27, 30, 31, 32,
+ 33, 35, 38, 39, 40, 41, 81, 82, 83, 84,
+ 88, 116, 117, 118, 119, 5, 6, 8, 9, 11,
+ 12, 13, 14, 19, 26, 48, 55, 57, 59, 61,
+ 75, 78, 92, 93, 99, 101, 117, 124, 125, 140,
+ 141, 144, 145, 146, 149, 150, 151, 154, 157, 158,
+ 159, 161, 99, 159, 117, 31, 124, 159, 36, 37,
+ 75, 117, 141, 143, 149, 117, 117, 124, 159, 124,
+ 125, 118, 159, 118, 117, 97, 122, 0, 107, 124,
+ 159, 97, 97, 98, 158, 158, 158, 158, 159, 159,
+ 158, 158, 158, 158, 158, 63, 64, 65, 66, 67,
+ 70, 74, 117, 159, 158, 158, 100, 159, 8, 9,
+ 103, 117, 155, 156, 159, 162, 163, 99, 97, 97,
+ 28, 42, 43, 44, 45, 46, 47, 49, 52, 53,
+ 54, 89, 90, 91, 92, 93, 94, 95, 98, 140,
+ 160, 161, 159, 33, 46, 47, 49, 53, 54, 118,
+ 97, 97, 24, 50, 51, 117, 159, 74, 34, 44,
+ 127, 33, 97, 97, 36, 97, 97, 97, 34, 97,
+ 97, 118, 97, 117, 28, 160, 28, 34, 28, 34,
+ 28, 34, 28, 34, 69, 76, 69, 76, 69, 76,
+ 69, 76, 69, 76, 55, 57, 59, 61, 152, 28,
+ 28, 79, 80, 98, 100, 103, 103, 102, 103, 98,
+ 102, 102, 98, 162, 26, 159, 159, 159, 159, 159,
+ 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
+ 159, 159, 163, 42, 43, 44, 45, 46, 47, 49,
+ 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
+ 98, 97, 120, 97, 141, 142, 144, 142, 142, 23,
+ 44, 97, 28, 159, 159, 84, 97, 110, 111, 112,
+ 113, 159, 122, 97, 120, 134, 135, 136, 97, 26,
+ 158, 158, 158, 158, 158, 158, 158, 158, 23, 28,
+ 153, 56, 58, 60, 62, 71, 72, 73, 77, 78,
+ 147, 148, 158, 147, 158, 158, 163, 159, 159, 159,
+ 8, 9, 117, 156, 159, 100, 159, 159, 159, 159,
+ 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
+ 159, 159, 159, 159, 163, 97, 121, 137, 138, 139,
+ 16, 134, 97, 97, 97, 159, 159, 134, 97, 117,
+ 113, 97, 87, 136, 134, 159, 28, 28, 28, 28,
+ 158, 153, 153, 153, 153, 158, 158, 153, 158, 158,
+ 100, 16, 85, 139, 97, 120, 97, 15, 34, 86,
+ 118, 97, 10, 158, 158, 158, 158, 158, 158, 158,
+ 158, 28, 71, 148, 97, 120, 97, 137, 134, 34,
+ 159, 97, 97, 115, 117, 71, 137, 85, 86, 159,
+ 97, 134, 97, 98, 158, 85, 97, 97, 97, 134,
+ 117, 97, 134, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1715,24 +1733,25 @@ static const yytype_uint8 yyr1[] =
116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 118, 118, 119, 119, 120,
- 120, 120, 120, 120, 120, 121, 121, 121, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
- 124, 124, 125, 125, 125, 125, 126, 126, 127, 127,
- 127, 128, 128, 129, 129, 129, 129, 130, 130, 130,
- 130, 131, 131, 132, 133, 133, 134, 134, 135, 135,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 137, 138, 138, 139, 139, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 141, 141, 142,
- 142, 142, 142, 143, 143, 143, 143, 143, 144, 145,
- 145, 145, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 147, 147, 147, 147, 147, 148, 148, 148,
- 148, 149, 149, 150, 150, 150, 151, 151, 152, 152,
- 152, 153, 153, 154, 154, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 157, 157, 158, 158, 159, 159
+ 120, 121, 121, 121, 121, 121, 121, 122, 122, 122,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 124, 124, 124, 124, 124, 124, 124, 125,
+ 125, 125, 125, 125, 126, 126, 126, 126, 127, 127,
+ 128, 128, 128, 129, 129, 130, 130, 130, 130, 131,
+ 131, 131, 131, 132, 132, 133, 134, 134, 135, 135,
+ 136, 136, 137, 137, 138, 138, 139, 139, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 141, 142, 142, 143, 143, 144, 144, 144, 144, 144,
+ 144, 144, 144, 144, 144, 145, 145, 146, 146, 146,
+ 146, 147, 147, 147, 147, 147, 148, 149, 149, 149,
+ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 151, 151, 151, 151, 151, 152, 152, 152, 152, 153,
+ 153, 154, 154, 154, 155, 155, 156, 156, 156, 157,
+ 157, 158, 158, 159, 159, 159, 159, 159, 159, 159,
+ 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
+ 159, 159, 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 161, 161, 162, 162, 163, 163
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1748,24 +1767,25 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
- 3, 3, 3, 3, 3, 5, 3, 3, 2, 2,
- 0, 1, 3, 2, 4, 2, 5, 2, 2, 5,
- 4, 3, 5, 5, 5, 5, 1, 1, 3, 3,
- 3, 4, 7, 6, 9, 7, 10, 7, 11, 12,
- 9, 4, 6, 4, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 2, 4, 3, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 4,
- 6, 4, 6, 4, 6, 4, 6, 2, 2, 1,
- 1, 1, 5, 1, 1, 5, 2, 2, 2, 2,
- 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 6, 6, 6, 6, 6, 1, 1, 1,
- 1, 1, 1, 3, 3, 3, 1, 3, 3, 3,
- 3, 2, 2, 1, 1, 1, 1, 3, 3, 3,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 3, 3, 3, 3, 3, 3, 3, 5, 3, 3,
+ 2, 2, 0, 1, 3, 2, 4, 2, 5, 2,
+ 2, 5, 4, 3, 5, 5, 5, 5, 1, 1,
+ 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
+ 11, 12, 9, 4, 6, 4, 0, 1, 1, 2,
+ 1, 1, 0, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 2, 4, 3, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 4, 6, 4,
+ 6, 4, 6, 4, 6, 2, 2, 1, 1, 1,
+ 5, 1, 1, 5, 2, 2, 2, 2, 4, 4,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
+ 6, 6, 6, 6, 6, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 1, 3, 3, 3, 3, 2,
+ 2, 1, 1, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 1, 1, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 4, 4, 0, 1, 1, 3
};
@@ -2039,37 +2059,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 2063 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 2069 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2055 "engines/director/lingo/lingo-gr.cpp"
+#line 2075 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2067 "engines/director/lingo/lingo-gr.cpp"
+#line 2087 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2073 "engines/director/lingo/lingo-gr.cpp"
+#line 2093 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2337,7 +2357,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2341 "engines/director/lingo/lingo-gr.cpp"
+#line 2361 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2348,7 +2368,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2352 "engines/director/lingo/lingo-gr.cpp"
+#line 2372 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2358,37 +2378,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2362 "engines/director/lingo/lingo-gr.cpp"
+#line 2382 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2368 "engines/director/lingo/lingo-gr.cpp"
+#line 2388 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2374 "engines/director/lingo/lingo-gr.cpp"
+#line 2394 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2400 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2386 "engines/director/lingo/lingo-gr.cpp"
+#line 2406 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2392 "engines/director/lingo/lingo-gr.cpp"
+#line 2412 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2399,7 +2419,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2423 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2409,13 +2429,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2413 "engines/director/lingo/lingo-gr.cpp"
+#line 2433 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2419 "engines/director/lingo/lingo-gr.cpp"
+#line 2439 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2424,446 +2444,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2428 "engines/director/lingo/lingo-gr.cpp"
+#line 2448 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2435 "engines/director/lingo/lingo-gr.cpp"
+#line 2455 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2461 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2447 "engines/director/lingo/lingo-gr.cpp"
+#line 2467 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2453 "engines/director/lingo/lingo-gr.cpp"
+#line 2473 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2459 "engines/director/lingo/lingo-gr.cpp"
+#line 2479 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2465 "engines/director/lingo/lingo-gr.cpp"
+#line 2485 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2471 "engines/director/lingo/lingo-gr.cpp"
+#line 2491 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2477 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2483 "engines/director/lingo/lingo-gr.cpp"
+#line 2503 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2489 "engines/director/lingo/lingo-gr.cpp"
+#line 2509 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2495 "engines/director/lingo/lingo-gr.cpp"
+#line 2515 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2501 "engines/director/lingo/lingo-gr.cpp"
+#line 2521 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2507 "engines/director/lingo/lingo-gr.cpp"
+#line 2527 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2513 "engines/director/lingo/lingo-gr.cpp"
+#line 2533 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2519 "engines/director/lingo/lingo-gr.cpp"
+#line 2539 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2545 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2531 "engines/director/lingo/lingo-gr.cpp"
+#line 2551 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2537 "engines/director/lingo/lingo-gr.cpp"
+#line 2557 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2543 "engines/director/lingo/lingo-gr.cpp"
+#line 2563 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2549 "engines/director/lingo/lingo-gr.cpp"
+#line 2569 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2555 "engines/director/lingo/lingo-gr.cpp"
+#line 2575 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2561 "engines/director/lingo/lingo-gr.cpp"
+#line 2581 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2567 "engines/director/lingo/lingo-gr.cpp"
+#line 2587 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
+#line 2593 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2579 "engines/director/lingo/lingo-gr.cpp"
+#line 2599 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2585 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2617 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2623 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2609 "engines/director/lingo/lingo-gr.cpp"
+#line 2629 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2635 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2647 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2653 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2659 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2665 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2671 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2677 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2683 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2707 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2767 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2773 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2779 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2785 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2797 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2815 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2821 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2827 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2833 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2839 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2845 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2851 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2863 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2869 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2875 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* nonemptyidlist: ID */
@@ -2872,7 +2892,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2876 "engines/director/lingo/lingo-gr.cpp"
+#line 2896 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2880,989 +2900,1028 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2884 "engines/director/lingo/lingo-gr.cpp"
+#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* proc: CMDID cmdargs '\n' */
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 100: /* stmt: tENDIF '\n' */
+#line 385 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = nullptr; }
+#line 2910 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 110: /* proc: CMDID cmdargs '\n' */
+#line 401 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 2916 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* proc: tPUT cmdargs '\n' */
-#line 398 "engines/director/lingo/lingo-gr.y"
+ case 111: /* proc: tPUT cmdargs '\n' */
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2922 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* proc: tGO cmdargs '\n' */
-#line 399 "engines/director/lingo/lingo-gr.y"
+ case 112: /* proc: tGO cmdargs '\n' */
+#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 2928 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* proc: tGO frameargs '\n' */
-#line 400 "engines/director/lingo/lingo-gr.y"
+ case 113: /* proc: tGO frameargs '\n' */
+#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2908 "engines/director/lingo/lingo-gr.cpp"
+#line 2934 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* proc: tPLAY cmdargs '\n' */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 114: /* proc: tPLAY cmdargs '\n' */
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2914 "engines/director/lingo/lingo-gr.cpp"
+#line 2940 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* proc: tPLAY frameargs '\n' */
-#line 402 "engines/director/lingo/lingo-gr.y"
+ case 115: /* proc: tPLAY frameargs '\n' */
+#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2920 "engines/director/lingo/lingo-gr.cpp"
+#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* proc: tOPEN cmdargs '\n' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+ case 116: /* proc: tOPEN cmdargs '\n' */
+#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* proc: tOPEN expr tWITH expr '\n' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 117: /* proc: tOPEN expr tWITH expr '\n' */
+#line 408 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 2936 "engines/director/lingo/lingo-gr.cpp"
+#line 2962 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* proc: tNEXT tREPEAT '\n' */
-#line 409 "engines/director/lingo/lingo-gr.y"
+ case 118: /* proc: tNEXT tREPEAT '\n' */
+#line 413 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2942 "engines/director/lingo/lingo-gr.cpp"
+#line 2968 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* proc: tEXIT tREPEAT '\n' */
-#line 410 "engines/director/lingo/lingo-gr.y"
+ case 119: /* proc: tEXIT tREPEAT '\n' */
+#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 2974 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* proc: tEXIT '\n' */
-#line 411 "engines/director/lingo/lingo-gr.y"
+ case 120: /* proc: tEXIT '\n' */
+#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+#line 2980 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* proc: tASSERTERROR stmtoneliner */
-#line 412 "engines/director/lingo/lingo-gr.y"
+ case 121: /* proc: tASSERTERROR stmtoneliner */
+#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2960 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* cmdargs: %empty */
-#line 415 "engines/director/lingo/lingo-gr.y"
+ case 122: /* cmdargs: %empty */
+#line 419 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2968 "engines/director/lingo/lingo-gr.cpp"
+#line 2994 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* cmdargs: expr */
-#line 418 "engines/director/lingo/lingo-gr.y"
+ case 123: /* cmdargs: expr */
+#line 422 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2978 "engines/director/lingo/lingo-gr.cpp"
+#line 3004 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* cmdargs: expr ',' nonemptyexprlist */
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 124: /* cmdargs: expr ',' nonemptyexprlist */
+#line 427 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* cmdargs: expr expr_nounarymath */
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 125: /* cmdargs: expr expr_nounarymath */
+#line 431 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 3024 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 433 "engines/director/lingo/lingo-gr.y"
+ case 126: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
+#line 437 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
(yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3034 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* cmdargs: '(' ')' */
-#line 438 "engines/director/lingo/lingo-gr.y"
+ case 127: /* cmdargs: '(' ')' */
+#line 442 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3042 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 441 "engines/director/lingo/lingo-gr.y"
+ case 128: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 445 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* frameargs: tFRAME expr */
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 129: /* frameargs: tFRAME expr */
+#line 455 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3035 "engines/director/lingo/lingo-gr.cpp"
+#line 3061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* frameargs: tMOVIE expr */
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 130: /* frameargs: tMOVIE expr */
+#line 460 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3046 "engines/director/lingo/lingo-gr.cpp"
+#line 3072 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 131: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 466 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3057 "engines/director/lingo/lingo-gr.cpp"
+#line 3083 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* frameargs: expr tOF tMOVIE expr */
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 132: /* frameargs: expr tOF tMOVIE expr */
+#line 472 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3068 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* frameargs: tFRAME expr expr_nounarymath */
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 133: /* frameargs: tFRAME expr expr_nounarymath */
+#line 478 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 482 "engines/director/lingo/lingo-gr.y"
+ case 134: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 486 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3085 "engines/director/lingo/lingo-gr.cpp"
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 483 "engines/director/lingo/lingo-gr.y"
+ case 135: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 487 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3091 "engines/director/lingo/lingo-gr.cpp"
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 136: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 488 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3097 "engines/director/lingo/lingo-gr.cpp"
+#line 3123 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* asgn: tSET varorthe to expr '\n' */
-#line 485 "engines/director/lingo/lingo-gr.y"
+ case 137: /* asgn: tSET varorthe to expr '\n' */
+#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3103 "engines/director/lingo/lingo-gr.cpp"
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* definevars: tGLOBAL idlist '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 140: /* definevars: tGLOBAL idlist '\n' */
+#line 494 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3109 "engines/director/lingo/lingo-gr.cpp"
+#line 3135 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* definevars: tPROPERTY idlist '\n' */
-#line 491 "engines/director/lingo/lingo-gr.y"
+ case 141: /* definevars: tPROPERTY idlist '\n' */
+#line 495 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3115 "engines/director/lingo/lingo-gr.cpp"
+#line 3141 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* definevars: tINSTANCE idlist '\n' */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 142: /* definevars: tINSTANCE idlist '\n' */
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3121 "engines/director/lingo/lingo-gr.cpp"
+#line 3147 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* ifstmt: tIF expr tTHEN stmt */
-#line 495 "engines/director/lingo/lingo-gr.y"
+ case 143: /* ifstmt: tIF expr tTHEN stmt */
+#line 499 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3130 "engines/director/lingo/lingo-gr.cpp"
+#line 3156 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* ifstmt: tIF expr tTHEN '\n' stmtlist tENDIF '\n' */
-#line 499 "engines/director/lingo/lingo-gr.y"
- {
+ case 144: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
+#line 503 "engines/director/lingo/lingo-gr.y"
+ {
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3137 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 503 "engines/director/lingo/lingo-gr.y"
+ case 145: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 507 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3148 "engines/director/lingo/lingo-gr.cpp"
+#line 3174 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist tENDIF '\n' */
-#line 509 "engines/director/lingo/lingo-gr.y"
- {
+ case 146: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
+#line 513 "engines/director/lingo/lingo-gr.y"
+ {
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3157 "engines/director/lingo/lingo-gr.cpp"
+#line 3183 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE stmt */
-#line 513 "engines/director/lingo/lingo-gr.y"
- {
+ case 147: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
+#line 517 "engines/director/lingo/lingo-gr.y"
+ {
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3166 "engines/director/lingo/lingo-gr.cpp"
+#line 3192 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist tELSE '\n' stmtlist tENDIF '\n' */
-#line 517 "engines/director/lingo/lingo-gr.y"
- {
+ case 148: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
+#line 521 "engines/director/lingo/lingo-gr.y"
+ {
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3173 "engines/director/lingo/lingo-gr.cpp"
+#line 3199 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 149: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 525 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3180 "engines/director/lingo/lingo-gr.cpp"
+#line 3206 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 150: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 527 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3187 "engines/director/lingo/lingo-gr.cpp"
+#line 3213 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 525 "engines/director/lingo/lingo-gr.y"
+ case 151: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 529 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
-#line 527 "engines/director/lingo/lingo-gr.y"
+ case 152: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
+#line 531 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3201 "engines/director/lingo/lingo-gr.cpp"
+#line 3227 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* tell: tTELL expr tTO stmtoneliner */
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 153: /* tell: tTELL expr tTO stmtoneliner */
+#line 535 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
+#line 3236 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 154: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 539 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3217 "engines/director/lingo/lingo-gr.cpp"
+#line 3243 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* when: tWHEN ID tTHEN expr */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 155: /* when: tWHEN ID tTHEN expr */
+#line 543 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3223 "engines/director/lingo/lingo-gr.cpp"
+#line 3249 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* stmtlist: %empty */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 156: /* stmtlist: %empty */
+#line 545 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3229 "engines/director/lingo/lingo-gr.cpp"
+#line 3255 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* nonemptystmtlist: stmtlistline */
-#line 546 "engines/director/lingo/lingo-gr.y"
+ case 158: /* nonemptystmtlist: stmtlistline */
+#line 550 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3266 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
-#line 552 "engines/director/lingo/lingo-gr.y"
+ case 159: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
+#line 556 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3250 "engines/director/lingo/lingo-gr.cpp"
+#line 3276 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* stmtlistline: '\n' */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 160: /* stmtlistline: '\n' */
+#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3256 "engines/director/lingo/lingo-gr.cpp"
+#line 3282 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 162: /* stmtlist_insideif: %empty */
+#line 567 "engines/director/lingo/lingo-gr.y"
+ { (yyval.nodelist) = new NodeList; }
+#line 3288 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 164: /* nonemptystmtlist_insideif: stmtlistline_insideif */
+#line 572 "engines/director/lingo/lingo-gr.y"
+ {
+ NodeList *list = new NodeList;
+ if ((yyvsp[0].node)) {
+ list->push_back((yyvsp[0].node));
+ }
+ (yyval.nodelist) = list; }
+#line 3299 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 165: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
+#line 578 "engines/director/lingo/lingo-gr.y"
+ {
+ if ((yyvsp[0].node)) {
+ (yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
+ }
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 3309 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* simpleexpr_nounarymath: tINT */
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 166: /* stmtlistline_insideif: '\n' */
+#line 585 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = nullptr; }
+#line 3315 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 168: /* simpleexpr_nounarymath: tINT */
+#line 592 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3321 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* simpleexpr_nounarymath: tFLOAT */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 169: /* simpleexpr_nounarymath: tFLOAT */
+#line 593 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3268 "engines/director/lingo/lingo-gr.cpp"
+#line 3327 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* simpleexpr_nounarymath: tSYMBOL */
-#line 568 "engines/director/lingo/lingo-gr.y"
+ case 170: /* simpleexpr_nounarymath: tSYMBOL */
+#line 594 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3274 "engines/director/lingo/lingo-gr.cpp"
+#line 3333 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* simpleexpr_nounarymath: tSTRING */
-#line 569 "engines/director/lingo/lingo-gr.y"
+ case 171: /* simpleexpr_nounarymath: tSTRING */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3280 "engines/director/lingo/lingo-gr.cpp"
+#line 3339 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 172: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+#line 3345 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 571 "engines/director/lingo/lingo-gr.y"
+ case 173: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3292 "engines/director/lingo/lingo-gr.cpp"
+#line 3351 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 572 "engines/director/lingo/lingo-gr.y"
+ case 174: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3298 "engines/director/lingo/lingo-gr.cpp"
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* var: ID */
-#line 580 "engines/director/lingo/lingo-gr.y"
+ case 180: /* var: ID */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3363 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* chunk: tFIELD simpleexpr */
-#line 590 "engines/director/lingo/lingo-gr.y"
+ case 185: /* chunk: tFIELD simpleexpr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3313 "engines/director/lingo/lingo-gr.cpp"
+#line 3372 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* chunk: tCAST simpleexpr */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 186: /* chunk: tCAST simpleexpr */
+#line 620 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3381 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* chunk: tCHAR simpleexpr tOF simpleexpr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 187: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 624 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3388 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 188: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3395 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* chunk: tWORD simpleexpr tOF simpleexpr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 189: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3343 "engines/director/lingo/lingo-gr.cpp"
+#line 3402 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 190: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3350 "engines/director/lingo/lingo-gr.cpp"
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* chunk: tITEM simpleexpr tOF simpleexpr */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 191: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3357 "engines/director/lingo/lingo-gr.cpp"
+#line 3416 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 608 "engines/director/lingo/lingo-gr.y"
+ case 192: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+#line 3423 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* chunk: tLINE simpleexpr tOF simpleexpr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 193: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 636 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 194: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 638 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3378 "engines/director/lingo/lingo-gr.cpp"
+#line 3437 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* object: tSCRIPT simpleexpr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 195: /* object: tSCRIPT simpleexpr */
+#line 642 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3446 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* object: tWINDOW simpleexpr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 196: /* object: tWINDOW simpleexpr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3396 "engines/director/lingo/lingo-gr.cpp"
+#line 3455 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 200: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3402 "engines/director/lingo/lingo-gr.cpp"
+#line 3461 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 203: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3408 "engines/director/lingo/lingo-gr.cpp"
+#line 3467 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* theobj: tSOUND simpleexpr */
-#line 635 "engines/director/lingo/lingo-gr.y"
+ case 204: /* theobj: tSOUND simpleexpr */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3414 "engines/director/lingo/lingo-gr.cpp"
+#line 3473 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* theobj: tSPRITE simpleexpr */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 205: /* theobj: tSPRITE simpleexpr */
+#line 662 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3420 "engines/director/lingo/lingo-gr.cpp"
+#line 3479 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* menu: tMENU simpleexpr */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 206: /* menu: tMENU simpleexpr */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3426 "engines/director/lingo/lingo-gr.cpp"
+#line 3485 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* writablethe: tTHE ID */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 207: /* writablethe: tTHE ID */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3432 "engines/director/lingo/lingo-gr.cpp"
+#line 3491 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* writablethe: tTHE ID tOF theobj */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 208: /* writablethe: tTHE ID tOF theobj */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3438 "engines/director/lingo/lingo-gr.cpp"
+#line 3497 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 209: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3444 "engines/director/lingo/lingo-gr.cpp"
+#line 3503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 210: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3450 "engines/director/lingo/lingo-gr.cpp"
+#line 3509 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 211: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3456 "engines/director/lingo/lingo-gr.cpp"
+#line 3515 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* thedatetime: tTHE tABBREV tDATE */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 212: /* thedatetime: tTHE tABBREV tDATE */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3462 "engines/director/lingo/lingo-gr.cpp"
+#line 3521 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* thedatetime: tTHE tABBREV tTIME */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 213: /* thedatetime: tTHE tABBREV tTIME */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3468 "engines/director/lingo/lingo-gr.cpp"
+#line 3527 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* thedatetime: tTHE tABBR tDATE */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 214: /* thedatetime: tTHE tABBR tDATE */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3474 "engines/director/lingo/lingo-gr.cpp"
+#line 3533 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* thedatetime: tTHE tABBR tTIME */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 215: /* thedatetime: tTHE tABBR tTIME */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3480 "engines/director/lingo/lingo-gr.cpp"
+#line 3539 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* thedatetime: tTHE tLONG tDATE */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 216: /* thedatetime: tTHE tLONG tDATE */
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3486 "engines/director/lingo/lingo-gr.cpp"
+#line 3545 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* thedatetime: tTHE tLONG tTIME */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 217: /* thedatetime: tTHE tLONG tTIME */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 3551 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* thedatetime: tTHE tSHORT tDATE */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 218: /* thedatetime: tTHE tSHORT tDATE */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3498 "engines/director/lingo/lingo-gr.cpp"
+#line 3557 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* thedatetime: tTHE tSHORT tTIME */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 219: /* thedatetime: tTHE tSHORT tTIME */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3504 "engines/director/lingo/lingo-gr.cpp"
+#line 3563 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 220: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 685 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+#line 3569 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3516 "engines/director/lingo/lingo-gr.cpp"
+#line 3575 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 3581 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3528 "engines/director/lingo/lingo-gr.cpp"
+#line 3587 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3534 "engines/director/lingo/lingo-gr.cpp"
+#line 3593 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* chunktype: tCHAR */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 225: /* chunktype: tCHAR */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3540 "engines/director/lingo/lingo-gr.cpp"
+#line 3599 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* chunktype: tWORD */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 226: /* chunktype: tWORD */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3546 "engines/director/lingo/lingo-gr.cpp"
+#line 3605 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* chunktype: tITEM */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 227: /* chunktype: tITEM */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3611 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* chunktype: tLINE */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 228: /* chunktype: tLINE */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3617 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* list: '[' exprlist ']' */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 231: /* list: '[' exprlist ']' */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3623 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* list: '[' ':' ']' */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 232: /* list: '[' ':' ']' */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 3629 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* list: '[' proplist ']' */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 233: /* list: '[' proplist ']' */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 3635 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* proplist: proppair */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 234: /* proplist: proppair */
+#line 705 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3585 "engines/director/lingo/lingo-gr.cpp"
+#line 3644 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* proplist: proplist ',' proppair */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 235: /* proplist: proplist ',' proppair */
+#line 709 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3593 "engines/director/lingo/lingo-gr.cpp"
+#line 3652 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* proppair: tSYMBOL ':' expr */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 236: /* proppair: tSYMBOL ':' expr */
+#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3599 "engines/director/lingo/lingo-gr.cpp"
+#line 3658 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* proppair: ID ':' expr */
-#line 689 "engines/director/lingo/lingo-gr.y"
+ case 237: /* proppair: ID ':' expr */
+#line 715 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3605 "engines/director/lingo/lingo-gr.cpp"
+#line 3664 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* proppair: tSTRING ':' expr */
-#line 690 "engines/director/lingo/lingo-gr.y"
+ case 238: /* proppair: tSTRING ':' expr */
+#line 716 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3611 "engines/director/lingo/lingo-gr.cpp"
+#line 3670 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* unarymath: '+' simpleexpr */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 239: /* unarymath: '+' simpleexpr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3617 "engines/director/lingo/lingo-gr.cpp"
+#line 3676 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* unarymath: '-' simpleexpr */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 240: /* unarymath: '-' simpleexpr */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3623 "engines/director/lingo/lingo-gr.cpp"
+#line 3682 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* expr: expr '+' expr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 245: /* expr: expr '+' expr */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3629 "engines/director/lingo/lingo-gr.cpp"
+#line 3688 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* expr: expr '-' expr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 246: /* expr: expr '-' expr */
+#line 731 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3635 "engines/director/lingo/lingo-gr.cpp"
+#line 3694 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* expr: expr '*' expr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 247: /* expr: expr '*' expr */
+#line 732 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3641 "engines/director/lingo/lingo-gr.cpp"
+#line 3700 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* expr: expr '/' expr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr: expr '/' expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3647 "engines/director/lingo/lingo-gr.cpp"
+#line 3706 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* expr: expr tMOD expr */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr: expr tMOD expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3653 "engines/director/lingo/lingo-gr.cpp"
+#line 3712 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* expr: expr '>' expr */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr: expr '>' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3659 "engines/director/lingo/lingo-gr.cpp"
+#line 3718 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* expr: expr '<' expr */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr: expr '<' expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3665 "engines/director/lingo/lingo-gr.cpp"
+#line 3724 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* expr: expr tEQ expr */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr: expr tEQ expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3671 "engines/director/lingo/lingo-gr.cpp"
+#line 3730 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* expr: expr tNEQ expr */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 253: /* expr: expr tNEQ expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3677 "engines/director/lingo/lingo-gr.cpp"
+#line 3736 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* expr: expr tGE expr */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 254: /* expr: expr tGE expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3683 "engines/director/lingo/lingo-gr.cpp"
+#line 3742 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* expr: expr tLE expr */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 255: /* expr: expr tLE expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3689 "engines/director/lingo/lingo-gr.cpp"
+#line 3748 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr: expr tAND expr */
-#line 715 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr: expr tAND expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3695 "engines/director/lingo/lingo-gr.cpp"
+#line 3754 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr: expr tOR expr */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr: expr tOR expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3701 "engines/director/lingo/lingo-gr.cpp"
+#line 3760 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr: expr '&' expr */
-#line 717 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr: expr '&' expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3707 "engines/director/lingo/lingo-gr.cpp"
+#line 3766 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr: expr tCONCAT expr */
-#line 718 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr: expr tCONCAT expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3713 "engines/director/lingo/lingo-gr.cpp"
+#line 3772 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr: expr tCONTAINS expr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr: expr tCONTAINS expr */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3719 "engines/director/lingo/lingo-gr.cpp"
+#line 3778 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* expr: expr tSTARTS expr */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr: expr tSTARTS expr */
+#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3725 "engines/director/lingo/lingo-gr.cpp"
+#line 3784 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 729 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 755 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3731 "engines/director/lingo/lingo-gr.cpp"
+#line 3790 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 730 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 756 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3737 "engines/director/lingo/lingo-gr.cpp"
+#line 3796 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 757 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3743 "engines/director/lingo/lingo-gr.cpp"
+#line 3802 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 758 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3749 "engines/director/lingo/lingo-gr.cpp"
+#line 3808 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 759 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3755 "engines/director/lingo/lingo-gr.cpp"
+#line 3814 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3761 "engines/director/lingo/lingo-gr.cpp"
+#line 3820 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3767 "engines/director/lingo/lingo-gr.cpp"
+#line 3826 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3773 "engines/director/lingo/lingo-gr.cpp"
+#line 3832 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3779 "engines/director/lingo/lingo-gr.cpp"
+#line 3838 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 273: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3785 "engines/director/lingo/lingo-gr.cpp"
+#line 3844 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 274: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3791 "engines/director/lingo/lingo-gr.cpp"
+#line 3850 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3797 "engines/director/lingo/lingo-gr.cpp"
+#line 3856 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3803 "engines/director/lingo/lingo-gr.cpp"
+#line 3862 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3809 "engines/director/lingo/lingo-gr.cpp"
+#line 3868 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3815 "engines/director/lingo/lingo-gr.cpp"
+#line 3874 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 279: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3821 "engines/director/lingo/lingo-gr.cpp"
+#line 3880 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 280: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3827 "engines/director/lingo/lingo-gr.cpp"
+#line 3886 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 748 "engines/director/lingo/lingo-gr.y"
+ case 281: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3833 "engines/director/lingo/lingo-gr.cpp"
+#line 3892 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 282: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 775 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3839 "engines/director/lingo/lingo-gr.cpp"
+#line 3898 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* exprlist: %empty */
-#line 752 "engines/director/lingo/lingo-gr.y"
+ case 283: /* exprlist: %empty */
+#line 778 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3845 "engines/director/lingo/lingo-gr.cpp"
+#line 3904 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* nonemptyexprlist: expr */
-#line 756 "engines/director/lingo/lingo-gr.y"
+ case 285: /* nonemptyexprlist: expr */
+#line 782 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3854 "engines/director/lingo/lingo-gr.cpp"
+#line 3913 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 760 "engines/director/lingo/lingo-gr.y"
+ case 286: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 786 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3862 "engines/director/lingo/lingo-gr.cpp"
+#line 3921 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3866 "engines/director/lingo/lingo-gr.cpp"
+#line 3925 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4061,7 +4120,7 @@ yyreturn:
return yyresult;
}
-#line 765 "engines/director/lingo/lingo-gr.y"
+#line 791 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index e686a06092..418697ffeb 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -160,11 +160,11 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<idlist> idlist nonemptyidlist
// STATEMENT
-%type<node> stmt stmtoneliner
+%type<node> stmt stmt_insideif stmtoneliner
%type<node> proc asgn definevars
%type<node> ifstmt ifelsestmt loop tell when
-%type<nodelist> cmdargs frameargs stmtlist nonemptystmtlist
-%type<node> stmtlistline
+%type<nodelist> cmdargs frameargs stmtlist nonemptystmtlist stmtlist_insideif nonemptystmtlist_insideif
+%type<node> stmtlistline stmtlistline_insideif
// EXPRESSION
%type<node> simpleexpr_nounarymath simpleexpr
@@ -381,7 +381,11 @@ nonemptyidlist: ID[item] {
// Sometimes this '\n' is in a nested statement (e.g. tIF expr tTHEN stmt).
// It may not look like there's a '\n', but it's there.
-stmt: stmtoneliner
+stmt: stmt_insideif
+ | tENDIF '\n' { $$ = nullptr; } // stray `end if`s are allowed for some reason
+ ;
+
+stmt_insideif: stmtoneliner
| ifstmt
| ifelsestmt
| loop
@@ -496,8 +500,8 @@ ifstmt: tIF expr tTHEN stmt {
NodeList *stmtlist = new NodeList;
stmtlist->push_back($stmt);
$$ = new IfStmtNode($expr, stmtlist); }
- | tIF expr tTHEN '\n' stmtlist tENDIF '\n' {
- $$ = new IfStmtNode($expr, $stmtlist); }
+ | tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' {
+ $$ = new IfStmtNode($expr, $stmtlist_insideif); }
;
ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
@@ -506,15 +510,15 @@ ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back($stmt2);
$$ = new IfElseStmtNode($expr, stmtlist1, stmtlist2); }
- | tIF expr tTHEN stmt[stmt1] tELSE '\n' stmtlist[stmtlist2] tENDIF '\n' {
+ | tIF expr tTHEN stmt[stmt1] tELSE '\n' stmtlist_insideif[stmtlist2] tENDIF '\n' {
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back($stmt1);
$$ = new IfElseStmtNode($expr, stmtlist1, $stmtlist2); }
- | tIF expr tTHEN '\n' stmtlist[stmtlist1] tELSE stmt[stmt2] {
+ | tIF expr tTHEN '\n' stmtlist_insideif[stmtlist1] tELSE stmt[stmt2] {
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back($stmt2);
$$ = new IfElseStmtNode($expr, $stmtlist1, stmtlist2); }
- | tIF expr tTHEN '\n' stmtlist[stmtlist1] tELSE '\n' stmtlist[stmtlist2] tENDIF '\n' {
+ | tIF expr tTHEN '\n' stmtlist_insideif[stmtlist1] tELSE '\n' stmtlist_insideif[stmtlist2] tENDIF '\n' {
$$ = new IfElseStmtNode($expr, $stmtlist1, $stmtlist2); }
;
@@ -560,6 +564,28 @@ stmtlistline: '\n' { $$ = nullptr; }
| stmt
;
+stmtlist_insideif: /* empty */ { $$ = new NodeList; }
+ | nonemptystmtlist_insideif
+ ;
+
+nonemptystmtlist_insideif:
+ stmtlistline_insideif[item] {
+ NodeList *list = new NodeList;
+ if ($item) {
+ list->push_back($item);
+ }
+ $$ = list; }
+ | nonemptystmtlist_insideif[prev] stmtlistline_insideif[item] {
+ if ($item) {
+ $prev->push_back($item);
+ }
+ $$ = $prev; }
+ ;
+
+stmtlistline_insideif: '\n' { $$ = nullptr; }
+ | stmt_insideif
+ ;
+
// EXPRESSION
simpleexpr_nounarymath:
Commit: e093f59aa2f40e449ab6387a8c93e6b5e0e4aa53
https://github.com/scummvm/scummvm/commit/e093f59aa2f40e449ab6387a8c93e6b5e0e4aa53
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Allow trailing comma
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 0ddc3955c2..29981b6045 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -278,45 +278,46 @@ enum yysymbol_kind_t
YYSYMBOL_stmtoneliner = 122, /* stmtoneliner */
YYSYMBOL_proc = 123, /* proc */
YYSYMBOL_cmdargs = 124, /* cmdargs */
- YYSYMBOL_frameargs = 125, /* frameargs */
- YYSYMBOL_asgn = 126, /* asgn */
- YYSYMBOL_to = 127, /* to */
- YYSYMBOL_definevars = 128, /* definevars */
- YYSYMBOL_ifstmt = 129, /* ifstmt */
- YYSYMBOL_ifelsestmt = 130, /* ifelsestmt */
- YYSYMBOL_loop = 131, /* loop */
- YYSYMBOL_tell = 132, /* tell */
- YYSYMBOL_when = 133, /* when */
- YYSYMBOL_stmtlist = 134, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 135, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 136, /* stmtlistline */
- YYSYMBOL_stmtlist_insideif = 137, /* stmtlist_insideif */
- YYSYMBOL_nonemptystmtlist_insideif = 138, /* nonemptystmtlist_insideif */
- YYSYMBOL_stmtlistline_insideif = 139, /* stmtlistline_insideif */
- YYSYMBOL_simpleexpr_nounarymath = 140, /* simpleexpr_nounarymath */
- YYSYMBOL_var = 141, /* var */
- YYSYMBOL_varorchunk = 142, /* varorchunk */
- YYSYMBOL_varorthe = 143, /* varorthe */
- YYSYMBOL_chunk = 144, /* chunk */
- YYSYMBOL_object = 145, /* object */
- YYSYMBOL_the = 146, /* the */
- YYSYMBOL_theobj = 147, /* theobj */
- YYSYMBOL_menu = 148, /* menu */
- YYSYMBOL_writablethe = 149, /* writablethe */
- YYSYMBOL_thedatetime = 150, /* thedatetime */
- YYSYMBOL_thenumberof = 151, /* thenumberof */
- YYSYMBOL_chunktype = 152, /* chunktype */
- YYSYMBOL_inof = 153, /* inof */
- YYSYMBOL_list = 154, /* list */
- YYSYMBOL_proplist = 155, /* proplist */
- YYSYMBOL_proppair = 156, /* proppair */
- YYSYMBOL_unarymath = 157, /* unarymath */
- YYSYMBOL_simpleexpr = 158, /* simpleexpr */
- YYSYMBOL_expr = 159, /* expr */
- YYSYMBOL_expr_nounarymath = 160, /* expr_nounarymath */
- YYSYMBOL_sprite = 161, /* sprite */
- YYSYMBOL_exprlist = 162, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 163 /* nonemptyexprlist */
+ YYSYMBOL_trailingcomma = 125, /* trailingcomma */
+ YYSYMBOL_frameargs = 126, /* frameargs */
+ YYSYMBOL_asgn = 127, /* asgn */
+ YYSYMBOL_to = 128, /* to */
+ YYSYMBOL_definevars = 129, /* definevars */
+ YYSYMBOL_ifstmt = 130, /* ifstmt */
+ YYSYMBOL_ifelsestmt = 131, /* ifelsestmt */
+ YYSYMBOL_loop = 132, /* loop */
+ YYSYMBOL_tell = 133, /* tell */
+ YYSYMBOL_when = 134, /* when */
+ YYSYMBOL_stmtlist = 135, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 136, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 137, /* stmtlistline */
+ YYSYMBOL_stmtlist_insideif = 138, /* stmtlist_insideif */
+ YYSYMBOL_nonemptystmtlist_insideif = 139, /* nonemptystmtlist_insideif */
+ YYSYMBOL_stmtlistline_insideif = 140, /* stmtlistline_insideif */
+ YYSYMBOL_simpleexpr_nounarymath = 141, /* simpleexpr_nounarymath */
+ YYSYMBOL_var = 142, /* var */
+ YYSYMBOL_varorchunk = 143, /* varorchunk */
+ YYSYMBOL_varorthe = 144, /* varorthe */
+ YYSYMBOL_chunk = 145, /* chunk */
+ YYSYMBOL_object = 146, /* object */
+ YYSYMBOL_the = 147, /* the */
+ YYSYMBOL_theobj = 148, /* theobj */
+ YYSYMBOL_menu = 149, /* menu */
+ YYSYMBOL_writablethe = 150, /* writablethe */
+ YYSYMBOL_thedatetime = 151, /* thedatetime */
+ YYSYMBOL_thenumberof = 152, /* thenumberof */
+ YYSYMBOL_chunktype = 153, /* chunktype */
+ YYSYMBOL_inof = 154, /* inof */
+ YYSYMBOL_list = 155, /* list */
+ YYSYMBOL_proplist = 156, /* proplist */
+ YYSYMBOL_proppair = 157, /* proppair */
+ YYSYMBOL_unarymath = 158, /* unarymath */
+ YYSYMBOL_simpleexpr = 159, /* simpleexpr */
+ YYSYMBOL_expr = 160, /* expr */
+ YYSYMBOL_expr_nounarymath = 161, /* expr_nounarymath */
+ YYSYMBOL_sprite = 162, /* sprite */
+ YYSYMBOL_exprlist = 163, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 164 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -638,16 +639,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3483
+#define YYLAST 3495
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 60
+#define YYNNTS 61
/* YYNRULES -- Number of rules. */
-#define YYNRULES 286
+#define YYNRULES 289
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 527
+#define YYNSTATES 532
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -714,26 +715,26 @@ static const yytype_int16 yyrline[] =
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, 339, 340, 341, 342, 343, 346, 347, 348,
349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
- 359, 360, 361, 362, 363, 366, 367, 370, 374, 384,
- 385, 388, 389, 390, 391, 392, 393, 396, 397, 398,
- 401, 402, 403, 404, 405, 406, 407, 408, 413, 414,
- 415, 416, 419, 422, 427, 431, 437, 442, 445, 455,
- 460, 466, 472, 478, 486, 487, 488, 489, 492, 492,
- 494, 495, 496, 499, 503, 507, 513, 517, 521, 525,
- 527, 529, 531, 535, 539, 543, 545, 546, 550, 556,
- 563, 564, 567, 568, 572, 578, 585, 586, 592, 593,
- 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
- 606, 608, 609, 612, 613, 616, 620, 624, 626, 628,
- 630, 632, 634, 636, 638, 642, 646, 652, 653, 654,
- 655, 658, 659, 660, 661, 662, 665, 667, 668, 669,
- 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
- 685, 686, 687, 688, 689, 692, 693, 694, 695, 698,
- 698, 700, 701, 702, 705, 709, 714, 715, 716, 719,
- 720, 723, 724, 728, 729, 730, 731, 732, 733, 734,
+ 359, 360, 361, 362, 363, 366, 367, 368, 371, 375,
+ 385, 386, 389, 390, 391, 392, 393, 394, 397, 398,
+ 399, 402, 403, 404, 405, 406, 407, 408, 409, 414,
+ 415, 416, 417, 420, 423, 428, 432, 438, 443, 446,
+ 452, 452, 458, 463, 469, 475, 481, 489, 490, 491,
+ 492, 495, 495, 497, 498, 499, 502, 506, 510, 516,
+ 520, 524, 528, 530, 532, 534, 538, 542, 546, 548,
+ 549, 553, 559, 566, 567, 570, 571, 575, 581, 588,
+ 589, 595, 596, 597, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 609, 611, 612, 615, 616, 619, 623,
+ 627, 629, 631, 633, 635, 637, 639, 641, 645, 649,
+ 655, 656, 657, 658, 661, 662, 663, 664, 665, 668,
+ 670, 671, 672, 675, 676, 677, 678, 679, 680, 681,
+ 682, 683, 684, 688, 689, 690, 691, 692, 695, 696,
+ 697, 698, 701, 701, 703, 704, 705, 708, 712, 717,
+ 718, 719, 722, 723, 726, 727, 731, 732, 733, 734,
735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
- 745, 746, 753, 754, 755, 756, 757, 758, 759, 760,
+ 745, 746, 747, 748, 749, 756, 757, 758, 759, 760,
761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
- 771, 774, 775, 778, 779, 782, 786
+ 771, 772, 773, 774, 777, 778, 781, 782, 785, 789
};
#endif
@@ -768,9 +769,9 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"scriptpart", "macro", "factory", "method", "methodlist",
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "CMDID",
"ID", "idlist", "nonemptyidlist", "stmt", "stmt_insideif",
- "stmtoneliner", "proc", "cmdargs", "frameargs", "asgn", "to",
- "definevars", "ifstmt", "ifelsestmt", "loop", "tell", "when", "stmtlist",
- "nonemptystmtlist", "stmtlistline", "stmtlist_insideif",
+ "stmtoneliner", "proc", "cmdargs", "trailingcomma", "frameargs", "asgn",
+ "to", "definevars", "ifstmt", "ifelsestmt", "loop", "tell", "when",
+ "stmtlist", "nonemptystmtlist", "stmtlistline", "stmtlist_insideif",
"nonemptystmtlist_insideif", "stmtlistline_insideif",
"simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
"object", "the", "theobj", "menu", "writablethe", "thedatetime",
@@ -801,7 +802,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-462)
+#define YYPACT_NINF (-465)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -815,59 +816,60 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2364, -462, -462, -462, -462, -462, -462, -22, -462, 2934,
- 1497, 1594, -462, -462, 2934, -462, 28, -462, -462, 1691,
- -1, 3013, -462, 2934, -462, -462, 2934, 1691, 1497, 2934,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, 1594, 2934, 2934, -32, 3328, -462, 68,
- 2364, -462, -462, -462, -462, 1691, -462, -462, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, 9, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, 27, 29, -462, -462, -462, -462, 1788,
- 1788, 1788, 1788, 1594, 1594, 1788, 1788, 1788, 1788, 1788,
- 3092, 1594, 1788, 1788, 1400, 816, -5, 36, 40, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
- 915, -462, 1594, 245, 2934, 41, 43, 1012, 2934, 1594,
- 3171, -462, -462, -10, -462, 93, 44, 53, 1109, 58,
- 59, 60, -4, 61, 2934, -462, -462, -462, -462, 62,
- 1206, -462, -462, 2934, -462, -462, -462, -462, 1303, 717,
- -462, 69, 77, 86, 87, -25, -3, 8, 31, 33,
- 109, 124, 135, 3375, -462, -462, -462, 436, 70, 71,
- 63, 26, 34, -462, 717, 73, 74, 1594, -462, -462,
- 145, 1594, 1594, 1594, 1594, 2079, 2079, 2273, 1594, 2176,
- 2176, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, -462,
- 523, -462, 496, 2444, 1594, 1594, 1594, 1594, 1594, 89,
- -462, -462, 3250, 3250, 3250, -15, 320, 154, -462, -462,
- 1594, 1594, -69, -462, 1594, -462, -462, -462, 3328, 2524,
- -462, 90, -462, -462, 158, 3388, 1788, 1788, 1788, 1788,
- 1788, 1788, 1788, 1788, -462, -462, -462, -462, -462, -462,
- -462, -462, -462, -462, -462, -462, -462, -462, 55, 1885,
- 1982, 1788, 1788, 1594, -462, 1594, 1594, -462, 1594, 2855,
- -462, -462, 1594, 91, 1594, -31, -31, -31, -31, 136,
- 136, -462, -39, -31, -31, -31, -31, -39, -23, -23,
- -462, -462, 74, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
- 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
- 1594, 2764, 176, 2524, -462, 96, -462, 97, 98, 1594,
- 1594, 2524, 1982, 589, 717, 2934, -462, -462, -462, -69,
- -462, 602, -462, -462, -462, 110, 2524, -462, 2524, 1594,
- -462, 170, -462, 171, -462, 172, -462, 173, -462, -462,
- 1788, 55, 55, 55, 55, 1788, 1788, 55, 1788, 1788,
- -462, -462, -462, -462, -462, -462, -73, 717, 717, 717,
- 70, 71, 100, -462, 717, -462, 717, -31, -31, -31,
- -31, 136, 136, -462, -39, -31, -31, -31, -31, -39,
- -23, -23, -462, -462, 74, -462, -462, -11, 2764, -462,
- 2604, -462, -462, -462, -462, 615, 168, 119, -462, 2934,
- -462, -462, 99, -462, 196, 717, 1788, 1788, 1788, 1788,
- -462, 1788, 1788, 1788, 1788, -462, 179, 147, -462, -462,
- -462, 2684, 126, -462, 2764, -462, 2524, 190, 1594, 138,
- 139, -462, 2934, -462, -462, -462, -462, -462, -462, -462,
- -462, 167, 1788, -462, 2764, -462, -462, 155, 153, 1594,
- 686, -462, 2524, -51, -462, 1788, 156, 151, 157, 704,
- 2524, -462, -462, 2934, -462, 159, -462, -462, 2524, 164,
- -462, -462, 165, 169, 174, -462, -462
+ 2303, -465, -465, -465, -465, -465, -465, -18, -465, 2873,
+ 1436, 1533, -465, -465, 2873, -465, 38, -465, -465, 1630,
+ -11, 2952, -465, 2873, -465, -465, 2873, 1630, 1436, 2873,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ -465, -465, -465, 1533, 2873, 2873, -38, 3267, -465, 82,
+ 2303, -465, -465, -465, -465, 1630, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, 1, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ -465, -465, -465, 37, -8, -465, -465, -465, -465, 1727,
+ 1727, 1727, 1727, 1533, 1533, 1727, 1727, 1727, 1727, 1727,
+ 3031, 1533, 1727, 1727, 1339, 755, 49, 53, 58, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+ 854, -465, 1533, 166, 2873, 60, 61, 951, 2873, 1533,
+ 3110, -465, -465, -14, -465, 92, 62, 63, 1048, 76,
+ 77, 78, 19, 81, 2873, -465, -465, -465, -465, 88,
+ 1145, -465, -465, 2873, -465, -465, -465, -465, 1242, 3346,
+ -465, 8, 26, 50, 87, -48, -32, -31, -29, -28,
+ 111, 126, 164, 3333, -465, -465, -465, 482, 90, 91,
+ 95, -76, 28, -465, 3346, 98, 103, 1533, -465, -465,
+ 170, 1533, 1533, 1533, 1533, 2018, 2018, 2212, 1533, 2115,
+ 2115, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, -465,
+ -465, 229, -465, 506, 2383, 1533, 1533, 1533, 1533, 1533,
+ 106, -465, -465, 3189, 3189, 3189, -15, 411, 176, -465,
+ -465, 1533, 1533, -66, -465, 1533, -465, -465, -465, 3267,
+ 2463, -465, 109, -465, -465, 191, 3400, 1727, 1727, 1727,
+ 1727, 1727, 1727, 1727, 1727, -465, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, 94,
+ 1824, 1921, 1727, 1727, 1533, -465, 1533, 1533, -465, 1533,
+ 2794, -465, -465, 1533, 121, 1533, -6, -6, -6, -6,
+ 51, 51, -465, 70, -6, -6, -6, -6, 70, 7,
+ 7, -465, -465, 124, 1533, 1533, 1533, 1533, 1533, 1533,
+ 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
+ 1533, 1533, -465, 2703, 208, 2463, -465, 139, -465, 141,
+ 142, 1533, 1533, 2463, 1921, 575, 3346, 2873, -465, -465,
+ -465, -66, -465, 588, -465, -465, -465, 153, 2463, -465,
+ 2463, 1533, -465, 213, -465, 214, -465, 215, -465, 221,
+ -465, -465, 1727, 94, 94, 94, 94, 1727, 1727, 94,
+ 1727, 1727, -465, -465, -465, -465, -465, -465, 20, 3346,
+ 3346, 3346, 90, 91, 148, -465, 3346, -465, 3346, 1533,
+ -465, -6, -6, -6, -6, 51, 51, -465, 70, -6,
+ -6, -6, -6, 70, 7, 7, -465, -465, 124, -465,
+ -465, -4, 2703, -465, 2543, -465, -465, -465, -465, 603,
+ 137, 167, -465, 2873, -465, -465, 155, -465, 244, 3346,
+ 1727, 1727, 1727, 1727, -465, 1727, 1727, 1727, 1727, -465,
+ 234, 192, -465, -465, -465, -465, 2623, 168, -465, 2703,
+ -465, 2463, 230, 1533, 169, 171, -465, 2873, -465, -465,
+ -465, -465, -465, -465, -465, -465, 196, 1727, -465, 2703,
+ -465, -465, 194, 198, 1533, 659, -465, 2463, 9, -465,
+ 1727, 195, 180, 205, 3314, 2463, -465, -465, 2873, -465,
+ 207, -465, -465, 2463, 219, -465, -465, 220, 210, 211,
+ -465, -465
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -876,80 +878,83 @@ static const yytype_int16 yypact[] =
static const yytype_int16 yydefact[] =
{
0, 24, 31, 37, 60, 72, 36, 0, 38, 95,
- 122, 0, 39, 41, 0, 52, 53, 56, 58, 122,
- 59, 62, 70, 0, 73, 71, 0, 122, 122, 95,
+ 123, 0, 39, 41, 0, 52, 53, 56, 58, 123,
+ 59, 62, 70, 0, 73, 71, 0, 123, 123, 95,
29, 57, 54, 51, 28, 30, 34, 66, 32, 33,
42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
63, 35, 44, 48, 49, 50, 55, 68, 69, 64,
65, 40, 74, 67, 95, 0, 0, 61, 5, 0,
- 2, 3, 6, 7, 8, 122, 9, 99, 101, 107,
- 108, 109, 102, 103, 104, 105, 106, 0, 120, 79,
+ 2, 3, 6, 7, 8, 123, 9, 100, 102, 108,
+ 109, 110, 103, 104, 105, 106, 107, 0, 121, 79,
78, 80, 82, 83, 84, 86, 53, 92, 59, 62,
93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
- 61, 77, 97, 0, 96, 168, 169, 171, 170, 31,
+ 61, 77, 98, 0, 96, 171, 172, 174, 173, 31,
37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
- 68, 65, 0, 0, 0, 283, 180, 0, 0, 241,
- 175, 176, 177, 178, 197, 198, 199, 179, 242, 243,
- 123, 244, 0, 0, 95, 0, 0, 123, 0, 0,
- 68, 180, 183, 0, 184, 0, 0, 0, 123, 0,
- 0, 0, 0, 0, 95, 100, 121, 1, 4, 0,
- 123, 119, 140, 0, 186, 185, 195, 196, 129, 130,
- 172, 0, 0, 0, 0, 25, 26, 27, 47, 63,
- 44, 55, 207, 0, 239, 240, 127, 0, 171, 170,
- 0, 180, 0, 234, 285, 0, 284, 283, 112, 113,
+ 68, 65, 0, 0, 0, 286, 183, 0, 0, 244,
+ 178, 179, 180, 181, 200, 201, 202, 182, 245, 246,
+ 130, 247, 0, 0, 95, 0, 0, 130, 0, 0,
+ 68, 183, 186, 0, 187, 0, 0, 0, 130, 0,
+ 0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
+ 130, 120, 143, 97, 189, 188, 198, 199, 132, 133,
+ 175, 0, 0, 0, 0, 25, 26, 27, 47, 63,
+ 44, 55, 210, 0, 242, 243, 128, 0, 174, 173,
+ 0, 183, 0, 237, 288, 0, 287, 286, 113, 114,
56, 0, 0, 0, 0, 29, 57, 51, 0, 34,
- 66, 0, 0, 0, 0, 0, 0, 0, 0, 262,
- 125, 263, 0, 0, 0, 0, 0, 0, 0, 0,
- 118, 111, 41, 28, 30, 0, 0, 55, 138, 139,
- 0, 0, 13, 116, 73, 114, 115, 142, 0, 156,
- 141, 0, 110, 98, 56, 133, 0, 0, 0, 0,
- 0, 0, 0, 0, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 225, 227, 228, 226, 0, 0,
- 0, 0, 0, 0, 174, 0, 0, 232, 0, 0,
- 233, 231, 0, 0, 0, 254, 255, 252, 253, 256,
- 257, 249, 259, 260, 261, 251, 250, 258, 245, 246,
- 247, 248, 124, 0, 0, 0, 0, 0, 0, 0,
+ 66, 0, 0, 0, 0, 0, 0, 0, 131, 124,
+ 265, 130, 266, 0, 0, 0, 0, 0, 0, 0,
+ 0, 119, 112, 41, 28, 30, 0, 0, 55, 141,
+ 142, 0, 0, 13, 117, 73, 115, 116, 145, 0,
+ 159, 144, 0, 111, 99, 56, 136, 0, 0, 0,
+ 0, 0, 0, 0, 0, 213, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 228, 230, 231, 229, 0,
+ 0, 0, 0, 0, 0, 177, 0, 0, 235, 0,
+ 0, 236, 234, 0, 0, 0, 257, 258, 255, 256,
+ 259, 260, 252, 262, 263, 264, 254, 253, 261, 248,
+ 249, 250, 251, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 162, 143, 156, 181, 0, 182, 0, 0, 0,
- 0, 156, 0, 0, 155, 0, 17, 18, 11, 14,
- 15, 0, 153, 160, 161, 0, 157, 158, 156, 0,
- 187, 0, 191, 0, 193, 0, 189, 0, 229, 230,
- 0, 33, 43, 46, 76, 48, 49, 50, 64, 65,
- 209, 202, 201, 208, 281, 282, 0, 238, 236, 237,
- 0, 0, 0, 235, 286, 173, 132, 273, 274, 271,
- 272, 275, 276, 268, 278, 279, 280, 270, 269, 277,
- 264, 265, 266, 267, 126, 166, 167, 0, 163, 164,
- 0, 10, 134, 135, 136, 0, 0, 0, 137, 95,
- 16, 117, 0, 159, 20, 131, 0, 0, 0, 0,
- 200, 0, 0, 0, 0, 206, 0, 0, 204, 205,
- 128, 0, 0, 165, 162, 145, 156, 0, 0, 0,
- 0, 154, 21, 188, 192, 194, 190, 220, 222, 223,
- 221, 0, 0, 224, 162, 147, 144, 0, 0, 0,
- 0, 149, 156, 0, 22, 0, 0, 0, 0, 0,
- 156, 12, 19, 0, 203, 0, 146, 152, 156, 0,
- 23, 148, 0, 0, 0, 150, 151
+ 0, 131, 126, 165, 146, 159, 184, 0, 185, 0,
+ 0, 0, 0, 159, 0, 0, 158, 0, 17, 18,
+ 11, 14, 15, 0, 156, 163, 164, 0, 160, 161,
+ 159, 0, 190, 0, 194, 0, 196, 0, 192, 0,
+ 232, 233, 0, 33, 43, 46, 76, 48, 49, 50,
+ 64, 65, 212, 205, 204, 211, 284, 285, 0, 241,
+ 239, 240, 0, 0, 0, 238, 289, 176, 135, 131,
+ 125, 276, 277, 274, 275, 278, 279, 271, 281, 282,
+ 283, 273, 272, 280, 267, 268, 269, 270, 130, 169,
+ 170, 0, 166, 167, 0, 10, 137, 138, 139, 0,
+ 0, 0, 140, 95, 16, 118, 0, 162, 20, 134,
+ 0, 0, 0, 0, 203, 0, 0, 0, 0, 209,
+ 0, 0, 207, 208, 129, 127, 0, 0, 168, 165,
+ 148, 159, 0, 0, 0, 0, 157, 21, 191, 195,
+ 197, 193, 223, 225, 226, 224, 0, 0, 227, 165,
+ 150, 147, 0, 0, 0, 0, 152, 159, 0, 22,
+ 0, 0, 0, 0, 0, 159, 12, 19, 0, 206,
+ 0, 149, 155, 159, 0, 23, 151, 0, 0, 0,
+ 153, 154
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -462, -462, -462, 182, -462, -462, -462, -462, -462, -127,
- -462, -462, 0, -7, -12, -462, 6, -340, -64, -462,
- 4, 225, -462, -462, -462, -462, -462, -462, -462, -462,
- -341, -462, -121, -461, -462, -174, -58, -20, -136, -462,
- -172, -462, -462, -35, -200, 249, -462, -462, -462, -248,
- -462, -462, -37, -462, 328, 85, 88, -49, 56, -234
+ -465, -465, -465, 245, -465, -465, -465, -465, -465, -57,
+ -465, -465, 0, -7, -25, -465, 6, -343, -64, -465,
+ 5, -236, 288, -465, -465, -465, -465, -465, -465, -465,
+ -465, -346, -465, -61, -464, -465, -112, 57, -20, -117,
+ -465, -122, -465, -465, 30, -139, 312, -465, -465, -465,
+ -344, -465, -465, 24, -465, 262, 64, 149, 178, 119,
+ -227
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 69, 70, 71, 72, 73, 367, 368, 369, 370,
- 74, 503, 111, 136, 113, 114, 374, 77, 78, 79,
- 137, 138, 80, 260, 81, 82, 83, 84, 85, 86,
- 375, 376, 377, 437, 438, 439, 139, 140, 355, 163,
- 141, 142, 143, 400, 401, 144, 145, 146, 298, 390,
- 147, 212, 213, 148, 149, 214, 240, 151, 215, 216
+ 0, 69, 70, 71, 72, 73, 369, 370, 371, 372,
+ 74, 508, 111, 136, 113, 114, 376, 77, 78, 79,
+ 137, 239, 138, 80, 261, 81, 82, 83, 84, 85,
+ 86, 377, 378, 379, 441, 442, 443, 139, 140, 357,
+ 163, 141, 142, 143, 402, 403, 144, 145, 146, 299,
+ 392, 147, 212, 213, 148, 149, 214, 241, 151, 215,
+ 216
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -957,101 +962,124 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 75, 162, 112, 176, 332, 471, 76, 154, 359, 87,
- 246, 436, 441, 497, 161, 365, 165, 171, 246, 166,
- 447, 228, 112, 156, 258, 312, 246, 470, 366, 360,
- 268, 167, 169, 506, 259, 158, 159, 454, 221, 222,
- 223, 224, 244, 245, 284, 246, 512, 513, 228, 247,
- 248, 285, 173, 234, 235, 236, 237, 112, 174, 155,
- 233, 234, 235, 236, 237, 175, 286, 75, 177, 406,
- 75, 236, 237, 287, 472, 88, 76, 288, 388, 179,
- 356, 356, 356, 389, 289, 231, 232, 233, 234, 235,
- 236, 237, 239, 269, 217, 150, 153, 276, 436, 239,
- 290, 241, 292, 277, 157, 278, 181, 291, 241, 293,
- 239, 279, 168, 150, 280, 282, 434, 357, 358, 241,
- 281, 283, 239, 202, 182, 217, 261, 183, 211, 308,
- 239, 241, 309, 218, 436, 498, 310, 219, 250, 241,
- 251, 262, 249, 461, 462, 463, 464, 112, 172, 467,
- 263, 255, 299, 202, 436, 265, 266, 267, 270, 272,
- 180, 511, 271, 300, 294, 307, 295, 112, 296, 519,
- 297, 314, 312, 305, 306, 311, 273, 522, 221, 222,
- 223, 224, 362, 477, 379, 246, 353, 378, 228, 247,
- 248, 415, 440, 442, 443, 444, 481, 452, 456, 457,
- 458, 459, 478, 308, 372, 479, 482, 491, 188, 189,
- 221, 222, 223, 224, 244, 245, 203, 246, 492, 207,
- 228, 247, 248, 496, 499, 231, 232, 233, 234, 235,
- 236, 237, 354, 354, 354, 501, 502, 242, 505, 508,
- 507, 515, 450, 75, 256, 161, 161, 161, 516, 352,
- 523, 524, 178, 170, 517, 453, 521, 231, 232, 233,
- 234, 235, 236, 237, 473, 403, 525, 493, 75, 75,
- 164, 526, 413, 313, 0, 0, 275, 0, 243, 0,
- 0, 0, 0, 0, 0, 0, 0, 221, 222, 223,
- 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
- 0, 0, 412, 0, 0, 0, 315, 316, 317, 318,
- 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 0, 0, 0, 0, 0, 0, 319,
- 320, 321, 323, 324, 231, 232, 233, 234, 235, 236,
- 237, 0, 0, 0, 0, 363, 364, 0, 0, 371,
- 0, 75, 0, 75, 0, 0, 0, 0, 449, 0,
- 0, 75, 221, 222, 223, 224, 244, 245, 0, 246,
- 0, 0, 228, 247, 248, 0, 75, 0, 75, 0,
+ 75, 162, 112, 176, 171, 352, 76, 154, 361, 445,
+ 440, 333, 476, 87, 161, 502, 165, 451, 367, 166,
+ 259, 285, 112, 217, 156, 158, 159, 309, 286, 362,
+ 260, 368, 167, 169, 458, 511, 277, 287, 289, 173,
+ 291, 293, 278, 247, 288, 290, 228, 292, 294, 465,
+ 466, 467, 468, 269, 279, 471, 247, 112, 174, 175,
+ 280, 221, 222, 223, 224, 245, 246, 75, 247, 155,
+ 75, 228, 248, 249, 150, 153, 76, 408, 281, 88,
+ 179, 477, 177, 157, 282, 233, 234, 235, 236, 237,
+ 183, 168, 150, 221, 222, 223, 224, 420, 181, 440,
+ 247, 236, 237, 228, 248, 249, 517, 518, 231, 232,
+ 233, 234, 235, 236, 237, 283, 270, 390, 313, 247,
+ 474, 284, 391, 202, 438, 262, 310, 172, 211, 250,
+ 311, 358, 358, 358, 182, 503, 440, 359, 360, 180,
+ 231, 232, 233, 234, 235, 236, 237, 112, 217, 272,
+ 218, 256, 482, 202, 300, 219, 440, 251, 252, 263,
+ 264, 516, 234, 235, 236, 237, 295, 112, 296, 524,
+ 297, 483, 298, 266, 267, 268, 274, 527, 271, 221,
+ 222, 223, 224, 245, 246, 273, 247, 188, 189, 228,
+ 248, 249, 301, 306, 307, 203, 315, 308, 207, 244,
+ 312, 313, 475, 355, 364, 374, 380, 240, 221, 222,
+ 223, 224, 245, 246, 240, 247, 243, 381, 228, 248,
+ 249, 417, 419, 257, 444, 240, 231, 232, 233, 234,
+ 235, 236, 237, 356, 356, 356, 446, 240, 447, 448,
+ 456, 460, 461, 462, 75, 240, 161, 161, 161, 463,
+ 354, 309, 486, 484, 487, 231, 232, 233, 234, 235,
+ 236, 237, 496, 497, 504, 501, 506, 510, 507, 75,
+ 75, 334, 335, 336, 337, 338, 339, 521, 340, 512,
+ 520, 341, 342, 343, 513, 316, 317, 318, 319, 320,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 522, 414, 526, 528, 529, 530, 531, 320,
+ 321, 322, 324, 325, 454, 178, 170, 457, 344, 345,
+ 346, 347, 348, 349, 350, 365, 366, 351, 242, 373,
+ 478, 405, 498, 164, 415, 242, 314, 276, 0, 0,
+ 0, 0, 0, 0, 0, 0, 242, 0, 0, 0,
+ 0, 0, 0, 75, 0, 75, 0, 0, 242, 0,
+ 453, 0, 0, 75, 0, 0, 242, 0, 0, 0,
+ 409, 410, 0, 411, 0, 0, 0, 416, 75, 418,
+ 75, 184, 185, 186, 187, 0, 0, 190, 191, 192,
+ 193, 194, 0, 0, 204, 205, 0, 0, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 449, 450, 0, 485, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 407, 408, 0, 409, 0, 0, 0, 414, 0, 416,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 231,
- 232, 233, 234, 235, 236, 237, 0, 361, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 429, 430, 431, 432, 433, 0, 0, 480, 75, 0,
- 75, 0, 112, 0, 445, 446, 475, 184, 185, 186,
- 187, 0, 0, 190, 191, 192, 193, 194, 0, 0,
- 204, 205, 0, 0, 455, 0, 0, 0, 0, 0,
- 0, 75, 0, 0, 75, 504, 75, 495, 221, 222,
- 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
- 248, 0, 0, 0, 75, 0, 0, 0, 0, 0,
- 0, 0, 75, 0, 0, 0, 520, 0, 0, 0,
- 75, 0, 0, 0, 0, 0, 0, 0, 75, 0,
+ 0, 0, 75, 0, 75, 459, 112, 0, 0, 0,
+ 480, 0, 0, 221, 222, 223, 224, 245, 246, 0,
+ 247, 0, 0, 228, 248, 249, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 75, 0, 0, 75,
+ 509, 75, 500, 416, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
+ 231, 232, 233, 234, 235, 236, 237, 75, 363, 0,
+ 0, 525, 0, 0, 0, 75, 0, 0, 0, 0,
+ 0, 0, 0, 75, 221, 222, 223, 224, 245, 246,
+ 0, 247, 0, 0, 228, 248, 249, 0, 0, 382,
+ 383, 384, 385, 386, 387, 388, 389, 505, 221, 222,
+ 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
+ 249, 0, 404, 404, 406, 407, 0, 0, 514, 0,
+ 0, 231, 232, 233, 234, 235, 236, 237, 0, 0,
+ 304, 0, 305, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 0, 0, 303, 0, 304, 0, 221, 222,
- 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
- 248, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 500, 0, 333, 334, 335, 336, 337,
- 338, 0, 339, 0, 0, 340, 341, 342, 0, 0,
- 0, 0, 0, 0, 509, 231, 232, 233, 234, 235,
- 236, 237, 0, 0, 0, 0, 304, 0, 0, 0,
- 0, 0, 0, 0, 380, 381, 382, 383, 384, 385,
- 386, 387, 343, 344, 345, 346, 347, 348, 349, 0,
- 0, 350, 0, 0, 0, 0, 0, 402, 402, 404,
- 405, 221, 222, 223, 224, 244, 245, 0, 246, 0,
- 0, 228, 247, 248, 221, 222, 223, 224, 244, 245,
- 0, 246, 0, 0, 228, 247, 248, 221, 222, 223,
- 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
+ 236, 237, 0, 0, 0, 0, 305, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 221, 222, 223,
+ 224, 245, 246, 0, 247, 0, 404, 228, 248, 249,
+ 221, 222, 223, 224, 245, 246, 0, 247, 0, 0,
+ 228, 248, 249, 0, 0, 221, 222, 223, 224, 245,
+ 246, 0, 247, 0, 464, 228, 248, 249, 0, 469,
+ 470, 0, 472, 473, 231, 232, 233, 234, 235, 236,
+ 237, 0, 452, 0, 0, 0, 0, 231, 232, 233,
+ 234, 235, 236, 237, 0, 455, 0, 0, 0, 0,
+ 0, 0, 231, 232, 233, 234, 235, 236, 237, 0,
+ 481, 221, 222, 223, 224, 245, 246, 0, 247, 0,
+ 0, 228, 248, 249, 0, 0, 0, 0, 0, 0,
+ 0, 0, 488, 489, 490, 491, 0, 492, 493, 494,
+ 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 0, 448, 0, 0, 0,
- 402, 231, 232, 233, 234, 235, 236, 237, 0, 451,
- 0, 0, 0, 0, 231, 232, 233, 234, 235, 236,
- 237, 0, 476, 0, 0, 0, 0, 0, 460, 0,
- 0, 0, 0, 465, 466, 0, 468, 469, 221, 222,
- 223, 224, 244, 245, 0, 246, 0, 0, 228, 247,
- 248, 0, 0, 0, 0, 0, 221, 222, 223, 224,
- 244, 245, 0, 246, 0, 0, 228, 247, 248, 221,
- 222, 223, 224, 244, 245, 0, 246, 0, 0, 228,
- 247, 248, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 0, 510, 483, 484, 485, 486, 0, 487,
- 488, 489, 490, 231, 232, 233, 234, 235, 236, 237,
- 0, 518, 0, 0, 0, 0, 231, 232, 233, 234,
- 235, 236, 237, 0, 0, 0, 0, 0, 0, 0,
- 465, 115, 116, 1, 208, 209, 89, 119, 120, 121,
- 122, 6, 90, 514, 91, 8, 92, 93, 94, 12,
- 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
- 0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
- 37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
- 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
- 0, 0, 0, 0, 0, 152, 0, 135, 0, 210,
+ 233, 234, 235, 236, 237, 0, 515, 0, 0, 469,
+ 115, 116, 1, 208, 209, 89, 119, 120, 121, 122,
+ 6, 90, 519, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
+ 0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
+ 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
+ 0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
+ 0, 0, 0, 0, 152, 0, 135, 0, 210, 115,
+ 116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
+ 90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
+ 15, 96, 220, 18, 97, 98, 99, 100, 22, 101,
+ 24, 25, 102, 103, 104, 105, 221, 222, 223, 224,
+ 225, 226, 125, 227, 34, 35, 228, 229, 230, 126,
+ 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
+ 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
+ 0, 0, 110, 231, 232, 233, 234, 235, 236, 237,
+ 0, 0, 238, 152, 0, 135, 115, 116, 1, 117,
+ 118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
+ 8, 92, 93, 94, 12, 253, 95, 15, 96, 17,
+ 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
+ 103, 104, 105, 221, 222, 223, 224, 225, 226, 125,
+ 227, 254, 255, 228, 229, 230, 126, 39, 127, 41,
+ 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
+ 61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
+ 231, 232, 233, 234, 235, 236, 237, 0, 0, 238,
+ 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
+ 94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
+ 99, 100, 22, 101, 265, 25, 102, 103, 104, 105,
+ 221, 222, 223, 224, 225, 226, 125, 227, 34, 35,
+ 228, 229, 230, 126, 39, 127, 41, 128, 43, 129,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
+ 107, 108, 109, 0, 0, 0, 110, 231, 232, 233,
+ 234, 235, 236, 237, 0, 0, 238, 152, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
- 95, 15, 96, 220, 18, 97, 98, 99, 100, 22,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 221, 222, 223,
224, 225, 226, 125, 227, 34, 35, 228, 229, 230,
126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
@@ -1060,43 +1088,43 @@ static const yytype_int16 yytable[] =
0, 0, 0, 110, 231, 232, 233, 234, 235, 236,
237, 0, 0, 238, 152, 0, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
- 91, 8, 92, 93, 94, 12, 252, 95, 15, 96,
- 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 275, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 221, 222, 223, 224, 225, 226,
- 125, 227, 253, 254, 228, 229, 230, 126, 39, 127,
+ 125, 227, 34, 35, 228, 229, 230, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
110, 231, 232, 233, 234, 235, 236, 237, 0, 0,
- 238, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
- 98, 99, 100, 22, 101, 264, 25, 102, 103, 104,
- 105, 221, 222, 223, 224, 225, 226, 125, 227, 34,
- 35, 228, 229, 230, 126, 39, 127, 41, 128, 43,
+ 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
+ 105, 0, 0, 0, 0, 30, 31, 125, 33, 34,
+ 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
- 106, 107, 108, 109, 0, 0, 0, 110, 231, 232,
- 233, 234, 235, 236, 237, 0, 0, 238, 152, 0,
+ 106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
+ 0, 132, 133, 0, 0, 0, 0, 0, 152, 206,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
- 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
- 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 24, 25, 102, 103, 104, 105, 221, 222,
- 223, 224, 225, 226, 125, 227, 34, 35, 228, 229,
- 230, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 122, 6, 90, 0, 91, 123, 92, 93, 94, 12,
+ 13, 95, 124, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
+ 0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
+ 37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
- 109, 0, 0, 0, 110, 231, 232, 233, 234, 235,
- 236, 237, 0, 0, 238, 152, 0, 135, 115, 116,
+ 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
+ 0, 0, 0, 0, 0, 134, 0, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
- 96, 274, 18, 97, 98, 99, 100, 22, 101, 24,
- 25, 102, 103, 104, 105, 221, 222, 223, 224, 225,
- 226, 125, 227, 34, 35, 228, 229, 230, 126, 39,
+ 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
+ 31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
- 0, 110, 231, 232, 233, 234, 235, 236, 237, 0,
+ 0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
0, 0, 152, 0, 135, 115, 116, 1, 117, 118,
89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
@@ -1106,25 +1134,25 @@ static const yytype_int16 yytable[] =
43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
- 0, 0, 132, 133, 0, 0, 0, 0, 0, 152,
- 206, 135, 115, 116, 1, 117, 118, 89, 119, 120,
- 121, 122, 6, 90, 0, 91, 123, 92, 93, 94,
- 12, 13, 95, 124, 96, 17, 18, 97, 98, 99,
+ 0, 0, 132, 133, 0, 0, 0, 0, 0, 134,
+ 0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
+ 121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
+ 12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
0, 0, 0, 30, 31, 125, 33, 34, 35, 0,
36, 37, 126, 39, 127, 41, 128, 43, 129, 45,
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
+ 55, 56, 130, 58, 59, 60, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
- 133, 0, 0, 0, 0, 0, 134, 0, 135, 115,
+ 133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 125, 33, 34, 35, 0, 36, 37, 126,
- 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
- 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
+ 393, 127, 394, 128, 395, 129, 396, 46, 47, 48,
+ 49, 50, 0, 51, 52, 397, 398, 399, 56, 130,
+ 58, 400, 401, 61, 62, 106, 107, 108, 109, 0,
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
0, 0, 0, 152, 0, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
@@ -1133,125 +1161,88 @@ static const yytype_int16 yytable[] =
103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
+ 51, 52, 397, 398, 55, 56, 130, 58, 400, 401,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 134, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
- 0, 0, 0, 0, 30, 31, 125, 33, 34, 35,
+ 0, 0, 0, 0, 0, 0, 125, 33, 34, 35,
0, 36, 37, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 130, 58, 59, 60, 61, 62, 106,
+ 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
- 126, 391, 127, 392, 128, 393, 129, 394, 46, 47,
- 48, 49, 50, 0, 51, 52, 395, 396, 397, 56,
- 130, 58, 398, 399, 61, 62, 106, 107, 108, 109,
+ 0, 0, 0, 125, 33, 34, 35, 0, 0, 0,
+ 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
0, 0, 0, 0, 152, 0, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
- 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
- 125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
+ 102, 103, 104, 105, 0, 0, 0, 0, 0, 0,
+ 125, 0, 34, 35, 0, 0, 0, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 395, 396, 55, 56, 130, 58, 398,
- 399, 61, 62, 106, 107, 108, 109, 0, 0, 0,
- 110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
- 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
- 119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
- 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
- 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 0, 0, 0, 0, 0, 0, 125, 33, 34,
- 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
- 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
- 106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
- 0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
- 135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
- 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
- 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
- 0, 0, 0, 0, 125, 33, 34, 35, 0, 0,
- 0, 126, 39, 127, 41, 128, 43, 129, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
- 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
- 0, 0, 0, 0, 0, 152, 0, 135, 115, 116,
- 1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
- 0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
- 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
- 25, 102, 103, 104, 105, 0, 0, 0, 0, 0,
- 0, 125, 0, 34, 35, 0, 0, 0, 126, 39,
- 127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
- 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
- 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 152, 0, 135, 2, 3, 4, 5, 6,
- 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 68, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 351, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 373, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 474, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 494, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
- 0, 0, 67, 0, 0, 0, 0, 0, 0, 0,
- 0, 435, 1, 410, 411, 89, 2, 3, 4, 5,
- 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
- 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
- 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 106, 107, 108, 109,
- 0, 1, 0, 110, 89, 2, 3, 4, 5, 6,
+ 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
+ 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 152, 0, 135, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 68, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 353, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 375, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 479, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 499, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 0, 67, 0, 0, 0, 0, 0, 0, 0, 0,
+ 439, 1, 412, 413, 89, 2, 3, 4, 5, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
@@ -1265,143 +1256,181 @@ static const yytype_int16 yytable[] =
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 160, 58,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 195, 196, 197, 198, 199,
- 0, 51, 200, 53, 54, 55, 201, 57, 58, 59,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 160, 58, 59,
60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
110, 89, 2, 3, 4, 5, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 257, 57, 58, 59, 60,
+ 42, 43, 44, 45, 195, 196, 197, 198, 199, 0,
+ 51, 200, 53, 54, 55, 201, 57, 58, 59, 60,
61, 62, 106, 107, 108, 109, 0, 1, 0, 110,
- 89, 119, 120, 4, 5, 6, 90, 0, 91, 8,
+ 89, 2, 3, 4, 5, 6, 90, 0, 91, 8,
92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
104, 105, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
- 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 106, 107, 108, 109, 1, 0, 0, 110, 2,
- 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
- 0, 12, 13, 0, 15, 16, 17, 18, 19, 98,
- 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 106,
- 64, 0, 0, 0, 0, 0, 67, 221, 222, 223,
- 224, 244, 245, 0, 246, 0, 0, 228, 247, 248,
- 333, 334, 335, 336, 337, 338, 0, 339, 0, 0,
- 340, 341, 342, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 301, 302, 0, 0, 0, 0,
- 0, 0, 0, 0, 231, 232, 233, 234, 235, 236,
- 237, 0, 0, 0, 0, 0, 0, 343, 344, 345,
- 346, 347, 348, 349
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 258, 57, 58, 59, 60, 61,
+ 62, 106, 107, 108, 109, 0, 1, 0, 110, 89,
+ 119, 120, 4, 5, 6, 90, 0, 91, 8, 92,
+ 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
+ 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
+ 105, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
+ 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 106, 107, 108, 109, 1, 0, 0, 110, 2, 3,
+ 4, 5, 6, 0, 0, 7, 8, 9, 10, 0,
+ 12, 13, 0, 15, 16, 17, 18, 19, 98, 21,
+ 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 106, 64,
+ 0, 0, 0, 0, 0, 67, 221, 222, 223, 224,
+ 245, 246, 0, 247, 0, 0, 228, 248, 249, 0,
+ 0, 0, 0, 0, 0, 221, 222, 223, 224, 245,
+ 246, 0, 247, 0, 0, 228, 248, 249, 221, 222,
+ 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
+ 249, 0, 0, 231, 232, 233, 234, 235, 236, 237,
+ 0, 523, 302, 303, 0, 0, 0, 0, 0, 0,
+ 0, 0, 231, 232, 233, 234, 235, 236, 237, 0,
+ 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
+ 236, 237, 334, 335, 336, 337, 338, 339, 0, 340,
+ 0, 0, 341, 342, 343, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 344,
+ 345, 346, 347, 348, 349, 350
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 9, 67, 238, 16, 0, 14, 23, 31,
- 49, 351, 353, 474, 21, 84, 23, 29, 49, 26,
- 361, 52, 29, 19, 34, 98, 49, 100, 97, 44,
- 34, 27, 28, 494, 44, 36, 37, 378, 42, 43,
- 44, 45, 46, 47, 69, 49, 97, 98, 52, 53,
- 54, 76, 64, 92, 93, 94, 95, 64, 65, 31,
- 91, 92, 93, 94, 95, 97, 69, 67, 0, 303,
- 70, 94, 95, 76, 85, 97, 70, 69, 23, 75,
- 252, 253, 254, 28, 76, 89, 90, 91, 92, 93,
- 94, 95, 150, 97, 99, 10, 11, 28, 438, 157,
- 69, 150, 69, 34, 19, 28, 97, 76, 157, 76,
- 168, 34, 27, 28, 28, 28, 350, 253, 254, 168,
- 34, 34, 180, 130, 97, 99, 33, 98, 135, 103,
- 188, 180, 98, 97, 474, 476, 102, 97, 97, 188,
- 97, 97, 154, 391, 392, 393, 394, 154, 63, 397,
- 97, 158, 28, 160, 494, 97, 97, 97, 97, 97,
- 75, 502, 174, 28, 55, 102, 57, 174, 59, 510,
- 61, 26, 98, 103, 103, 102, 183, 518, 42, 43,
- 44, 45, 28, 15, 26, 49, 97, 97, 52, 53,
- 54, 100, 16, 97, 97, 97, 97, 87, 28, 28,
- 28, 28, 34, 103, 268, 86, 10, 28, 123, 124,
- 42, 43, 44, 45, 46, 47, 131, 49, 71, 134,
- 52, 53, 54, 97, 34, 89, 90, 91, 92, 93,
- 94, 95, 252, 253, 254, 97, 97, 152, 71, 86,
- 85, 85, 369, 243, 159, 252, 253, 254, 97, 243,
- 86, 86, 70, 28, 97, 376, 97, 89, 90, 91,
- 92, 93, 94, 95, 438, 300, 97, 467, 268, 269,
- 21, 97, 309, 217, -1, -1, 188, -1, 33, -1,
- -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, 309, -1, -1, -1, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, -1, -1, -1, -1, -1, -1, 244,
- 245, 246, 247, 248, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, 260, 261, -1, -1, 264,
- -1, 351, -1, 353, -1, -1, -1, -1, 365, -1,
- -1, 361, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, 376, -1, 378, -1,
+ 0, 21, 9, 67, 29, 241, 0, 14, 23, 355,
+ 353, 238, 16, 31, 21, 479, 23, 363, 84, 26,
+ 34, 69, 29, 99, 19, 36, 37, 103, 76, 44,
+ 44, 97, 27, 28, 380, 499, 28, 69, 69, 64,
+ 69, 69, 34, 49, 76, 76, 52, 76, 76, 393,
+ 394, 395, 396, 34, 28, 399, 49, 64, 65, 97,
+ 34, 42, 43, 44, 45, 46, 47, 67, 49, 31,
+ 70, 52, 53, 54, 10, 11, 70, 304, 28, 97,
+ 75, 85, 0, 19, 34, 91, 92, 93, 94, 95,
+ 98, 27, 28, 42, 43, 44, 45, 333, 97, 442,
+ 49, 94, 95, 52, 53, 54, 97, 98, 89, 90,
+ 91, 92, 93, 94, 95, 28, 97, 23, 98, 49,
+ 100, 34, 28, 130, 351, 33, 98, 63, 135, 154,
+ 102, 253, 254, 255, 97, 481, 479, 254, 255, 75,
+ 89, 90, 91, 92, 93, 94, 95, 154, 99, 174,
+ 97, 158, 15, 160, 28, 97, 499, 97, 97, 97,
+ 97, 507, 92, 93, 94, 95, 55, 174, 57, 515,
+ 59, 34, 61, 97, 97, 97, 183, 523, 97, 42,
+ 43, 44, 45, 46, 47, 97, 49, 123, 124, 52,
+ 53, 54, 28, 103, 103, 131, 26, 102, 134, 33,
+ 102, 98, 438, 97, 28, 269, 97, 150, 42, 43,
+ 44, 45, 46, 47, 157, 49, 152, 26, 52, 53,
+ 54, 100, 98, 159, 16, 168, 89, 90, 91, 92,
+ 93, 94, 95, 253, 254, 255, 97, 180, 97, 97,
+ 87, 28, 28, 28, 244, 188, 253, 254, 255, 28,
+ 244, 103, 97, 86, 10, 89, 90, 91, 92, 93,
+ 94, 95, 28, 71, 34, 97, 97, 71, 97, 269,
+ 270, 42, 43, 44, 45, 46, 47, 97, 49, 85,
+ 85, 52, 53, 54, 86, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 97, 310, 97, 86, 86, 97, 97, 245,
+ 246, 247, 248, 249, 371, 70, 28, 378, 89, 90,
+ 91, 92, 93, 94, 95, 261, 262, 98, 150, 265,
+ 442, 301, 471, 21, 310, 157, 217, 188, -1, -1,
+ -1, -1, -1, -1, -1, -1, 168, -1, -1, -1,
+ -1, -1, -1, 353, -1, 355, -1, -1, 180, -1,
+ 367, -1, -1, 363, -1, -1, 188, -1, -1, -1,
+ 306, 307, -1, 309, -1, -1, -1, 313, 378, 315,
+ 380, 119, 120, 121, 122, -1, -1, 125, 126, 127,
+ 128, 129, -1, -1, 132, 133, -1, -1, 334, 335,
+ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
+ 346, 347, 348, 349, 350, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 361, 362, -1, 453, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 305, 306, -1, 308, -1, -1, -1, 312, -1, 314,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, -1, -1, 449, 438, -1,
- 440, -1, 449, -1, 359, 360, 440, 119, 120, 121,
- 122, -1, -1, 125, 126, 127, 128, 129, -1, -1,
- 132, 133, -1, -1, 379, -1, -1, -1, -1, -1,
- -1, 471, -1, -1, 474, 482, 476, 471, 42, 43,
+ -1, -1, 442, -1, 444, 381, 453, -1, -1, -1,
+ 444, -1, -1, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 476, -1, -1, 479,
+ 487, 481, 476, 419, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 499,
+ 89, 90, 91, 92, 93, 94, 95, 507, 97, -1,
+ -1, 518, -1, -1, -1, 515, -1, -1, -1, -1,
+ -1, -1, -1, 523, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, 277,
+ 278, 279, 280, 281, 282, 283, 284, 483, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, 494, -1, -1, -1, -1, -1,
- -1, -1, 502, -1, -1, -1, 513, -1, -1, -1,
- 510, -1, -1, -1, -1, -1, -1, -1, 518, -1,
+ 54, -1, 300, 301, 302, 303, -1, -1, 504, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ 98, -1, 100, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, -1, 98, -1, 100, -1, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 478, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, 499, 89, 90, 91, 92, 93,
94, 95, -1, -1, -1, -1, 100, -1, -1, -1,
- -1, -1, -1, -1, 276, 277, 278, 279, 280, 281,
- 282, 283, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, 98, -1, -1, -1, -1, -1, 299, 300, 301,
- 302, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, 364, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, 392, 52, 53, 54, -1, 397,
+ 398, -1, 400, 401, 89, 90, 91, 92, 93, 94,
+ 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ -1, -1, 460, 461, 462, 463, -1, 465, 466, 467,
+ 468, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
- 362, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, -1, -1, -1, -1, -1, 390, -1,
- -1, -1, -1, 395, 396, -1, 398, 399, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, 456, 457, 458, 459, -1, 461,
- 462, 463, 464, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
- 492, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 505, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, -1, 103,
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, 497,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 510, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
+ -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 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, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 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, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, 88, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -1421,35 +1450,35 @@ static const yytype_int16 yycheck[] =
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- 98, 99, -1, 101, 5, 6, 7, 8, 9, 10,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 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,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, -1, -1, 88, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, 98, 99, -1,
+ 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, 100,
101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, 88, 89, 90, 91, 92, 93,
- 94, 95, -1, -1, 98, 99, -1, 101, 5, 6,
+ 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
-1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
@@ -1460,7 +1489,7 @@ static const yytype_int16 yycheck[] =
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, -1, -1, -1, 88, -1,
-1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
- 100, 101, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
@@ -1493,7 +1522,7 @@ static const yytype_int16 yycheck[] =
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
-1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
@@ -1503,7 +1532,7 @@ static const yytype_int16 yycheck[] =
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
@@ -1512,99 +1541,62 @@ static const yytype_int16 yycheck[] =
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 38, 39, 40, 41, -1, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
- 101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, -1, -1,
- -1, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, -1,
- -1, 48, -1, 50, 51, -1, -1, -1, 55, 56,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ 77, 78, 79, 80, 81, 82, 83, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
-1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 7, 99, -1, 101, 11, 12, 13, 14, 15,
- -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, -1,
- -1, -1, 88, -1, -1, -1, -1, -1, -1, -1,
- -1, 97, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
+ 97, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
@@ -1643,22 +1635,37 @@ static const yytype_int16 yycheck[] =
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 7, -1, -1, 88, 11,
- 12, 13, 14, 15, -1, -1, 18, 19, 20, 21,
- -1, 23, 24, -1, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, -1, -1, -1, -1, -1, 88, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 79, 80, -1, -1, -1, -1,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95
+ 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
+ 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 7, -1, -1, 88, 11, 12,
+ 13, 14, 15, -1, -1, 18, 19, 20, 21, -1,
+ 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
+ -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ -1, -1, -1, -1, -1, 88, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, 79, 80, -1, -1, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1673,51 +1680,52 @@ static const yytype_uint8 yystos[] =
67, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 85, 88, 97, 105,
106, 107, 108, 109, 114, 116, 120, 121, 122, 123,
- 126, 128, 129, 130, 131, 132, 133, 31, 97, 10,
+ 127, 129, 130, 131, 132, 133, 134, 31, 97, 10,
16, 18, 20, 21, 22, 25, 27, 30, 31, 32,
33, 35, 38, 39, 40, 41, 81, 82, 83, 84,
88, 116, 117, 118, 119, 5, 6, 8, 9, 11,
12, 13, 14, 19, 26, 48, 55, 57, 59, 61,
- 75, 78, 92, 93, 99, 101, 117, 124, 125, 140,
- 141, 144, 145, 146, 149, 150, 151, 154, 157, 158,
- 159, 161, 99, 159, 117, 31, 124, 159, 36, 37,
- 75, 117, 141, 143, 149, 117, 117, 124, 159, 124,
- 125, 118, 159, 118, 117, 97, 122, 0, 107, 124,
- 159, 97, 97, 98, 158, 158, 158, 158, 159, 159,
- 158, 158, 158, 158, 158, 63, 64, 65, 66, 67,
- 70, 74, 117, 159, 158, 158, 100, 159, 8, 9,
- 103, 117, 155, 156, 159, 162, 163, 99, 97, 97,
+ 75, 78, 92, 93, 99, 101, 117, 124, 126, 141,
+ 142, 145, 146, 147, 150, 151, 152, 155, 158, 159,
+ 160, 162, 99, 160, 117, 31, 124, 160, 36, 37,
+ 75, 117, 142, 144, 150, 117, 117, 124, 160, 124,
+ 126, 118, 160, 118, 117, 97, 122, 0, 107, 124,
+ 160, 97, 97, 98, 159, 159, 159, 159, 160, 160,
+ 159, 159, 159, 159, 159, 63, 64, 65, 66, 67,
+ 70, 74, 117, 160, 159, 159, 100, 160, 8, 9,
+ 103, 117, 156, 157, 160, 163, 164, 99, 97, 97,
28, 42, 43, 44, 45, 46, 47, 49, 52, 53,
- 54, 89, 90, 91, 92, 93, 94, 95, 98, 140,
- 160, 161, 159, 33, 46, 47, 49, 53, 54, 118,
- 97, 97, 24, 50, 51, 117, 159, 74, 34, 44,
- 127, 33, 97, 97, 36, 97, 97, 97, 34, 97,
- 97, 118, 97, 117, 28, 160, 28, 34, 28, 34,
- 28, 34, 28, 34, 69, 76, 69, 76, 69, 76,
- 69, 76, 69, 76, 55, 57, 59, 61, 152, 28,
- 28, 79, 80, 98, 100, 103, 103, 102, 103, 98,
- 102, 102, 98, 162, 26, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 163, 42, 43, 44, 45, 46, 47, 49,
- 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
- 98, 97, 120, 97, 141, 142, 144, 142, 142, 23,
- 44, 97, 28, 159, 159, 84, 97, 110, 111, 112,
- 113, 159, 122, 97, 120, 134, 135, 136, 97, 26,
- 158, 158, 158, 158, 158, 158, 158, 158, 23, 28,
- 153, 56, 58, 60, 62, 71, 72, 73, 77, 78,
- 147, 148, 158, 147, 158, 158, 163, 159, 159, 159,
- 8, 9, 117, 156, 159, 100, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 163, 97, 121, 137, 138, 139,
- 16, 134, 97, 97, 97, 159, 159, 134, 97, 117,
- 113, 97, 87, 136, 134, 159, 28, 28, 28, 28,
- 158, 153, 153, 153, 153, 158, 158, 153, 158, 158,
- 100, 16, 85, 139, 97, 120, 97, 15, 34, 86,
- 118, 97, 10, 158, 158, 158, 158, 158, 158, 158,
- 158, 28, 71, 148, 97, 120, 97, 137, 134, 34,
- 159, 97, 97, 115, 117, 71, 137, 85, 86, 159,
- 97, 134, 97, 98, 158, 85, 97, 97, 97, 134,
- 117, 97, 134, 86, 86, 97, 97
+ 54, 89, 90, 91, 92, 93, 94, 95, 98, 125,
+ 141, 161, 162, 160, 33, 46, 47, 49, 53, 54,
+ 118, 97, 97, 24, 50, 51, 117, 160, 74, 34,
+ 44, 128, 33, 97, 97, 36, 97, 97, 97, 34,
+ 97, 97, 118, 97, 117, 28, 161, 28, 34, 28,
+ 34, 28, 34, 28, 34, 69, 76, 69, 76, 69,
+ 76, 69, 76, 69, 76, 55, 57, 59, 61, 153,
+ 28, 28, 79, 80, 98, 100, 103, 103, 102, 103,
+ 98, 102, 102, 98, 163, 26, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 164, 42, 43, 44, 45, 46, 47,
+ 49, 52, 53, 54, 89, 90, 91, 92, 93, 94,
+ 95, 98, 125, 97, 120, 97, 142, 143, 145, 143,
+ 143, 23, 44, 97, 28, 160, 160, 84, 97, 110,
+ 111, 112, 113, 160, 122, 97, 120, 135, 136, 137,
+ 97, 26, 159, 159, 159, 159, 159, 159, 159, 159,
+ 23, 28, 154, 56, 58, 60, 62, 71, 72, 73,
+ 77, 78, 148, 149, 159, 148, 159, 159, 164, 160,
+ 160, 160, 8, 9, 117, 157, 160, 100, 160, 98,
+ 125, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160, 164, 97,
+ 121, 138, 139, 140, 16, 135, 97, 97, 97, 160,
+ 160, 135, 97, 117, 113, 97, 87, 137, 135, 160,
+ 28, 28, 28, 28, 159, 154, 154, 154, 154, 159,
+ 159, 154, 159, 159, 100, 125, 16, 85, 140, 97,
+ 120, 97, 15, 34, 86, 118, 97, 10, 159, 159,
+ 159, 159, 159, 159, 159, 159, 28, 71, 149, 97,
+ 120, 97, 138, 135, 34, 160, 97, 97, 115, 117,
+ 71, 138, 85, 86, 160, 97, 135, 97, 98, 159,
+ 85, 97, 97, 97, 135, 117, 97, 135, 86, 86,
+ 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1732,26 +1740,26 @@ static const yytype_uint8 yyr1[] =
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 118, 118, 119, 119, 120,
- 120, 121, 121, 121, 121, 121, 121, 122, 122, 122,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 124, 124, 124, 124, 124, 124, 124, 125,
- 125, 125, 125, 125, 126, 126, 126, 126, 127, 127,
- 128, 128, 128, 129, 129, 130, 130, 130, 130, 131,
- 131, 131, 131, 132, 132, 133, 134, 134, 135, 135,
- 136, 136, 137, 137, 138, 138, 139, 139, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 141, 142, 142, 143, 143, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 145, 145, 146, 146, 146,
- 146, 147, 147, 147, 147, 147, 148, 149, 149, 149,
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
- 151, 151, 151, 151, 151, 152, 152, 152, 152, 153,
- 153, 154, 154, 154, 155, 155, 156, 156, 156, 157,
- 157, 158, 158, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 160, 160, 160, 160, 160, 160, 160, 160,
+ 117, 117, 117, 117, 117, 118, 118, 118, 119, 119,
+ 120, 120, 121, 121, 121, 121, 121, 121, 122, 122,
+ 122, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 124, 124, 124, 124, 124, 124, 124,
+ 125, 125, 126, 126, 126, 126, 126, 127, 127, 127,
+ 127, 128, 128, 129, 129, 129, 130, 130, 131, 131,
+ 131, 131, 132, 132, 132, 132, 133, 133, 134, 135,
+ 135, 136, 136, 137, 137, 138, 138, 139, 139, 140,
+ 140, 141, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 142, 143, 143, 144, 144, 145, 145,
+ 145, 145, 145, 145, 145, 145, 145, 145, 146, 146,
+ 147, 147, 147, 147, 148, 148, 148, 148, 148, 149,
+ 150, 150, 150, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 152, 152, 152, 152, 152, 153, 153,
+ 153, 153, 154, 154, 155, 155, 155, 156, 156, 157,
+ 157, 157, 158, 158, 159, 159, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 161, 161, 162, 162, 163, 163
+ 160, 160, 160, 160, 160, 161, 161, 161, 161, 161,
+ 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
+ 161, 161, 161, 161, 162, 162, 163, 163, 164, 164
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1766,26 +1774,26 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 1, 1, 3, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 3, 3, 3, 3, 3, 3, 5, 3, 3,
- 2, 2, 0, 1, 3, 2, 4, 2, 5, 2,
- 2, 5, 4, 3, 5, 5, 5, 5, 1, 1,
- 3, 3, 3, 4, 7, 6, 9, 7, 10, 7,
- 11, 12, 9, 4, 6, 4, 0, 1, 1, 2,
- 1, 1, 0, 1, 1, 2, 1, 1, 1, 1,
- 1, 1, 2, 4, 3, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 4, 6, 4,
- 6, 4, 6, 4, 6, 2, 2, 1, 1, 1,
- 5, 1, 1, 5, 2, 2, 2, 2, 4, 4,
+ 1, 1, 1, 1, 1, 0, 1, 2, 1, 3,
+ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 5, 3,
+ 3, 2, 2, 0, 2, 4, 3, 5, 2, 5,
+ 0, 1, 2, 2, 5, 4, 3, 5, 5, 5,
+ 5, 1, 1, 3, 3, 3, 4, 7, 6, 9,
+ 7, 10, 7, 11, 12, 9, 4, 6, 4, 0,
+ 1, 1, 2, 1, 1, 0, 1, 1, 2, 1,
+ 1, 1, 1, 1, 1, 2, 4, 3, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 4, 6, 4, 6, 4, 6, 4, 6, 2, 2,
+ 1, 1, 1, 5, 1, 1, 5, 2, 2, 2,
+ 2, 4, 4, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 6, 6, 6, 6, 6, 1, 1,
+ 1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
+ 3, 3, 2, 2, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 6, 6, 6, 6, 6, 1, 1, 1, 1, 1,
- 1, 3, 3, 3, 1, 3, 3, 3, 3, 2,
- 2, 1, 1, 1, 1, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 1, 1, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 1, 1, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2059,37 +2067,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2063 "engines/director/lingo/lingo-gr.cpp"
+#line 2071 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2069 "engines/director/lingo/lingo-gr.cpp"
+#line 2077 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2075 "engines/director/lingo/lingo-gr.cpp"
+#line 2083 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2089 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2087 "engines/director/lingo/lingo-gr.cpp"
+#line 2095 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2093 "engines/director/lingo/lingo-gr.cpp"
+#line 2101 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2357,7 +2365,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2361 "engines/director/lingo/lingo-gr.cpp"
+#line 2369 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2368,7 +2376,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2372 "engines/director/lingo/lingo-gr.cpp"
+#line 2380 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2378,37 +2386,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2382 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2388 "engines/director/lingo/lingo-gr.cpp"
+#line 2396 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2394 "engines/director/lingo/lingo-gr.cpp"
+#line 2402 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2400 "engines/director/lingo/lingo-gr.cpp"
+#line 2408 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2406 "engines/director/lingo/lingo-gr.cpp"
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2412 "engines/director/lingo/lingo-gr.cpp"
+#line 2420 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2419,7 +2427,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2423 "engines/director/lingo/lingo-gr.cpp"
+#line 2431 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2429,13 +2437,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2433 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2439 "engines/director/lingo/lingo-gr.cpp"
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2444,1484 +2452,1484 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2448 "engines/director/lingo/lingo-gr.cpp"
+#line 2456 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2455 "engines/director/lingo/lingo-gr.cpp"
+#line 2463 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2469 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2467 "engines/director/lingo/lingo-gr.cpp"
+#line 2475 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2481 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2479 "engines/director/lingo/lingo-gr.cpp"
+#line 2487 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2485 "engines/director/lingo/lingo-gr.cpp"
+#line 2493 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+#line 2499 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2505 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2511 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2509 "engines/director/lingo/lingo-gr.cpp"
+#line 2517 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2523 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2521 "engines/director/lingo/lingo-gr.cpp"
+#line 2529 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2527 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2541 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2539 "engines/director/lingo/lingo-gr.cpp"
+#line 2547 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2545 "engines/director/lingo/lingo-gr.cpp"
+#line 2553 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2551 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2557 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2563 "engines/director/lingo/lingo-gr.cpp"
+#line 2571 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2569 "engines/director/lingo/lingo-gr.cpp"
+#line 2577 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2575 "engines/director/lingo/lingo-gr.cpp"
+#line 2583 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2581 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2587 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2593 "engines/director/lingo/lingo-gr.cpp"
+#line 2601 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2599 "engines/director/lingo/lingo-gr.cpp"
+#line 2607 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2613 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2611 "engines/director/lingo/lingo-gr.cpp"
+#line 2619 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2617 "engines/director/lingo/lingo-gr.cpp"
+#line 2625 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2623 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2629 "engines/director/lingo/lingo-gr.cpp"
+#line 2637 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2635 "engines/director/lingo/lingo-gr.cpp"
+#line 2643 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2641 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2647 "engines/director/lingo/lingo-gr.cpp"
+#line 2655 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2653 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2659 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2665 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2677 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2683 "engines/director/lingo/lingo-gr.cpp"
+#line 2691 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2689 "engines/director/lingo/lingo-gr.cpp"
+#line 2697 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2703 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2707 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2719 "engines/director/lingo/lingo-gr.cpp"
+#line 2727 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2725 "engines/director/lingo/lingo-gr.cpp"
+#line 2733 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2739 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2737 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2743 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2767 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2773 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2779 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2785 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2797 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2815 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2821 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2833 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2839 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2845 "engines/director/lingo/lingo-gr.cpp"
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2851 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2863 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2869 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2875 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* nonemptyidlist: ID */
-#line 370 "engines/director/lingo/lingo-gr.y"
+ case 98: /* nonemptyidlist: ID */
+#line 371 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2904 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 374 "engines/director/lingo/lingo-gr.y"
+ case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
+#line 375 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2904 "engines/director/lingo/lingo-gr.cpp"
+#line 2912 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* stmt: tENDIF '\n' */
-#line 385 "engines/director/lingo/lingo-gr.y"
+ case 101: /* stmt: tENDIF '\n' */
+#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 2918 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* proc: CMDID cmdargs '\n' */
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 111: /* proc: CMDID cmdargs '\n' */
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2916 "engines/director/lingo/lingo-gr.cpp"
+#line 2924 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* proc: tPUT cmdargs '\n' */
-#line 402 "engines/director/lingo/lingo-gr.y"
+ case 112: /* proc: tPUT cmdargs '\n' */
+#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2922 "engines/director/lingo/lingo-gr.cpp"
+#line 2930 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* proc: tGO cmdargs '\n' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+ case 113: /* proc: tGO cmdargs '\n' */
+#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2928 "engines/director/lingo/lingo-gr.cpp"
+#line 2936 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* proc: tGO frameargs '\n' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+ case 114: /* proc: tGO frameargs '\n' */
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2934 "engines/director/lingo/lingo-gr.cpp"
+#line 2942 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* proc: tPLAY cmdargs '\n' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+ case 115: /* proc: tPLAY cmdargs '\n' */
+#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2940 "engines/director/lingo/lingo-gr.cpp"
+#line 2948 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* proc: tPLAY frameargs '\n' */
-#line 406 "engines/director/lingo/lingo-gr.y"
+ case 116: /* proc: tPLAY frameargs '\n' */
+#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2946 "engines/director/lingo/lingo-gr.cpp"
+#line 2954 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* proc: tOPEN cmdargs '\n' */
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 117: /* proc: tOPEN cmdargs '\n' */
+#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 2952 "engines/director/lingo/lingo-gr.cpp"
+#line 2960 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* proc: tOPEN expr tWITH expr '\n' */
-#line 408 "engines/director/lingo/lingo-gr.y"
+ case 118: /* proc: tOPEN expr tWITH expr '\n' */
+#line 409 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 2962 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
- case 118: /* proc: tNEXT tREPEAT '\n' */
-#line 413 "engines/director/lingo/lingo-gr.y"
+ case 119: /* proc: tNEXT tREPEAT '\n' */
+#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2968 "engines/director/lingo/lingo-gr.cpp"
+#line 2976 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* proc: tEXIT tREPEAT '\n' */
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 120: /* proc: tEXIT tREPEAT '\n' */
+#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2974 "engines/director/lingo/lingo-gr.cpp"
+#line 2982 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* proc: tEXIT '\n' */
-#line 415 "engines/director/lingo/lingo-gr.y"
+ case 121: /* proc: tEXIT '\n' */
+#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2980 "engines/director/lingo/lingo-gr.cpp"
+#line 2988 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* proc: tASSERTERROR stmtoneliner */
-#line 416 "engines/director/lingo/lingo-gr.y"
+ case 122: /* proc: tASSERTERROR stmtoneliner */
+#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 2994 "engines/director/lingo/lingo-gr.cpp"
break;
- case 122: /* cmdargs: %empty */
-#line 419 "engines/director/lingo/lingo-gr.y"
- {
+ case 123: /* cmdargs: %empty */
+#line 420 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 2994 "engines/director/lingo/lingo-gr.cpp"
+#line 3002 "engines/director/lingo/lingo-gr.cpp"
break;
- case 123: /* cmdargs: expr */
-#line 422 "engines/director/lingo/lingo-gr.y"
- {
+ case 124: /* cmdargs: expr trailingcomma */
+#line 423 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
- args->push_back((yyvsp[0].node));
+ args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3004 "engines/director/lingo/lingo-gr.cpp"
+#line 3012 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* cmdargs: expr ',' nonemptyexprlist */
-#line 427 "engines/director/lingo/lingo-gr.y"
- {
+ case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
+#line 428 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd args, ...)
- (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
- (yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+ (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* cmdargs: expr expr_nounarymath */
-#line 431 "engines/director/lingo/lingo-gr.y"
- {
+ case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
+#line 432 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd arg arg`
NodeList *args = new NodeList;
+ args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
- args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3024 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist */
-#line 437 "engines/director/lingo/lingo-gr.y"
- {
+ case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
+#line 438 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd arg arg, ...`
- (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-2].node));
- (yyvsp[0].nodelist)->insert_at(0, (yyvsp[-3].node));
- (yyval.nodelist) = (yyvsp[0].nodelist); }
-#line 3034 "engines/director/lingo/lingo-gr.cpp"
+ (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
+ (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 3042 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* cmdargs: '(' ')' */
-#line 442 "engines/director/lingo/lingo-gr.y"
+ case 128: /* cmdargs: '(' ')' */
+#line 443 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3042 "engines/director/lingo/lingo-gr.cpp"
+#line 3050 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
-#line 445 "engines/director/lingo/lingo-gr.y"
+ case 129: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+#line 446 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3051 "engines/director/lingo/lingo-gr.cpp"
+#line 3059 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* frameargs: tFRAME expr */
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 132: /* frameargs: tFRAME expr */
+#line 458 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* frameargs: tMOVIE expr */
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 133: /* frameargs: tMOVIE expr */
+#line 463 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3072 "engines/director/lingo/lingo-gr.cpp"
+#line 3080 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 466 "engines/director/lingo/lingo-gr.y"
+ case 134: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 469 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3083 "engines/director/lingo/lingo-gr.cpp"
+#line 3091 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* frameargs: expr tOF tMOVIE expr */
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 135: /* frameargs: expr tOF tMOVIE expr */
+#line 475 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3102 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* frameargs: tFRAME expr expr_nounarymath */
-#line 478 "engines/director/lingo/lingo-gr.y"
+ case 136: /* frameargs: tFRAME expr expr_nounarymath */
+#line 481 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 3113 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 486 "engines/director/lingo/lingo-gr.y"
+ case 137: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 138: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+#line 3125 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 139: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 3131 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* asgn: tSET varorthe to expr '\n' */
-#line 489 "engines/director/lingo/lingo-gr.y"
+ case 140: /* asgn: tSET varorthe to expr '\n' */
+#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+#line 3137 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* definevars: tGLOBAL idlist '\n' */
-#line 494 "engines/director/lingo/lingo-gr.y"
+ case 143: /* definevars: tGLOBAL idlist '\n' */
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+#line 3143 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* definevars: tPROPERTY idlist '\n' */
-#line 495 "engines/director/lingo/lingo-gr.y"
+ case 144: /* definevars: tPROPERTY idlist '\n' */
+#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 3149 "engines/director/lingo/lingo-gr.cpp"
break;
- case 142: /* definevars: tINSTANCE idlist '\n' */
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 145: /* definevars: tINSTANCE idlist '\n' */
+#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3147 "engines/director/lingo/lingo-gr.cpp"
+#line 3155 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* ifstmt: tIF expr tTHEN stmt */
-#line 499 "engines/director/lingo/lingo-gr.y"
+ case 146: /* ifstmt: tIF expr tTHEN stmt */
+#line 502 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3156 "engines/director/lingo/lingo-gr.cpp"
+#line 3164 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
-#line 503 "engines/director/lingo/lingo-gr.y"
+ case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
+#line 506 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3171 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 507 "engines/director/lingo/lingo-gr.y"
+ case 148: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 510 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3174 "engines/director/lingo/lingo-gr.cpp"
+#line 3182 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
-#line 513 "engines/director/lingo/lingo-gr.y"
+ case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
+#line 516 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3183 "engines/director/lingo/lingo-gr.cpp"
+#line 3191 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
-#line 517 "engines/director/lingo/lingo-gr.y"
+ case 150: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
+#line 520 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3192 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
-#line 521 "engines/director/lingo/lingo-gr.y"
+ case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
+#line 524 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
+#line 3207 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 525 "engines/director/lingo/lingo-gr.y"
+ case 152: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 528 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 527 "engines/director/lingo/lingo-gr.y"
+ case 153: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 530 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3213 "engines/director/lingo/lingo-gr.cpp"
+#line 3221 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 529 "engines/director/lingo/lingo-gr.y"
+ case 154: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 532 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3220 "engines/director/lingo/lingo-gr.cpp"
+#line 3228 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 155: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
+#line 534 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3227 "engines/director/lingo/lingo-gr.cpp"
+#line 3235 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* tell: tTELL expr tTO stmtoneliner */
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 156: /* tell: tTELL expr tTO stmtoneliner */
+#line 538 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3236 "engines/director/lingo/lingo-gr.cpp"
+#line 3244 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 539 "engines/director/lingo/lingo-gr.y"
+ case 157: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 542 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3243 "engines/director/lingo/lingo-gr.cpp"
+#line 3251 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* when: tWHEN ID tTHEN expr */
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 158: /* when: tWHEN ID tTHEN expr */
+#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3249 "engines/director/lingo/lingo-gr.cpp"
+#line 3257 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* stmtlist: %empty */
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 159: /* stmtlist: %empty */
+#line 548 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3255 "engines/director/lingo/lingo-gr.cpp"
+#line 3263 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* nonemptystmtlist: stmtlistline */
-#line 550 "engines/director/lingo/lingo-gr.y"
+ case 161: /* nonemptystmtlist: stmtlistline */
+#line 553 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3266 "engines/director/lingo/lingo-gr.cpp"
+#line 3274 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 162: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
+#line 559 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3284 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* stmtlistline: '\n' */
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 163: /* stmtlistline: '\n' */
+#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* stmtlist_insideif: %empty */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 165: /* stmtlist_insideif: %empty */
+#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3288 "engines/director/lingo/lingo-gr.cpp"
+#line 3296 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* nonemptystmtlist_insideif: stmtlistline_insideif */
-#line 572 "engines/director/lingo/lingo-gr.y"
+ case 167: /* nonemptystmtlist_insideif: stmtlistline_insideif */
+#line 575 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3299 "engines/director/lingo/lingo-gr.cpp"
+#line 3307 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
-#line 578 "engines/director/lingo/lingo-gr.y"
+ case 168: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
+#line 581 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3309 "engines/director/lingo/lingo-gr.cpp"
+#line 3317 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* stmtlistline_insideif: '\n' */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 169: /* stmtlistline_insideif: '\n' */
+#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3315 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* simpleexpr_nounarymath: tINT */
-#line 592 "engines/director/lingo/lingo-gr.y"
+ case 171: /* simpleexpr_nounarymath: tINT */
+#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3321 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* simpleexpr_nounarymath: tFLOAT */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 172: /* simpleexpr_nounarymath: tFLOAT */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3327 "engines/director/lingo/lingo-gr.cpp"
+#line 3335 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* simpleexpr_nounarymath: tSYMBOL */
-#line 594 "engines/director/lingo/lingo-gr.y"
+ case 173: /* simpleexpr_nounarymath: tSYMBOL */
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3333 "engines/director/lingo/lingo-gr.cpp"
+#line 3341 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* simpleexpr_nounarymath: tSTRING */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 174: /* simpleexpr_nounarymath: tSTRING */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3339 "engines/director/lingo/lingo-gr.cpp"
+#line 3347 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 175: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3345 "engines/director/lingo/lingo-gr.cpp"
+#line 3353 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 176: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3351 "engines/director/lingo/lingo-gr.cpp"
+#line 3359 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 177: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3357 "engines/director/lingo/lingo-gr.cpp"
+#line 3365 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* var: ID */
-#line 606 "engines/director/lingo/lingo-gr.y"
+ case 183: /* var: ID */
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3363 "engines/director/lingo/lingo-gr.cpp"
+#line 3371 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* chunk: tFIELD simpleexpr */
-#line 616 "engines/director/lingo/lingo-gr.y"
+ case 188: /* chunk: tFIELD simpleexpr */
+#line 619 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3372 "engines/director/lingo/lingo-gr.cpp"
+#line 3380 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* chunk: tCAST simpleexpr */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 189: /* chunk: tCAST simpleexpr */
+#line 623 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3381 "engines/director/lingo/lingo-gr.cpp"
+#line 3389 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* chunk: tCHAR simpleexpr tOF simpleexpr */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 190: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+#line 627 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3388 "engines/director/lingo/lingo-gr.cpp"
+#line 3396 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 191: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 629 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3395 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* chunk: tWORD simpleexpr tOF simpleexpr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 192: /* chunk: tWORD simpleexpr tOF simpleexpr */
+#line 631 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3402 "engines/director/lingo/lingo-gr.cpp"
+#line 3410 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 193: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 633 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3417 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* chunk: tITEM simpleexpr tOF simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 194: /* chunk: tITEM simpleexpr tOF simpleexpr */
+#line 635 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3416 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 195: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 637 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3423 "engines/director/lingo/lingo-gr.cpp"
+#line 3431 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* chunk: tLINE simpleexpr tOF simpleexpr */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 196: /* chunk: tLINE simpleexpr tOF simpleexpr */
+#line 639 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3430 "engines/director/lingo/lingo-gr.cpp"
+#line 3438 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 197: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+#line 641 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3437 "engines/director/lingo/lingo-gr.cpp"
+#line 3445 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* object: tSCRIPT simpleexpr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 198: /* object: tSCRIPT simpleexpr */
+#line 645 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3446 "engines/director/lingo/lingo-gr.cpp"
+#line 3454 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* object: tWINDOW simpleexpr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 199: /* object: tWINDOW simpleexpr */
+#line 649 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3455 "engines/director/lingo/lingo-gr.cpp"
+#line 3463 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 203: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 658 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3461 "engines/director/lingo/lingo-gr.cpp"
+#line 3469 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 206: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3467 "engines/director/lingo/lingo-gr.cpp"
+#line 3475 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* theobj: tSOUND simpleexpr */
-#line 661 "engines/director/lingo/lingo-gr.y"
+ case 207: /* theobj: tSOUND simpleexpr */
+#line 664 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3473 "engines/director/lingo/lingo-gr.cpp"
+#line 3481 "engines/director/lingo/lingo-gr.cpp"
break;
- case 205: /* theobj: tSPRITE simpleexpr */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 208: /* theobj: tSPRITE simpleexpr */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3479 "engines/director/lingo/lingo-gr.cpp"
+#line 3487 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* menu: tMENU simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 209: /* menu: tMENU simpleexpr */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3485 "engines/director/lingo/lingo-gr.cpp"
+#line 3493 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* writablethe: tTHE ID */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 210: /* writablethe: tTHE ID */
+#line 670 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3491 "engines/director/lingo/lingo-gr.cpp"
+#line 3499 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* writablethe: tTHE ID tOF theobj */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 211: /* writablethe: tTHE ID tOF theobj */
+#line 671 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3497 "engines/director/lingo/lingo-gr.cpp"
+#line 3505 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 212: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3503 "engines/director/lingo/lingo-gr.cpp"
+#line 3511 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 213: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3509 "engines/director/lingo/lingo-gr.cpp"
+#line 3517 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 673 "engines/director/lingo/lingo-gr.y"
+ case 214: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3515 "engines/director/lingo/lingo-gr.cpp"
+#line 3523 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* thedatetime: tTHE tABBREV tDATE */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 215: /* thedatetime: tTHE tABBREV tDATE */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3521 "engines/director/lingo/lingo-gr.cpp"
+#line 3529 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* thedatetime: tTHE tABBREV tTIME */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 216: /* thedatetime: tTHE tABBREV tTIME */
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3527 "engines/director/lingo/lingo-gr.cpp"
+#line 3535 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* thedatetime: tTHE tABBR tDATE */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 217: /* thedatetime: tTHE tABBR tDATE */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3533 "engines/director/lingo/lingo-gr.cpp"
+#line 3541 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* thedatetime: tTHE tABBR tTIME */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 218: /* thedatetime: tTHE tABBR tTIME */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3539 "engines/director/lingo/lingo-gr.cpp"
+#line 3547 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* thedatetime: tTHE tLONG tDATE */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 219: /* thedatetime: tTHE tLONG tDATE */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3545 "engines/director/lingo/lingo-gr.cpp"
+#line 3553 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* thedatetime: tTHE tLONG tTIME */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 220: /* thedatetime: tTHE tLONG tTIME */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3551 "engines/director/lingo/lingo-gr.cpp"
+#line 3559 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* thedatetime: tTHE tSHORT tDATE */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thedatetime: tTHE tSHORT tDATE */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3557 "engines/director/lingo/lingo-gr.cpp"
+#line 3565 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* thedatetime: tTHE tSHORT tTIME */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thedatetime: tTHE tSHORT tTIME */
+#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3563 "engines/director/lingo/lingo-gr.cpp"
+#line 3571 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 685 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3569 "engines/director/lingo/lingo-gr.cpp"
+#line 3577 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3575 "engines/director/lingo/lingo-gr.cpp"
+#line 3583 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 225: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3581 "engines/director/lingo/lingo-gr.cpp"
+#line 3589 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 226: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3587 "engines/director/lingo/lingo-gr.cpp"
+#line 3595 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 689 "engines/director/lingo/lingo-gr.y"
+ case 227: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3593 "engines/director/lingo/lingo-gr.cpp"
+#line 3601 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* chunktype: tCHAR */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 228: /* chunktype: tCHAR */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3599 "engines/director/lingo/lingo-gr.cpp"
+#line 3607 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* chunktype: tWORD */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 229: /* chunktype: tWORD */
+#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3605 "engines/director/lingo/lingo-gr.cpp"
+#line 3613 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* chunktype: tITEM */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 230: /* chunktype: tITEM */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3611 "engines/director/lingo/lingo-gr.cpp"
+#line 3619 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* chunktype: tLINE */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 231: /* chunktype: tLINE */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3617 "engines/director/lingo/lingo-gr.cpp"
+#line 3625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* list: '[' exprlist ']' */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 234: /* list: '[' exprlist ']' */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3623 "engines/director/lingo/lingo-gr.cpp"
+#line 3631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* list: '[' ':' ']' */
-#line 701 "engines/director/lingo/lingo-gr.y"
+ case 235: /* list: '[' ':' ']' */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3629 "engines/director/lingo/lingo-gr.cpp"
+#line 3637 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* list: '[' proplist ']' */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 236: /* list: '[' proplist ']' */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3635 "engines/director/lingo/lingo-gr.cpp"
+#line 3643 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* proplist: proppair */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 237: /* proplist: proppair */
+#line 708 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3644 "engines/director/lingo/lingo-gr.cpp"
+#line 3652 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* proplist: proplist ',' proppair */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 238: /* proplist: proplist ',' proppair */
+#line 712 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3652 "engines/director/lingo/lingo-gr.cpp"
+#line 3660 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* proppair: tSYMBOL ':' expr */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 239: /* proppair: tSYMBOL ':' expr */
+#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3658 "engines/director/lingo/lingo-gr.cpp"
+#line 3666 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* proppair: ID ':' expr */
-#line 715 "engines/director/lingo/lingo-gr.y"
+ case 240: /* proppair: ID ':' expr */
+#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3664 "engines/director/lingo/lingo-gr.cpp"
+#line 3672 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* proppair: tSTRING ':' expr */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 241: /* proppair: tSTRING ':' expr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3670 "engines/director/lingo/lingo-gr.cpp"
+#line 3678 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* unarymath: '+' simpleexpr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 242: /* unarymath: '+' simpleexpr */
+#line 722 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3676 "engines/director/lingo/lingo-gr.cpp"
+#line 3684 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* unarymath: '-' simpleexpr */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 243: /* unarymath: '-' simpleexpr */
+#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3682 "engines/director/lingo/lingo-gr.cpp"
+#line 3690 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* expr: expr '+' expr */
-#line 730 "engines/director/lingo/lingo-gr.y"
+ case 248: /* expr: expr '+' expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3688 "engines/director/lingo/lingo-gr.cpp"
+#line 3696 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* expr: expr '-' expr */
-#line 731 "engines/director/lingo/lingo-gr.y"
+ case 249: /* expr: expr '-' expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3694 "engines/director/lingo/lingo-gr.cpp"
+#line 3702 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* expr: expr '*' expr */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 250: /* expr: expr '*' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3700 "engines/director/lingo/lingo-gr.cpp"
+#line 3708 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr: expr '/' expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr: expr '/' expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3706 "engines/director/lingo/lingo-gr.cpp"
+#line 3714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr: expr tMOD expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr: expr tMOD expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3712 "engines/director/lingo/lingo-gr.cpp"
+#line 3720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr: expr '>' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 253: /* expr: expr '>' expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3718 "engines/director/lingo/lingo-gr.cpp"
+#line 3726 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr: expr '<' expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 254: /* expr: expr '<' expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3724 "engines/director/lingo/lingo-gr.cpp"
+#line 3732 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr: expr tEQ expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 255: /* expr: expr tEQ expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3730 "engines/director/lingo/lingo-gr.cpp"
+#line 3738 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* expr: expr tNEQ expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr: expr tNEQ expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3736 "engines/director/lingo/lingo-gr.cpp"
+#line 3744 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* expr: expr tGE expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr: expr tGE expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3742 "engines/director/lingo/lingo-gr.cpp"
+#line 3750 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* expr: expr tLE expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr: expr tLE expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3748 "engines/director/lingo/lingo-gr.cpp"
+#line 3756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr: expr tAND expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr: expr tAND expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3754 "engines/director/lingo/lingo-gr.cpp"
+#line 3762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr: expr tOR expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr: expr tOR expr */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3760 "engines/director/lingo/lingo-gr.cpp"
+#line 3768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr: expr '&' expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr: expr '&' expr */
+#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3766 "engines/director/lingo/lingo-gr.cpp"
+#line 3774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr: expr tCONCAT expr */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr: expr tCONCAT expr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3772 "engines/director/lingo/lingo-gr.cpp"
+#line 3780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr: expr tCONTAINS expr */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr: expr tCONTAINS expr */
+#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3778 "engines/director/lingo/lingo-gr.cpp"
+#line 3786 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr: expr tSTARTS expr */
-#line 746 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr: expr tSTARTS expr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3784 "engines/director/lingo/lingo-gr.cpp"
+#line 3792 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 755 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 758 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3790 "engines/director/lingo/lingo-gr.cpp"
+#line 3798 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 756 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 759 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3796 "engines/director/lingo/lingo-gr.cpp"
+#line 3804 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 757 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3802 "engines/director/lingo/lingo-gr.cpp"
+#line 3810 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 758 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3808 "engines/director/lingo/lingo-gr.cpp"
+#line 3816 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 759 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3814 "engines/director/lingo/lingo-gr.cpp"
+#line 3822 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 760 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3820 "engines/director/lingo/lingo-gr.cpp"
+#line 3828 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 761 "engines/director/lingo/lingo-gr.y"
+ case 273: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3826 "engines/director/lingo/lingo-gr.cpp"
+#line 3834 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 762 "engines/director/lingo/lingo-gr.y"
+ case 274: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3832 "engines/director/lingo/lingo-gr.cpp"
+#line 3840 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 763 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3838 "engines/director/lingo/lingo-gr.cpp"
+#line 3846 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 764 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3844 "engines/director/lingo/lingo-gr.cpp"
+#line 3852 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3850 "engines/director/lingo/lingo-gr.cpp"
+#line 3858 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 766 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3856 "engines/director/lingo/lingo-gr.cpp"
+#line 3864 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 767 "engines/director/lingo/lingo-gr.y"
+ case 279: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3862 "engines/director/lingo/lingo-gr.cpp"
+#line 3870 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 768 "engines/director/lingo/lingo-gr.y"
+ case 280: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3868 "engines/director/lingo/lingo-gr.cpp"
+#line 3876 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 769 "engines/director/lingo/lingo-gr.y"
+ case 281: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 772 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3874 "engines/director/lingo/lingo-gr.cpp"
+#line 3882 "engines/director/lingo/lingo-gr.cpp"
break;
- case 279: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 770 "engines/director/lingo/lingo-gr.y"
+ case 282: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 773 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3880 "engines/director/lingo/lingo-gr.cpp"
+#line 3888 "engines/director/lingo/lingo-gr.cpp"
break;
- case 280: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 771 "engines/director/lingo/lingo-gr.y"
+ case 283: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3886 "engines/director/lingo/lingo-gr.cpp"
+#line 3894 "engines/director/lingo/lingo-gr.cpp"
break;
- case 281: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 774 "engines/director/lingo/lingo-gr.y"
+ case 284: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 777 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3892 "engines/director/lingo/lingo-gr.cpp"
+#line 3900 "engines/director/lingo/lingo-gr.cpp"
break;
- case 282: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 775 "engines/director/lingo/lingo-gr.y"
+ case 285: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 778 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3898 "engines/director/lingo/lingo-gr.cpp"
+#line 3906 "engines/director/lingo/lingo-gr.cpp"
break;
- case 283: /* exprlist: %empty */
-#line 778 "engines/director/lingo/lingo-gr.y"
+ case 286: /* exprlist: %empty */
+#line 781 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3904 "engines/director/lingo/lingo-gr.cpp"
+#line 3912 "engines/director/lingo/lingo-gr.cpp"
break;
- case 285: /* nonemptyexprlist: expr */
-#line 782 "engines/director/lingo/lingo-gr.y"
+ case 288: /* nonemptyexprlist: expr */
+#line 785 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3913 "engines/director/lingo/lingo-gr.cpp"
+#line 3921 "engines/director/lingo/lingo-gr.cpp"
break;
- case 286: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 786 "engines/director/lingo/lingo-gr.y"
+ case 289: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 789 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3921 "engines/director/lingo/lingo-gr.cpp"
+#line 3929 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3925 "engines/director/lingo/lingo-gr.cpp"
+#line 3933 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4120,7 +4128,7 @@ yyreturn:
return yyresult;
}
-#line 791 "engines/director/lingo/lingo-gr.y"
+#line 794 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 418697ffeb..2aa9156ed8 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -365,6 +365,7 @@ ID: CMDID
idlist: /* empty */ { $$ = new IDList; }
| nonemptyidlist
+ | nonemptyidlist ',' // allow trailing comma
;
nonemptyidlist: ID[item] {
@@ -416,25 +417,25 @@ proc: CMDID cmdargs '\n' { $$ = new CmdNode($CMDID, $cmdargs); }
| tASSERTERROR stmtoneliner { $$ = new AssertErrorNode($stmtoneliner); }
;
-cmdargs: /* empty */ {
+cmdargs: /* empty */ {
// This matches `cmd`
$$ = new NodeList; }
- | expr {
+ | expr trailingcomma {
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back($expr);
$$ = args; }
- | expr ',' nonemptyexprlist[args] {
+ | expr ',' nonemptyexprlist[args] trailingcomma {
// This matches `cmd args, ...)
$args->insert_at(0, $expr);
$$ = $args; }
- | expr expr_nounarymath {
+ | expr expr_nounarymath trailingcomma {
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back($expr);
args->push_back($expr_nounarymath);
$$ = args; }
- | expr expr_nounarymath ',' nonemptyexprlist[args] {
+ | expr expr_nounarymath ',' nonemptyexprlist[args] trailingcomma {
// This matches `cmd arg arg, ...`
$args->insert_at(0, $expr_nounarymath);
$args->insert_at(0, $expr);
@@ -448,6 +449,8 @@ cmdargs: /* empty */ {
$$ = $args; }
;
+trailingcomma: /* empty */ | ',' ;
+
frameargs:
// On the off chance that we encounter something like `play frame done`
// we will wrap the frame arg in a FrameNode. This has no purpose other than
Commit: 155db7d72c6b832679bf212662afcd9036762a87
https://github.com/scummvm/scummvm/commit/155db7d72c6b832679bf212662afcd9036762a87
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Correctly populate _methodVars
Arguments were not added to _methodVars before.
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 9395b27ba3..04121f7f4b 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -353,9 +353,11 @@ void LingoCompiler::registerMethodVar(const Common::String &name, VarType type)
}
(*_methodVars)[name] = type;
if (type == kVarProperty || type == kVarInstance) {
- _assemblyContext->_properties[name] = Datum();
+ if (!_assemblyContext->_properties.contains(name))
+ _assemblyContext->_properties[name] = Datum();
} else if (type == kVarGlobal) {
- g_lingo->_globalvars[name] = Datum();
+ if (!g_lingo->_globalvars.contains(name))
+ g_lingo->_globalvars[name] = Datum();
}
}
}
@@ -425,14 +427,15 @@ bool LingoCompiler::visitHandlerNode(HandlerNode *node) {
VarTypeHash *mainMethodVars = _methodVars;
_methodVars = new VarTypeHash;
+ for (uint i = 0; i < node->args->size(); i++) {
+ registerMethodVar(*(*node->args)[i], kVarArgument);
+ }
for (VarTypeHash::iterator i = mainMethodVars->begin(); i != mainMethodVars->end(); ++i) {
- if (i->_value == kVarGlobal || i->_value == kVarProperty)
- (*_methodVars)[i->_key] = i->_value;
+ if (i->_value == kVarGlobal)
+ registerMethodVar(i->_key, kVarGlobal);
}
- if (_inFactory) {
- for (DatumHash::iterator i = _assemblyContext->_properties.begin(); i != _assemblyContext->_properties.end(); ++i) {
- (*_methodVars)[i->_key] = kVarInstance;
- }
+ for (DatumHash::iterator i = _assemblyContext->_properties.begin(); i != _assemblyContext->_properties.end(); ++i) {
+ registerMethodVar(i->_key, _inFactory ? kVarInstance : kVarProperty);
}
COMPILE_LIST(node->stmts);
Commit: 478f74de3e168e11e35f2d812ed254266bae6cf3
https://github.com/scummvm/scummvm/commit/478f74de3e168e11e35f2d812ed254266bae6cf3
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Reimplement factory calls
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 827fb41bf3..2b590e6ccd 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1422,7 +1422,7 @@ void LC::call(const Common::String &name, int nargs, bool allowRetVal) {
Datum firstArg = g_lingo->_stack[g_lingo->_stack.size() - nargs];
// Factory/XObject method call
- if (firstArg.type == VARREF) { // first arg could be method name
+ if (firstArg.isVarRef()) { // first arg could be method name
Datum objName(name);
objName.type = VARREF;
Datum obj = g_lingo->varFetch(objName, nullptr, true);
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 04121f7f4b..dacde82dd5 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -427,6 +427,9 @@ bool LingoCompiler::visitHandlerNode(HandlerNode *node) {
VarTypeHash *mainMethodVars = _methodVars;
_methodVars = new VarTypeHash;
+ if (_inFactory) {
+ registerMethodVar("me", kVarArgument);
+ }
for (uint i = 0; i < node->args->size(); i++) {
registerMethodVar(*(*node->args)[i], kVarArgument);
}
@@ -445,6 +448,9 @@ bool LingoCompiler::visitHandlerNode(HandlerNode *node) {
debug("define handler \"%s\" (len: %d)", node->name->c_str(), _currentAssembly->size() - 1);
Common::Array<Common::String> *argNames = new Common::Array<Common::String>;
+ if (_inFactory) {
+ argNames->push_back("me");
+ }
for (uint i = 0; i < node->args->size(); i++) {
argNames->push_back(Common::String((*node->args)[i]->c_str()));
}
@@ -538,7 +544,15 @@ bool LingoCompiler::visitCmdNode(CmdNode *node) {
return true;
}
- COMPILE_LIST(node->args);
+ if (node->args->size() >= 1 && (*node->args)[0]->type == kVarNode) {
+ // This could be a method call. Code the first arg as a reference.
+ COMPILE_REF((*node->args)[0]);
+ for (uint i = 1; i < node->args->size(); i++) {
+ COMPILE((*node->args)[i]);
+ }
+ } else {
+ COMPILE_LIST(node->args);
+ }
codeCmd(*node->name, node->args->size());
return true;
}
@@ -1023,7 +1037,15 @@ bool LingoCompiler::visitPropPairNode(PropPairNode *node) {
/* FuncNode */
bool LingoCompiler::visitFuncNode(FuncNode *node) {
- COMPILE_LIST(node->args);
+ if (node->args->size() >= 1 && (*node->args)[0]->type == kVarNode) {
+ // This could be a method call. Code the first arg as a reference.
+ COMPILE_REF((*node->args)[0]);
+ for (uint i = 1; i < node->args->size(); i++) {
+ COMPILE((*node->args)[i]);
+ }
+ } else {
+ COMPILE_LIST(node->args);
+ }
codeFunc(*node->name, node->args->size());
return true;
}
Commit: 9c5c8cbb1d8359fcf1df194f279a6b55e809309c
https://github.com/scummvm/scummvm/commit/9c5c8cbb1d8359fcf1df194f279a6b55e809309c
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Remove buildbot warnings for undefined var
I kept a regular warning for codeVarGet, but I don't think this is worth
a buildbot failure.
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index dacde82dd5..144c500f8e 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -295,8 +295,6 @@ void LingoCompiler::codeVarRef(const Common::String &name) {
if (_methodVars->contains(name)) {
type = (*_methodVars)[name];
} else {
- if (_indef)
- warning("BUILDBOT: LingoCompiler::codeVarRef: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
@@ -324,7 +322,7 @@ void LingoCompiler::codeVarGet(const Common::String &name) {
type = (*_methodVars)[name];
} else {
if (_indef)
- warning("BUILDBOT: LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
+ warning("LingoCompiler::codeVarGet: var %s referenced before definition", name.c_str());
type = kVarGeneric;
}
switch (type) {
Commit: 7d543f5750a899779cc1af2f63c03c18e0b63cd0
https://github.com/scummvm/scummvm/commit/7d543f5750a899779cc1af2f63c03c18e0b63cd0
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix factory redefinition warning
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 144c500f8e..ca8774c5e0 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -365,7 +365,7 @@ void LingoCompiler::registerFactory(Common::String &name) {
// but bytecode needs it to resolve names
_assemblyContext->setName(name);
_assemblyContext->setFactory(true);
- if (!g_lingo->_globalvars.contains(name)) {
+ if (!g_lingo->_globalvars.contains(name) || g_lingo->_globalvars[name].type == VOID) {
g_lingo->_globalvars[name] = _assemblyContext;
} else {
warning("BUILDBOT: Factory '%s' already defined", name.c_str());
Commit: 509b34579fa30ce9cb4b32fcfda3526fc7dbcc27
https://github.com/scummvm/scummvm/commit/509b34579fa30ce9cb4b32fcfda3526fc7dbcc27
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Change chunk ref args to exprs
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 29981b6045..3f6327ff6f 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -639,7 +639,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3495
+#define YYLAST 3746
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
@@ -817,58 +817,58 @@ static const yytype_int16 yytoknum[] =
static const yytype_int16 yypact[] =
{
2303, -465, -465, -465, -465, -465, -465, -18, -465, 2873,
- 1436, 1533, -465, -465, 2873, -465, 38, -465, -465, 1630,
+ 1436, 1533, -465, -465, 2873, -465, 20, -465, -465, 1630,
-11, 2952, -465, 2873, -465, -465, 2873, 1630, 1436, 2873,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, 1533, 2873, 2873, -38, 3267, -465, 82,
+ -465, -465, -465, 1533, 2873, 2873, -19, 3267, -465, 69,
2303, -465, -465, -465, -465, 1630, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, 1, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -13, -465, -465,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, 37, -8, -465, -465, -465, -465, 1727,
- 1727, 1727, 1727, 1533, 1533, 1727, 1727, 1727, 1727, 1727,
- 3031, 1533, 1727, 1727, 1339, 755, 49, 53, 58, -465,
+ -465, -465, -465, 1, -16, -465, -465, -465, -465, 1727,
+ 1727, 1727, 1727, 1533, 1533, 1727, 1533, 1533, 1533, 1533,
+ 3031, 1533, 1727, 1727, 1339, 755, -9, 23, 25, -465,
-465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- 854, -465, 1533, 166, 2873, 60, 61, 951, 2873, 1533,
- 3110, -465, -465, -14, -465, 92, 62, 63, 1048, 76,
- 77, 78, 19, 81, 2873, -465, -465, -465, -465, 88,
- 1145, -465, -465, 2873, -465, -465, -465, -465, 1242, 3346,
- -465, 8, 26, 50, 87, -48, -32, -31, -29, -28,
- 111, 126, 164, 3333, -465, -465, -465, 482, 90, 91,
- 95, -76, 28, -465, 3346, 98, 103, 1533, -465, -465,
- 170, 1533, 1533, 1533, 1533, 2018, 2018, 2212, 1533, 2115,
+ 854, -465, 1533, 229, 2873, 28, 29, 951, 2873, 1533,
+ 3110, -465, -465, -14, -465, 100, 37, 40, 1048, 41,
+ 53, 55, 3316, 57, 2873, -465, -465, -465, -465, 60,
+ 1145, -465, -465, 2873, -465, -465, -465, -465, 1242, 3597,
+ -465, 19, 443, 527, 549, -48, -32, -31, -28, -27,
+ 113, 130, 131, 3584, -465, -465, -465, 3329, 68, 72,
+ 58, -76, -62, -465, 3597, 71, 81, 1533, -465, -465,
+ 155, 1533, 1533, 1533, 1533, 2018, 2018, 2212, 1533, 2115,
2115, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, -465,
- -465, 229, -465, 506, 2383, 1533, 1533, 1533, 1533, 1533,
- 106, -465, -465, 3189, 3189, 3189, -15, 411, 176, -465,
+ -465, 3401, -465, 3342, 2383, 1533, 1533, 1533, 1533, 1533,
+ 85, -465, -465, 3189, 3189, 3189, -15, 3414, 156, -465,
-465, 1533, 1533, -66, -465, 1533, -465, -465, -465, 3267,
- 2463, -465, 109, -465, -465, 191, 3400, 1727, 1727, 1727,
- 1727, 1727, 1727, 1727, 1727, -465, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, 94,
+ 2463, -465, 86, -465, -465, 159, 3651, 1727, 1533, 1727,
+ 1533, 1727, 1533, 1727, 1533, -465, -465, -465, -465, -465,
+ -465, -465, -465, -465, -465, -465, -465, -465, -465, 27,
1824, 1921, 1727, 1727, 1533, -465, 1533, 1533, -465, 1533,
- 2794, -465, -465, 1533, 121, 1533, -6, -6, -6, -6,
+ 2794, -465, -465, 1533, 89, 1533, -6, -6, -6, -6,
51, 51, -465, 70, -6, -6, -6, -6, 70, 7,
- 7, -465, -465, 124, 1533, 1533, 1533, 1533, 1533, 1533,
+ 7, -465, -465, 96, 1533, 1533, 1533, 1533, 1533, 1533,
1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
- 1533, 1533, -465, 2703, 208, 2463, -465, 139, -465, 141,
- 142, 1533, 1533, 2463, 1921, 575, 3346, 2873, -465, -465,
- -465, -66, -465, 588, -465, -465, -465, 153, 2463, -465,
- 2463, 1533, -465, 213, -465, 214, -465, 215, -465, 221,
- -465, -465, 1727, 94, 94, 94, 94, 1727, 1727, 94,
- 1727, 1727, -465, -465, -465, -465, -465, -465, 20, 3346,
- 3346, 3346, 90, 91, 148, -465, 3346, -465, 3346, 1533,
+ 1533, 1533, -465, 2703, 180, 2463, -465, 103, -465, 104,
+ 106, 1533, 1533, 2463, 1921, 3427, 3597, 2873, -465, -465,
+ -465, -66, -465, 3483, -465, -465, -465, 110, 2463, -465,
+ 2463, 1533, -465, 411, -465, 603, -465, 623, -465, 657,
+ -465, -465, 1727, 27, 27, 27, 27, 1727, 1727, 27,
+ 1727, 1727, -465, -465, -465, -465, -465, -465, -46, 3597,
+ 3597, 3597, 68, 72, 101, -465, 3597, -465, 3597, 1533,
-465, -6, -6, -6, -6, 51, 51, -465, 70, -6,
- -6, -6, -6, 70, 7, 7, -465, -465, 124, -465,
- -465, -4, 2703, -465, 2543, -465, -465, -465, -465, 603,
- 137, 167, -465, 2873, -465, -465, 155, -465, 244, 3346,
+ -6, -6, -6, 70, 7, 7, -465, -465, 96, -465,
+ -465, -4, 2703, -465, 2543, -465, -465, -465, -465, 3496,
+ 165, 120, -465, 2873, -465, -465, 118, -465, 211, 3597,
1727, 1727, 1727, 1727, -465, 1727, 1727, 1727, 1727, -465,
- 234, 192, -465, -465, -465, -465, 2623, 168, -465, 2703,
- -465, 2463, 230, 1533, 169, 171, -465, 2873, -465, -465,
- -465, -465, -465, -465, -465, -465, 196, 1727, -465, 2703,
- -465, -465, 194, 198, 1533, 659, -465, 2463, 9, -465,
- 1727, 195, 180, 205, 3314, 2463, -465, -465, 2873, -465,
- 207, -465, -465, 2463, 219, -465, -465, 220, 210, 211,
+ 194, 153, -465, -465, -465, -465, 2623, 128, -465, 2703,
+ -465, 2463, 192, 1533, 132, 133, -465, 2873, -465, -465,
+ -465, -465, -465, -465, -465, -465, 157, 1727, -465, 2703,
+ -465, -465, 142, 146, 1533, 3509, -465, 2463, -38, -465,
+ 1727, 151, 140, 141, 3565, 2463, -465, -465, 2873, -465,
+ 143, -465, -465, 2463, 163, -465, -465, 166, 144, 145,
-465, -465
};
@@ -936,12 +936,12 @@ static const yytype_int16 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -465, -465, -465, 245, -465, -465, -465, -465, -465, -57,
+ -465, -465, -465, 169, -465, -465, -465, -465, -465, -126,
-465, -465, 0, -7, -25, -465, 6, -343, -64, -465,
- 5, -236, 288, -465, -465, -465, -465, -465, -465, -465,
- -465, -346, -465, -61, -464, -465, -112, 57, -20, -117,
- -465, -122, -465, -465, 30, -139, 312, -465, -465, -465,
- -344, -465, -465, 24, -465, 262, 64, 149, 178, 119,
+ 5, -236, 225, -465, -465, -465, -465, -465, -465, -465,
+ -465, -346, -465, -117, -464, -465, -179, -2, -20, -148,
+ -465, -123, -465, -465, -37, -206, 245, -465, -465, -465,
+ -278, -465, -465, -43, -465, 262, 64, 80, 63, 62,
-227
};
@@ -965,79 +965,79 @@ static const yytype_int16 yytable[] =
75, 162, 112, 176, 171, 352, 76, 154, 361, 445,
440, 333, 476, 87, 161, 502, 165, 451, 367, 166,
259, 285, 112, 217, 156, 158, 159, 309, 286, 362,
- 260, 368, 167, 169, 458, 511, 277, 287, 289, 173,
- 291, 293, 278, 247, 288, 290, 228, 292, 294, 465,
- 466, 467, 468, 269, 279, 471, 247, 112, 174, 175,
- 280, 221, 222, 223, 224, 245, 246, 75, 247, 155,
- 75, 228, 248, 249, 150, 153, 76, 408, 281, 88,
- 179, 477, 177, 157, 282, 233, 234, 235, 236, 237,
- 183, 168, 150, 221, 222, 223, 224, 420, 181, 440,
- 247, 236, 237, 228, 248, 249, 517, 518, 231, 232,
- 233, 234, 235, 236, 237, 283, 270, 390, 313, 247,
- 474, 284, 391, 202, 438, 262, 310, 172, 211, 250,
- 311, 358, 358, 358, 182, 503, 440, 359, 360, 180,
- 231, 232, 233, 234, 235, 236, 237, 112, 217, 272,
- 218, 256, 482, 202, 300, 219, 440, 251, 252, 263,
- 264, 516, 234, 235, 236, 237, 295, 112, 296, 524,
- 297, 483, 298, 266, 267, 268, 274, 527, 271, 221,
- 222, 223, 224, 245, 246, 273, 247, 188, 189, 228,
- 248, 249, 301, 306, 307, 203, 315, 308, 207, 244,
- 312, 313, 475, 355, 364, 374, 380, 240, 221, 222,
- 223, 224, 245, 246, 240, 247, 243, 381, 228, 248,
- 249, 417, 419, 257, 444, 240, 231, 232, 233, 234,
- 235, 236, 237, 356, 356, 356, 446, 240, 447, 448,
- 456, 460, 461, 462, 75, 240, 161, 161, 161, 463,
- 354, 309, 486, 484, 487, 231, 232, 233, 234, 235,
- 236, 237, 496, 497, 504, 501, 506, 510, 507, 75,
- 75, 334, 335, 336, 337, 338, 339, 521, 340, 512,
- 520, 341, 342, 343, 513, 316, 317, 318, 319, 320,
+ 260, 368, 167, 169, 458, 511, 310, 287, 289, 173,
+ 311, 291, 293, 247, 288, 290, 228, 277, 292, 294,
+ 390, 155, 313, 278, 474, 391, 247, 112, 174, 517,
+ 518, 221, 222, 223, 224, 245, 246, 75, 247, 177,
+ 75, 228, 248, 249, 150, 153, 76, 408, 175, 88,
+ 179, 477, 183, 157, 181, 233, 234, 235, 236, 237,
+ 217, 168, 150, 221, 222, 223, 224, 420, 182, 440,
+ 247, 236, 237, 228, 248, 249, 359, 360, 231, 232,
+ 233, 234, 235, 236, 237, 465, 466, 467, 468, 247,
+ 218, 471, 219, 202, 438, 251, 252, 172, 211, 250,
+ 358, 358, 358, 262, 263, 503, 440, 264, 266, 180,
+ 231, 232, 233, 234, 235, 236, 237, 112, 240, 272,
+ 267, 256, 268, 202, 271, 240, 440, 273, 300, 301,
+ 308, 516, 234, 235, 236, 237, 240, 112, 295, 524,
+ 296, 306, 297, 312, 298, 307, 274, 527, 240, 313,
+ 482, 315, 355, 380, 364, 381, 240, 188, 189, 417,
+ 191, 192, 193, 194, 419, 203, 444, 456, 207, 483,
+ 446, 447, 475, 448, 309, 374, 484, 221, 222, 223,
+ 224, 245, 246, 242, 247, 486, 243, 228, 248, 249,
+ 242, 487, 496, 257, 497, 501, 504, 512, 510, 506,
+ 507, 242, 513, 356, 356, 356, 520, 521, 522, 178,
+ 526, 530, 531, 242, 75, 454, 161, 161, 161, 528,
+ 354, 242, 529, 170, 231, 232, 233, 234, 235, 236,
+ 237, 457, 244, 478, 405, 498, 164, 415, 276, 75,
+ 75, 221, 222, 223, 224, 245, 246, 0, 247, 314,
+ 0, 228, 248, 249, 0, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 522, 414, 526, 528, 529, 530, 531, 320,
- 321, 322, 324, 325, 454, 178, 170, 457, 344, 345,
- 346, 347, 348, 349, 350, 365, 366, 351, 242, 373,
- 478, 405, 498, 164, 415, 242, 314, 276, 0, 0,
- 0, 0, 0, 0, 0, 0, 242, 0, 0, 0,
- 0, 0, 0, 75, 0, 75, 0, 0, 242, 0,
- 453, 0, 0, 75, 0, 0, 242, 0, 0, 0,
+ 331, 332, 0, 414, 0, 0, 0, 0, 0, 320,
+ 321, 322, 324, 325, 0, 0, 0, 0, 231, 232,
+ 233, 234, 235, 236, 237, 365, 366, 0, 0, 373,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 383, 0, 385, 0, 387, 0, 389, 0,
+ 0, 0, 0, 75, 0, 75, 0, 0, 0, 0,
+ 453, 0, 0, 75, 0, 0, 0, 0, 0, 0,
409, 410, 0, 411, 0, 0, 0, 416, 75, 418,
- 75, 184, 185, 186, 187, 0, 0, 190, 191, 192,
- 193, 194, 0, 0, 204, 205, 0, 0, 421, 422,
+ 75, 184, 185, 186, 187, 0, 0, 190, 0, 0,
+ 0, 0, 0, 0, 204, 205, 0, 0, 421, 422,
423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
433, 434, 435, 436, 437, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 449, 450, 0, 485, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 460,
0, 0, 75, 0, 75, 459, 112, 0, 0, 0,
480, 0, 0, 221, 222, 223, 224, 245, 246, 0,
247, 0, 0, 228, 248, 249, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 75, 0, 0, 75,
- 509, 75, 500, 416, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 231, 232, 233, 234, 235, 236, 237, 75, 363, 0,
+ 0, 279, 0, 0, 0, 0, 75, 280, 0, 75,
+ 509, 75, 500, 416, 0, 221, 222, 223, 224, 245,
+ 246, 0, 247, 0, 0, 228, 248, 249, 0, 75,
+ 231, 232, 233, 234, 235, 236, 237, 75, 0, 0,
0, 525, 0, 0, 0, 75, 0, 0, 0, 0,
- 0, 0, 0, 75, 221, 222, 223, 224, 245, 246,
- 0, 247, 0, 0, 228, 248, 249, 0, 0, 382,
- 383, 384, 385, 386, 387, 388, 389, 505, 221, 222,
- 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
- 249, 0, 404, 404, 406, 407, 0, 0, 514, 0,
- 0, 231, 232, 233, 234, 235, 236, 237, 0, 0,
- 304, 0, 305, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 0, 0, 0, 0, 305, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 221, 222, 223,
- 224, 245, 246, 0, 247, 0, 404, 228, 248, 249,
- 221, 222, 223, 224, 245, 246, 0, 247, 0, 0,
- 228, 248, 249, 0, 0, 221, 222, 223, 224, 245,
- 246, 0, 247, 0, 464, 228, 248, 249, 0, 469,
- 470, 0, 472, 473, 231, 232, 233, 234, 235, 236,
- 237, 0, 452, 0, 0, 0, 0, 231, 232, 233,
- 234, 235, 236, 237, 0, 455, 0, 0, 0, 0,
- 0, 0, 231, 232, 233, 234, 235, 236, 237, 0,
- 481, 221, 222, 223, 224, 245, 246, 0, 247, 0,
+ 0, 0, 0, 75, 0, 0, 0, 0, 0, 0,
+ 0, 0, 231, 232, 233, 234, 235, 236, 237, 382,
+ 0, 384, 0, 386, 0, 388, 0, 505, 0, 0,
+ 0, 0, 0, 0, 0, 281, 0, 0, 0, 0,
+ 0, 282, 404, 404, 406, 407, 0, 0, 514, 221,
+ 222, 223, 224, 245, 246, 0, 247, 283, 0, 228,
+ 248, 249, 0, 284, 0, 0, 0, 0, 0, 0,
+ 0, 221, 222, 223, 224, 245, 246, 0, 247, 0,
0, 228, 248, 249, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
+ 235, 236, 237, 0, 0, 0, 404, 0, 0, 0,
+ 0, 461, 0, 0, 0, 0, 0, 0, 231, 232,
+ 233, 234, 235, 236, 237, 221, 222, 223, 224, 245,
+ 246, 462, 247, 0, 464, 228, 248, 249, 0, 469,
+ 470, 0, 472, 473, 0, 221, 222, 223, 224, 245,
+ 246, 0, 247, 0, 0, 228, 248, 249, 0, 0,
+ 0, 0, 0, 0, 0, 463, 0, 0, 0, 0,
+ 0, 0, 231, 232, 233, 234, 235, 236, 237, 221,
+ 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
+ 248, 249, 231, 232, 233, 234, 235, 236, 237, 0,
0, 0, 488, 489, 490, 491, 0, 492, 493, 494,
495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 0, 515, 0, 0, 469,
+ 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
+ 235, 236, 237, 0, 0, 0, 0, 0, 0, 469,
115, 116, 1, 208, 209, 89, 119, 120, 121, 122,
6, 90, 519, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
@@ -1297,21 +1297,46 @@ static const yytype_int16 yytable[] =
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 106, 64,
- 0, 0, 0, 0, 0, 67, 221, 222, 223, 224,
- 245, 246, 0, 247, 0, 0, 228, 248, 249, 0,
- 0, 0, 0, 0, 0, 221, 222, 223, 224, 245,
+ 269, 0, 0, 0, 0, 67, 0, 0, 221, 222,
+ 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
+ 249, 221, 222, 223, 224, 245, 246, 0, 247, 0,
+ 0, 228, 248, 249, 221, 222, 223, 224, 245, 246,
+ 0, 247, 0, 0, 228, 248, 249, 0, 0, 0,
+ 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
+ 236, 237, 0, 270, 0, 0, 0, 0, 231, 232,
+ 233, 234, 235, 236, 237, 0, 0, 304, 0, 305,
+ 0, 231, 232, 233, 234, 235, 236, 237, 0, 0,
+ 0, 0, 305, 334, 335, 336, 337, 338, 339, 0,
+ 340, 0, 0, 341, 342, 343, 221, 222, 223, 224,
+ 245, 246, 0, 247, 0, 0, 228, 248, 249, 221,
+ 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
+ 248, 249, 0, 0, 0, 0, 0, 0, 0, 0,
+ 344, 345, 346, 347, 348, 349, 350, 0, 0, 351,
+ 0, 0, 0, 231, 232, 233, 234, 235, 236, 237,
+ 0, 363, 0, 0, 0, 0, 231, 232, 233, 234,
+ 235, 236, 237, 0, 452, 221, 222, 223, 224, 245,
246, 0, 247, 0, 0, 228, 248, 249, 221, 222,
223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
- 249, 0, 0, 231, 232, 233, 234, 235, 236, 237,
- 0, 523, 302, 303, 0, 0, 0, 0, 0, 0,
+ 249, 221, 222, 223, 224, 245, 246, 0, 247, 0,
+ 0, 228, 248, 249, 0, 0, 0, 0, 0, 0,
0, 0, 231, 232, 233, 234, 235, 236, 237, 0,
- 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 334, 335, 336, 337, 338, 339, 0, 340,
- 0, 0, 341, 342, 343, 0, 0, 0, 0, 0,
+ 455, 0, 0, 0, 0, 231, 232, 233, 234, 235,
+ 236, 237, 0, 481, 0, 0, 0, 0, 231, 232,
+ 233, 234, 235, 236, 237, 0, 515, 221, 222, 223,
+ 224, 245, 246, 0, 247, 0, 0, 228, 248, 249,
+ 0, 0, 0, 0, 0, 0, 221, 222, 223, 224,
+ 245, 246, 0, 247, 0, 0, 228, 248, 249, 221,
+ 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
+ 248, 249, 0, 0, 231, 232, 233, 234, 235, 236,
+ 237, 0, 523, 302, 303, 0, 0, 0, 0, 0,
+ 0, 0, 0, 231, 232, 233, 234, 235, 236, 237,
+ 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
+ 235, 236, 237, 334, 335, 336, 337, 338, 339, 0,
+ 340, 0, 0, 341, 342, 343, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 344,
- 345, 346, 347, 348, 349, 350
+ 344, 345, 346, 347, 348, 349, 350
};
static const yytype_int16 yycheck[] =
@@ -1319,79 +1344,79 @@ static const yytype_int16 yycheck[] =
0, 21, 9, 67, 29, 241, 0, 14, 23, 355,
353, 238, 16, 31, 21, 479, 23, 363, 84, 26,
34, 69, 29, 99, 19, 36, 37, 103, 76, 44,
- 44, 97, 27, 28, 380, 499, 28, 69, 69, 64,
- 69, 69, 34, 49, 76, 76, 52, 76, 76, 393,
- 394, 395, 396, 34, 28, 399, 49, 64, 65, 97,
- 34, 42, 43, 44, 45, 46, 47, 67, 49, 31,
- 70, 52, 53, 54, 10, 11, 70, 304, 28, 97,
- 75, 85, 0, 19, 34, 91, 92, 93, 94, 95,
- 98, 27, 28, 42, 43, 44, 45, 333, 97, 442,
- 49, 94, 95, 52, 53, 54, 97, 98, 89, 90,
- 91, 92, 93, 94, 95, 28, 97, 23, 98, 49,
- 100, 34, 28, 130, 351, 33, 98, 63, 135, 154,
- 102, 253, 254, 255, 97, 481, 479, 254, 255, 75,
- 89, 90, 91, 92, 93, 94, 95, 154, 99, 174,
- 97, 158, 15, 160, 28, 97, 499, 97, 97, 97,
- 97, 507, 92, 93, 94, 95, 55, 174, 57, 515,
- 59, 34, 61, 97, 97, 97, 183, 523, 97, 42,
- 43, 44, 45, 46, 47, 97, 49, 123, 124, 52,
- 53, 54, 28, 103, 103, 131, 26, 102, 134, 33,
- 102, 98, 438, 97, 28, 269, 97, 150, 42, 43,
- 44, 45, 46, 47, 157, 49, 152, 26, 52, 53,
- 54, 100, 98, 159, 16, 168, 89, 90, 91, 92,
- 93, 94, 95, 253, 254, 255, 97, 180, 97, 97,
- 87, 28, 28, 28, 244, 188, 253, 254, 255, 28,
- 244, 103, 97, 86, 10, 89, 90, 91, 92, 93,
- 94, 95, 28, 71, 34, 97, 97, 71, 97, 269,
- 270, 42, 43, 44, 45, 46, 47, 97, 49, 85,
- 85, 52, 53, 54, 86, 221, 222, 223, 224, 225,
+ 44, 97, 27, 28, 380, 499, 98, 69, 69, 64,
+ 102, 69, 69, 49, 76, 76, 52, 28, 76, 76,
+ 23, 31, 98, 34, 100, 28, 49, 64, 65, 97,
+ 98, 42, 43, 44, 45, 46, 47, 67, 49, 0,
+ 70, 52, 53, 54, 10, 11, 70, 304, 97, 97,
+ 75, 85, 98, 19, 97, 91, 92, 93, 94, 95,
+ 99, 27, 28, 42, 43, 44, 45, 333, 97, 442,
+ 49, 94, 95, 52, 53, 54, 254, 255, 89, 90,
+ 91, 92, 93, 94, 95, 393, 394, 395, 396, 49,
+ 97, 399, 97, 130, 351, 97, 97, 63, 135, 154,
+ 253, 254, 255, 33, 97, 481, 479, 97, 97, 75,
+ 89, 90, 91, 92, 93, 94, 95, 154, 150, 174,
+ 97, 158, 97, 160, 97, 157, 499, 97, 28, 28,
+ 102, 507, 92, 93, 94, 95, 168, 174, 55, 515,
+ 57, 103, 59, 102, 61, 103, 183, 523, 180, 98,
+ 15, 26, 97, 97, 28, 26, 188, 123, 124, 100,
+ 126, 127, 128, 129, 98, 131, 16, 87, 134, 34,
+ 97, 97, 438, 97, 103, 269, 86, 42, 43, 44,
+ 45, 46, 47, 150, 49, 97, 152, 52, 53, 54,
+ 157, 10, 28, 159, 71, 97, 34, 85, 71, 97,
+ 97, 168, 86, 253, 254, 255, 85, 97, 97, 70,
+ 97, 97, 97, 180, 244, 371, 253, 254, 255, 86,
+ 244, 188, 86, 28, 89, 90, 91, 92, 93, 94,
+ 95, 378, 33, 442, 301, 471, 21, 310, 188, 269,
+ 270, 42, 43, 44, 45, 46, 47, -1, 49, 217,
+ -1, 52, 53, 54, -1, 221, 222, 223, 224, 225,
226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 97, 310, 97, 86, 86, 97, 97, 245,
- 246, 247, 248, 249, 371, 70, 28, 378, 89, 90,
- 91, 92, 93, 94, 95, 261, 262, 98, 150, 265,
- 442, 301, 471, 21, 310, 157, 217, 188, -1, -1,
- -1, -1, -1, -1, -1, -1, 168, -1, -1, -1,
- -1, -1, -1, 353, -1, 355, -1, -1, 180, -1,
- 367, -1, -1, 363, -1, -1, 188, -1, -1, -1,
+ 236, 237, -1, 310, -1, -1, -1, -1, -1, 245,
+ 246, 247, 248, 249, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, 261, 262, -1, -1, 265,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 278, -1, 280, -1, 282, -1, 284, -1,
+ -1, -1, -1, 353, -1, 355, -1, -1, -1, -1,
+ 367, -1, -1, 363, -1, -1, -1, -1, -1, -1,
306, 307, -1, 309, -1, -1, -1, 313, 378, 315,
- 380, 119, 120, 121, 122, -1, -1, 125, 126, 127,
- 128, 129, -1, -1, 132, 133, -1, -1, 334, 335,
+ 380, 119, 120, 121, 122, -1, -1, 125, -1, -1,
+ -1, -1, -1, -1, 132, 133, -1, -1, 334, 335,
336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
346, 347, 348, 349, 350, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 361, 362, -1, 453, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
-1, -1, 442, -1, 444, 381, 453, -1, -1, -1,
444, -1, -1, 42, 43, 44, 45, 46, 47, -1,
49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 476, -1, -1, 479,
- 487, 481, 476, 419, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 499,
- 89, 90, 91, 92, 93, 94, 95, 507, 97, -1,
+ -1, 28, -1, -1, -1, -1, 476, 34, -1, 479,
+ 487, 481, 476, 419, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, 499,
+ 89, 90, 91, 92, 93, 94, 95, 507, -1, -1,
-1, 518, -1, -1, -1, 515, -1, -1, -1, -1,
- -1, -1, -1, 523, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, 277,
- 278, 279, 280, 281, 282, 283, 284, 483, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, 300, 301, 302, 303, -1, -1, 504, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- 98, -1, 100, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, -1, -1, -1, 100, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, 364, 52, 53, 54,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, 392, 52, 53, 54, -1, 397,
- 398, -1, 400, 401, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, -1, -1, 523, -1, -1, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, 277,
+ -1, 279, -1, 281, -1, 283, -1, 483, -1, -1,
+ -1, -1, -1, -1, -1, 28, -1, -1, -1, -1,
+ -1, 34, 300, 301, 302, 303, -1, -1, 504, 42,
+ 43, 44, 45, 46, 47, -1, 49, 28, -1, 52,
+ 53, 54, -1, 34, -1, -1, -1, -1, -1, -1,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, 364, -1, -1, -1,
+ -1, 28, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, 42, 43, 44, 45, 46,
+ 47, 28, 49, -1, 392, 52, 53, 54, -1, 397,
+ 398, -1, 400, 401, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, 28, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, 89, 90, 91, 92, 93, 94, 95, -1,
-1, -1, 460, 461, 462, 463, -1, 465, 466, 467,
468, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, 497,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, -1, 497,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 510, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -1651,21 +1676,46 @@ static const yytype_int16 yycheck[] =
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- -1, -1, -1, -1, -1, 88, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
+ 34, -1, -1, -1, -1, 88, -1, -1, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, 98, -1, 100,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, 100, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, 97, 42, 43, 44, 45, 46,
47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, 79, 80, -1, -1, -1, -1, -1, -1,
+ 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
-1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ 97, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, 97, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, 97, 79, 80, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95
+ 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1691,7 +1741,7 @@ static const yytype_uint8 yystos[] =
75, 117, 142, 144, 150, 117, 117, 124, 160, 124,
126, 118, 160, 118, 117, 97, 122, 0, 107, 124,
160, 97, 97, 98, 159, 159, 159, 159, 160, 160,
- 159, 159, 159, 159, 159, 63, 64, 65, 66, 67,
+ 159, 160, 160, 160, 160, 63, 64, 65, 66, 67,
70, 74, 117, 160, 159, 159, 100, 160, 8, 9,
103, 117, 156, 157, 160, 163, 164, 99, 97, 97,
28, 42, 43, 44, 45, 46, 47, 49, 52, 53,
@@ -1710,7 +1760,7 @@ static const yytype_uint8 yystos[] =
95, 98, 125, 97, 120, 97, 142, 143, 145, 143,
143, 23, 44, 97, 28, 160, 160, 84, 97, 110,
111, 112, 113, 160, 122, 97, 120, 135, 136, 137,
- 97, 26, 159, 159, 159, 159, 159, 159, 159, 159,
+ 97, 26, 159, 160, 159, 160, 159, 160, 159, 160,
23, 28, 154, 56, 58, 60, 62, 71, 72, 73,
77, 78, 148, 149, 159, 148, 159, 159, 164, 160,
160, 160, 8, 9, 117, 157, 160, 100, 160, 98,
@@ -2067,37 +2117,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2071 "engines/director/lingo/lingo-gr.cpp"
+#line 2121 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2077 "engines/director/lingo/lingo-gr.cpp"
+#line 2127 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2083 "engines/director/lingo/lingo-gr.cpp"
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2089 "engines/director/lingo/lingo-gr.cpp"
+#line 2139 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2095 "engines/director/lingo/lingo-gr.cpp"
+#line 2145 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2101 "engines/director/lingo/lingo-gr.cpp"
+#line 2151 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2365,7 +2415,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2419 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2376,7 +2426,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2386,37 +2436,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2390 "engines/director/lingo/lingo-gr.cpp"
+#line 2440 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2396 "engines/director/lingo/lingo-gr.cpp"
+#line 2446 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2402 "engines/director/lingo/lingo-gr.cpp"
+#line 2452 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2408 "engines/director/lingo/lingo-gr.cpp"
+#line 2458 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2464 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2420 "engines/director/lingo/lingo-gr.cpp"
+#line 2470 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2427,7 +2477,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2431 "engines/director/lingo/lingo-gr.cpp"
+#line 2481 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2437,13 +2487,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2441 "engines/director/lingo/lingo-gr.cpp"
+#line 2491 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2447 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2452,446 +2502,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2456 "engines/director/lingo/lingo-gr.cpp"
+#line 2506 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2463 "engines/director/lingo/lingo-gr.cpp"
+#line 2513 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2469 "engines/director/lingo/lingo-gr.cpp"
+#line 2519 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2475 "engines/director/lingo/lingo-gr.cpp"
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
+#line 2531 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2487 "engines/director/lingo/lingo-gr.cpp"
+#line 2537 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2493 "engines/director/lingo/lingo-gr.cpp"
+#line 2543 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2499 "engines/director/lingo/lingo-gr.cpp"
+#line 2549 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2505 "engines/director/lingo/lingo-gr.cpp"
+#line 2555 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2511 "engines/director/lingo/lingo-gr.cpp"
+#line 2561 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+#line 2567 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2523 "engines/director/lingo/lingo-gr.cpp"
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2529 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2585 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2547 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2553 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2571 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2583 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2589 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2601 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2607 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2613 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2619 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2625 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2643 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2655 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2661 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2691 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2697 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2727 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2733 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2757 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2781 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2805 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2817 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2829 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2835 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2841 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2853 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2859 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2865 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2871 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2877 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2883 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2889 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2895 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: ID */
@@ -2900,7 +2950,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2904 "engines/director/lingo/lingo-gr.cpp"
+#line 2954 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2908,55 +2958,55 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+#line 2962 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmt: tENDIF '\n' */
#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2968 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: CMDID cmdargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2924 "engines/director/lingo/lingo-gr.cpp"
+#line 2974 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPUT cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2930 "engines/director/lingo/lingo-gr.cpp"
+#line 2980 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tGO cmdargs '\n' */
#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2936 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tGO frameargs '\n' */
#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2942 "engines/director/lingo/lingo-gr.cpp"
+#line 2992 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tPLAY cmdargs '\n' */
#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 2998 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tPLAY frameargs '\n' */
#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+#line 3004 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tOPEN cmdargs '\n' */
#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 2960 "engines/director/lingo/lingo-gr.cpp"
+#line 3010 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tOPEN expr tWITH expr '\n' */
@@ -2966,31 +3016,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 2970 "engines/director/lingo/lingo-gr.cpp"
+#line 3020 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tNEXT tREPEAT '\n' */
#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 2976 "engines/director/lingo/lingo-gr.cpp"
+#line 3026 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* proc: tEXIT tREPEAT '\n' */
#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 2982 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tEXIT '\n' */
#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 2988 "engines/director/lingo/lingo-gr.cpp"
+#line 3038 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* proc: tASSERTERROR stmtoneliner */
#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 2994 "engines/director/lingo/lingo-gr.cpp"
+#line 3044 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: %empty */
@@ -2998,7 +3048,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3002 "engines/director/lingo/lingo-gr.cpp"
+#line 3052 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr trailingcomma */
@@ -3008,7 +3058,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3012 "engines/director/lingo/lingo-gr.cpp"
+#line 3062 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
@@ -3017,7 +3067,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+#line 3071 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
@@ -3028,7 +3078,7 @@ yyreduce:
args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
@@ -3038,7 +3088,7 @@ yyreduce:
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3042 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* cmdargs: '(' ')' */
@@ -3046,7 +3096,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3050 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -3055,7 +3105,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3059 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* frameargs: tFRAME expr */
@@ -3065,7 +3115,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* frameargs: tMOVIE expr */
@@ -3076,7 +3126,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3080 "engines/director/lingo/lingo-gr.cpp"
+#line 3130 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -3087,7 +3137,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3091 "engines/director/lingo/lingo-gr.cpp"
+#line 3141 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* frameargs: expr tOF tMOVIE expr */
@@ -3098,7 +3148,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3102 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3109,49 +3159,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3113 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3119 "engines/director/lingo/lingo-gr.cpp"
+#line 3169 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3125 "engines/director/lingo/lingo-gr.cpp"
+#line 3175 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3131 "engines/director/lingo/lingo-gr.cpp"
+#line 3181 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* asgn: tSET varorthe to expr '\n' */
#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3137 "engines/director/lingo/lingo-gr.cpp"
+#line 3187 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* definevars: tGLOBAL idlist '\n' */
#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3143 "engines/director/lingo/lingo-gr.cpp"
+#line 3193 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* definevars: tPROPERTY idlist '\n' */
#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3149 "engines/director/lingo/lingo-gr.cpp"
+#line 3199 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* definevars: tINSTANCE idlist '\n' */
#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3155 "engines/director/lingo/lingo-gr.cpp"
+#line 3205 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* ifstmt: tIF expr tTHEN stmt */
@@ -3160,14 +3210,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
#line 506 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3171 "engines/director/lingo/lingo-gr.cpp"
+#line 3221 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3178,7 +3228,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3182 "engines/director/lingo/lingo-gr.cpp"
+#line 3232 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
@@ -3187,7 +3237,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3191 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
@@ -3196,42 +3246,42 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3250 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
#line 524 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3207 "engines/director/lingo/lingo-gr.cpp"
+#line 3257 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 528 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
+#line 3264 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 530 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3221 "engines/director/lingo/lingo-gr.cpp"
+#line 3271 "engines/director/lingo/lingo-gr.cpp"
break;
case 154: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 532 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3228 "engines/director/lingo/lingo-gr.cpp"
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
break;
case 155: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
#line 534 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3235 "engines/director/lingo/lingo-gr.cpp"
+#line 3285 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* tell: tTELL expr tTO stmtoneliner */
@@ -3240,26 +3290,26 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3244 "engines/director/lingo/lingo-gr.cpp"
+#line 3294 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 542 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3251 "engines/director/lingo/lingo-gr.cpp"
+#line 3301 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* when: tWHEN ID tTHEN expr */
#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3257 "engines/director/lingo/lingo-gr.cpp"
+#line 3307 "engines/director/lingo/lingo-gr.cpp"
break;
case 159: /* stmtlist: %empty */
#line 548 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3263 "engines/director/lingo/lingo-gr.cpp"
+#line 3313 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* nonemptystmtlist: stmtlistline */
@@ -3270,7 +3320,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3274 "engines/director/lingo/lingo-gr.cpp"
+#line 3324 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
@@ -3280,19 +3330,19 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3284 "engines/director/lingo/lingo-gr.cpp"
+#line 3334 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* stmtlistline: '\n' */
#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3290 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* stmtlist_insideif: %empty */
#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3296 "engines/director/lingo/lingo-gr.cpp"
+#line 3346 "engines/director/lingo/lingo-gr.cpp"
break;
case 167: /* nonemptystmtlist_insideif: stmtlistline_insideif */
@@ -3303,7 +3353,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3307 "engines/director/lingo/lingo-gr.cpp"
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
@@ -3313,61 +3363,61 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3317 "engines/director/lingo/lingo-gr.cpp"
+#line 3367 "engines/director/lingo/lingo-gr.cpp"
break;
case 169: /* stmtlistline_insideif: '\n' */
#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3323 "engines/director/lingo/lingo-gr.cpp"
+#line 3373 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* simpleexpr_nounarymath: tINT */
#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3379 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* simpleexpr_nounarymath: tFLOAT */
#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3335 "engines/director/lingo/lingo-gr.cpp"
+#line 3385 "engines/director/lingo/lingo-gr.cpp"
break;
case 173: /* simpleexpr_nounarymath: tSYMBOL */
#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3341 "engines/director/lingo/lingo-gr.cpp"
+#line 3391 "engines/director/lingo/lingo-gr.cpp"
break;
case 174: /* simpleexpr_nounarymath: tSTRING */
#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3347 "engines/director/lingo/lingo-gr.cpp"
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* simpleexpr_nounarymath: tNOT simpleexpr */
#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
break;
case 176: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3359 "engines/director/lingo/lingo-gr.cpp"
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* simpleexpr_nounarymath: '(' expr ')' */
#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3415 "engines/director/lingo/lingo-gr.cpp"
break;
case 183: /* var: ID */
#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3421 "engines/director/lingo/lingo-gr.cpp"
break;
case 188: /* chunk: tFIELD simpleexpr */
@@ -3376,7 +3426,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3380 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
break;
case 189: /* chunk: tCAST simpleexpr */
@@ -3385,63 +3435,63 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3389 "engines/director/lingo/lingo-gr.cpp"
+#line 3439 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* chunk: tCHAR simpleexpr tOF simpleexpr */
+ case 190: /* chunk: tCHAR expr tOF simpleexpr */
#line 627 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3396 "engines/director/lingo/lingo-gr.cpp"
+#line 3446 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* chunk: tCHAR simpleexpr tTO simpleexpr tOF simpleexpr */
+ case 191: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
#line 629 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3453 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* chunk: tWORD simpleexpr tOF simpleexpr */
+ case 192: /* chunk: tWORD expr tOF simpleexpr */
#line 631 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3410 "engines/director/lingo/lingo-gr.cpp"
+#line 3460 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* chunk: tWORD simpleexpr tTO simpleexpr tOF simpleexpr */
+ case 193: /* chunk: tWORD expr tTO expr tOF simpleexpr */
#line 633 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3417 "engines/director/lingo/lingo-gr.cpp"
+#line 3467 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* chunk: tITEM simpleexpr tOF simpleexpr */
+ case 194: /* chunk: tITEM expr tOF simpleexpr */
#line 635 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+#line 3474 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* chunk: tITEM simpleexpr tTO simpleexpr tOF simpleexpr */
+ case 195: /* chunk: tITEM expr tTO expr tOF simpleexpr */
#line 637 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3481 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* chunk: tLINE simpleexpr tOF simpleexpr */
+ case 196: /* chunk: tLINE expr tOF simpleexpr */
#line 639 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3438 "engines/director/lingo/lingo-gr.cpp"
+#line 3488 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* chunk: tLINE simpleexpr tTO simpleexpr tOF simpleexpr */
+ case 197: /* chunk: tLINE expr tTO expr tOF simpleexpr */
#line 641 "engines/director/lingo/lingo-gr.y"
- {
+ {
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3445 "engines/director/lingo/lingo-gr.cpp"
+#line 3495 "engines/director/lingo/lingo-gr.cpp"
break;
case 198: /* object: tSCRIPT simpleexpr */
@@ -3450,7 +3500,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3454 "engines/director/lingo/lingo-gr.cpp"
+#line 3504 "engines/director/lingo/lingo-gr.cpp"
break;
case 199: /* object: tWINDOW simpleexpr */
@@ -3459,187 +3509,187 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3463 "engines/director/lingo/lingo-gr.cpp"
+#line 3513 "engines/director/lingo/lingo-gr.cpp"
break;
case 203: /* the: tTHE tLAST chunktype inof simpleexpr */
#line 658 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3469 "engines/director/lingo/lingo-gr.cpp"
+#line 3519 "engines/director/lingo/lingo-gr.cpp"
break;
case 206: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3475 "engines/director/lingo/lingo-gr.cpp"
+#line 3525 "engines/director/lingo/lingo-gr.cpp"
break;
case 207: /* theobj: tSOUND simpleexpr */
#line 664 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3481 "engines/director/lingo/lingo-gr.cpp"
+#line 3531 "engines/director/lingo/lingo-gr.cpp"
break;
case 208: /* theobj: tSPRITE simpleexpr */
#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3487 "engines/director/lingo/lingo-gr.cpp"
+#line 3537 "engines/director/lingo/lingo-gr.cpp"
break;
case 209: /* menu: tMENU simpleexpr */
#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3493 "engines/director/lingo/lingo-gr.cpp"
+#line 3543 "engines/director/lingo/lingo-gr.cpp"
break;
case 210: /* writablethe: tTHE ID */
#line 670 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3499 "engines/director/lingo/lingo-gr.cpp"
+#line 3549 "engines/director/lingo/lingo-gr.cpp"
break;
case 211: /* writablethe: tTHE ID tOF theobj */
#line 671 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3505 "engines/director/lingo/lingo-gr.cpp"
+#line 3555 "engines/director/lingo/lingo-gr.cpp"
break;
case 212: /* writablethe: tTHE tNUMBER tOF theobj */
#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3511 "engines/director/lingo/lingo-gr.cpp"
+#line 3561 "engines/director/lingo/lingo-gr.cpp"
break;
case 213: /* thedatetime: tTHE tABBREVIATED tDATE */
#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3517 "engines/director/lingo/lingo-gr.cpp"
+#line 3567 "engines/director/lingo/lingo-gr.cpp"
break;
case 214: /* thedatetime: tTHE tABBREVIATED tTIME */
#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3523 "engines/director/lingo/lingo-gr.cpp"
+#line 3573 "engines/director/lingo/lingo-gr.cpp"
break;
case 215: /* thedatetime: tTHE tABBREV tDATE */
#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3529 "engines/director/lingo/lingo-gr.cpp"
+#line 3579 "engines/director/lingo/lingo-gr.cpp"
break;
case 216: /* thedatetime: tTHE tABBREV tTIME */
#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3535 "engines/director/lingo/lingo-gr.cpp"
+#line 3585 "engines/director/lingo/lingo-gr.cpp"
break;
case 217: /* thedatetime: tTHE tABBR tDATE */
#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3541 "engines/director/lingo/lingo-gr.cpp"
+#line 3591 "engines/director/lingo/lingo-gr.cpp"
break;
case 218: /* thedatetime: tTHE tABBR tTIME */
#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3547 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
break;
case 219: /* thedatetime: tTHE tLONG tDATE */
#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3553 "engines/director/lingo/lingo-gr.cpp"
+#line 3603 "engines/director/lingo/lingo-gr.cpp"
break;
case 220: /* thedatetime: tTHE tLONG tTIME */
#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3559 "engines/director/lingo/lingo-gr.cpp"
+#line 3609 "engines/director/lingo/lingo-gr.cpp"
break;
case 221: /* thedatetime: tTHE tSHORT tDATE */
#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3565 "engines/director/lingo/lingo-gr.cpp"
+#line 3615 "engines/director/lingo/lingo-gr.cpp"
break;
case 222: /* thedatetime: tTHE tSHORT tTIME */
#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3571 "engines/director/lingo/lingo-gr.cpp"
+#line 3621 "engines/director/lingo/lingo-gr.cpp"
break;
case 223: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3577 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
break;
case 224: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3583 "engines/director/lingo/lingo-gr.cpp"
+#line 3633 "engines/director/lingo/lingo-gr.cpp"
break;
case 225: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3589 "engines/director/lingo/lingo-gr.cpp"
+#line 3639 "engines/director/lingo/lingo-gr.cpp"
break;
case 226: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3595 "engines/director/lingo/lingo-gr.cpp"
+#line 3645 "engines/director/lingo/lingo-gr.cpp"
break;
case 227: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3601 "engines/director/lingo/lingo-gr.cpp"
+#line 3651 "engines/director/lingo/lingo-gr.cpp"
break;
case 228: /* chunktype: tCHAR */
#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3607 "engines/director/lingo/lingo-gr.cpp"
+#line 3657 "engines/director/lingo/lingo-gr.cpp"
break;
case 229: /* chunktype: tWORD */
#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3613 "engines/director/lingo/lingo-gr.cpp"
+#line 3663 "engines/director/lingo/lingo-gr.cpp"
break;
case 230: /* chunktype: tITEM */
#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3619 "engines/director/lingo/lingo-gr.cpp"
+#line 3669 "engines/director/lingo/lingo-gr.cpp"
break;
case 231: /* chunktype: tLINE */
#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3625 "engines/director/lingo/lingo-gr.cpp"
+#line 3675 "engines/director/lingo/lingo-gr.cpp"
break;
case 234: /* list: '[' exprlist ']' */
#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3631 "engines/director/lingo/lingo-gr.cpp"
+#line 3681 "engines/director/lingo/lingo-gr.cpp"
break;
case 235: /* list: '[' ':' ']' */
#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3637 "engines/director/lingo/lingo-gr.cpp"
+#line 3687 "engines/director/lingo/lingo-gr.cpp"
break;
case 236: /* list: '[' proplist ']' */
#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3643 "engines/director/lingo/lingo-gr.cpp"
+#line 3693 "engines/director/lingo/lingo-gr.cpp"
break;
case 237: /* proplist: proppair */
@@ -3648,7 +3698,7 @@ yyreduce:
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3652 "engines/director/lingo/lingo-gr.cpp"
+#line 3702 "engines/director/lingo/lingo-gr.cpp"
break;
case 238: /* proplist: proplist ',' proppair */
@@ -3656,259 +3706,259 @@ yyreduce:
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3660 "engines/director/lingo/lingo-gr.cpp"
+#line 3710 "engines/director/lingo/lingo-gr.cpp"
break;
case 239: /* proppair: tSYMBOL ':' expr */
#line 717 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3666 "engines/director/lingo/lingo-gr.cpp"
+#line 3716 "engines/director/lingo/lingo-gr.cpp"
break;
case 240: /* proppair: ID ':' expr */
#line 718 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3672 "engines/director/lingo/lingo-gr.cpp"
+#line 3722 "engines/director/lingo/lingo-gr.cpp"
break;
case 241: /* proppair: tSTRING ':' expr */
#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3678 "engines/director/lingo/lingo-gr.cpp"
+#line 3728 "engines/director/lingo/lingo-gr.cpp"
break;
case 242: /* unarymath: '+' simpleexpr */
#line 722 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3684 "engines/director/lingo/lingo-gr.cpp"
+#line 3734 "engines/director/lingo/lingo-gr.cpp"
break;
case 243: /* unarymath: '-' simpleexpr */
#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3690 "engines/director/lingo/lingo-gr.cpp"
+#line 3740 "engines/director/lingo/lingo-gr.cpp"
break;
case 248: /* expr: expr '+' expr */
#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3696 "engines/director/lingo/lingo-gr.cpp"
+#line 3746 "engines/director/lingo/lingo-gr.cpp"
break;
case 249: /* expr: expr '-' expr */
#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3702 "engines/director/lingo/lingo-gr.cpp"
+#line 3752 "engines/director/lingo/lingo-gr.cpp"
break;
case 250: /* expr: expr '*' expr */
#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3708 "engines/director/lingo/lingo-gr.cpp"
+#line 3758 "engines/director/lingo/lingo-gr.cpp"
break;
case 251: /* expr: expr '/' expr */
#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3714 "engines/director/lingo/lingo-gr.cpp"
+#line 3764 "engines/director/lingo/lingo-gr.cpp"
break;
case 252: /* expr: expr tMOD expr */
#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3720 "engines/director/lingo/lingo-gr.cpp"
+#line 3770 "engines/director/lingo/lingo-gr.cpp"
break;
case 253: /* expr: expr '>' expr */
#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3726 "engines/director/lingo/lingo-gr.cpp"
+#line 3776 "engines/director/lingo/lingo-gr.cpp"
break;
case 254: /* expr: expr '<' expr */
#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3732 "engines/director/lingo/lingo-gr.cpp"
+#line 3782 "engines/director/lingo/lingo-gr.cpp"
break;
case 255: /* expr: expr tEQ expr */
#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3738 "engines/director/lingo/lingo-gr.cpp"
+#line 3788 "engines/director/lingo/lingo-gr.cpp"
break;
case 256: /* expr: expr tNEQ expr */
#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3744 "engines/director/lingo/lingo-gr.cpp"
+#line 3794 "engines/director/lingo/lingo-gr.cpp"
break;
case 257: /* expr: expr tGE expr */
#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3750 "engines/director/lingo/lingo-gr.cpp"
+#line 3800 "engines/director/lingo/lingo-gr.cpp"
break;
case 258: /* expr: expr tLE expr */
#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3756 "engines/director/lingo/lingo-gr.cpp"
+#line 3806 "engines/director/lingo/lingo-gr.cpp"
break;
case 259: /* expr: expr tAND expr */
#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3762 "engines/director/lingo/lingo-gr.cpp"
+#line 3812 "engines/director/lingo/lingo-gr.cpp"
break;
case 260: /* expr: expr tOR expr */
#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3768 "engines/director/lingo/lingo-gr.cpp"
+#line 3818 "engines/director/lingo/lingo-gr.cpp"
break;
case 261: /* expr: expr '&' expr */
#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3774 "engines/director/lingo/lingo-gr.cpp"
+#line 3824 "engines/director/lingo/lingo-gr.cpp"
break;
case 262: /* expr: expr tCONCAT expr */
#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3780 "engines/director/lingo/lingo-gr.cpp"
+#line 3830 "engines/director/lingo/lingo-gr.cpp"
break;
case 263: /* expr: expr tCONTAINS expr */
#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3786 "engines/director/lingo/lingo-gr.cpp"
+#line 3836 "engines/director/lingo/lingo-gr.cpp"
break;
case 264: /* expr: expr tSTARTS expr */
#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3792 "engines/director/lingo/lingo-gr.cpp"
+#line 3842 "engines/director/lingo/lingo-gr.cpp"
break;
case 267: /* expr_nounarymath: expr_nounarymath '+' expr */
#line 758 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3798 "engines/director/lingo/lingo-gr.cpp"
+#line 3848 "engines/director/lingo/lingo-gr.cpp"
break;
case 268: /* expr_nounarymath: expr_nounarymath '-' expr */
#line 759 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3804 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
break;
case 269: /* expr_nounarymath: expr_nounarymath '*' expr */
#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3810 "engines/director/lingo/lingo-gr.cpp"
+#line 3860 "engines/director/lingo/lingo-gr.cpp"
break;
case 270: /* expr_nounarymath: expr_nounarymath '/' expr */
#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3816 "engines/director/lingo/lingo-gr.cpp"
+#line 3866 "engines/director/lingo/lingo-gr.cpp"
break;
case 271: /* expr_nounarymath: expr_nounarymath tMOD expr */
#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3822 "engines/director/lingo/lingo-gr.cpp"
+#line 3872 "engines/director/lingo/lingo-gr.cpp"
break;
case 272: /* expr_nounarymath: expr_nounarymath '>' expr */
#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3828 "engines/director/lingo/lingo-gr.cpp"
+#line 3878 "engines/director/lingo/lingo-gr.cpp"
break;
case 273: /* expr_nounarymath: expr_nounarymath '<' expr */
#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3834 "engines/director/lingo/lingo-gr.cpp"
+#line 3884 "engines/director/lingo/lingo-gr.cpp"
break;
case 274: /* expr_nounarymath: expr_nounarymath tEQ expr */
#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3840 "engines/director/lingo/lingo-gr.cpp"
+#line 3890 "engines/director/lingo/lingo-gr.cpp"
break;
case 275: /* expr_nounarymath: expr_nounarymath tNEQ expr */
#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3846 "engines/director/lingo/lingo-gr.cpp"
+#line 3896 "engines/director/lingo/lingo-gr.cpp"
break;
case 276: /* expr_nounarymath: expr_nounarymath tGE expr */
#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3852 "engines/director/lingo/lingo-gr.cpp"
+#line 3902 "engines/director/lingo/lingo-gr.cpp"
break;
case 277: /* expr_nounarymath: expr_nounarymath tLE expr */
#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3858 "engines/director/lingo/lingo-gr.cpp"
+#line 3908 "engines/director/lingo/lingo-gr.cpp"
break;
case 278: /* expr_nounarymath: expr_nounarymath tAND expr */
#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3864 "engines/director/lingo/lingo-gr.cpp"
+#line 3914 "engines/director/lingo/lingo-gr.cpp"
break;
case 279: /* expr_nounarymath: expr_nounarymath tOR expr */
#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3870 "engines/director/lingo/lingo-gr.cpp"
+#line 3920 "engines/director/lingo/lingo-gr.cpp"
break;
case 280: /* expr_nounarymath: expr_nounarymath '&' expr */
#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3876 "engines/director/lingo/lingo-gr.cpp"
+#line 3926 "engines/director/lingo/lingo-gr.cpp"
break;
case 281: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
#line 772 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3882 "engines/director/lingo/lingo-gr.cpp"
+#line 3932 "engines/director/lingo/lingo-gr.cpp"
break;
case 282: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
#line 773 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3888 "engines/director/lingo/lingo-gr.cpp"
+#line 3938 "engines/director/lingo/lingo-gr.cpp"
break;
case 283: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3894 "engines/director/lingo/lingo-gr.cpp"
+#line 3944 "engines/director/lingo/lingo-gr.cpp"
break;
case 284: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
#line 777 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3900 "engines/director/lingo/lingo-gr.cpp"
+#line 3950 "engines/director/lingo/lingo-gr.cpp"
break;
case 285: /* sprite: tSPRITE expr tWITHIN simpleexpr */
#line 778 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3906 "engines/director/lingo/lingo-gr.cpp"
+#line 3956 "engines/director/lingo/lingo-gr.cpp"
break;
case 286: /* exprlist: %empty */
#line 781 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3912 "engines/director/lingo/lingo-gr.cpp"
+#line 3962 "engines/director/lingo/lingo-gr.cpp"
break;
case 288: /* nonemptyexprlist: expr */
@@ -3917,7 +3967,7 @@ yyreduce:
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3921 "engines/director/lingo/lingo-gr.cpp"
+#line 3971 "engines/director/lingo/lingo-gr.cpp"
break;
case 289: /* nonemptyexprlist: nonemptyexprlist ',' expr */
@@ -3925,11 +3975,11 @@ yyreduce:
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3929 "engines/director/lingo/lingo-gr.cpp"
+#line 3979 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3933 "engines/director/lingo/lingo-gr.cpp"
+#line 3983 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 2aa9156ed8..f7fa71b5e9 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -624,21 +624,21 @@ chunk: tFIELD simpleexpr[arg] {
NodeList *args = new NodeList;
args->push_back($arg);
$$ = new FuncNode(new Common::String("cast"), args); }
- | tCHAR simpleexpr[idx] tOF simpleexpr[src] {
+ | tCHAR expr[idx] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkChar, $idx, nullptr, $src); }
- | tCHAR simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ | tCHAR expr[start] tTO expr[end] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkChar, $start, $end, $src); }
- | tWORD simpleexpr[idx] tOF simpleexpr[src] {
+ | tWORD expr[idx] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkWord, $idx, nullptr, $src); }
- | tWORD simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ | tWORD expr[start] tTO expr[end] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkWord, $start, $end, $src); }
- | tITEM simpleexpr[idx] tOF simpleexpr[src] {
+ | tITEM expr[idx] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkItem, $idx, nullptr, $src); }
- | tITEM simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ | tITEM expr[start] tTO expr[end] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkItem, $start, $end, $src); }
- | tLINE simpleexpr[idx] tOF simpleexpr[src] {
+ | tLINE expr[idx] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkLine, $idx, nullptr, $src); }
- | tLINE simpleexpr[start] tTO simpleexpr[end] tOF simpleexpr[src] {
+ | tLINE expr[start] tTO expr[end] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkLine, $start, $end, $src); }
;
Commit: 16ad72c042dfd0311e6006262f29a02d8e6200b4
https://github.com/scummvm/scummvm/commit/16ad72c042dfd0311e6006262f29a02d8e6200b4
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix calling window with multiple args
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 3f6327ff6f..aeeff82866 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -300,24 +300,25 @@ enum yysymbol_kind_t
YYSYMBOL_varorthe = 144, /* varorthe */
YYSYMBOL_chunk = 145, /* chunk */
YYSYMBOL_object = 146, /* object */
- YYSYMBOL_the = 147, /* the */
- YYSYMBOL_theobj = 148, /* theobj */
- YYSYMBOL_menu = 149, /* menu */
- YYSYMBOL_writablethe = 150, /* writablethe */
- YYSYMBOL_thedatetime = 151, /* thedatetime */
- YYSYMBOL_thenumberof = 152, /* thenumberof */
- YYSYMBOL_chunktype = 153, /* chunktype */
- YYSYMBOL_inof = 154, /* inof */
- YYSYMBOL_list = 155, /* list */
- YYSYMBOL_proplist = 156, /* proplist */
- YYSYMBOL_proppair = 157, /* proppair */
- YYSYMBOL_unarymath = 158, /* unarymath */
- YYSYMBOL_simpleexpr = 159, /* simpleexpr */
- YYSYMBOL_expr = 160, /* expr */
- YYSYMBOL_expr_nounarymath = 161, /* expr_nounarymath */
- YYSYMBOL_sprite = 162, /* sprite */
- YYSYMBOL_exprlist = 163, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 164 /* nonemptyexprlist */
+ YYSYMBOL_refargs = 147, /* refargs */
+ YYSYMBOL_the = 148, /* the */
+ YYSYMBOL_theobj = 149, /* theobj */
+ YYSYMBOL_menu = 150, /* menu */
+ YYSYMBOL_writablethe = 151, /* writablethe */
+ YYSYMBOL_thedatetime = 152, /* thedatetime */
+ YYSYMBOL_thenumberof = 153, /* thenumberof */
+ YYSYMBOL_chunktype = 154, /* chunktype */
+ YYSYMBOL_inof = 155, /* inof */
+ YYSYMBOL_list = 156, /* list */
+ YYSYMBOL_proplist = 157, /* proplist */
+ YYSYMBOL_proppair = 158, /* proppair */
+ YYSYMBOL_unarymath = 159, /* unarymath */
+ YYSYMBOL_simpleexpr = 160, /* simpleexpr */
+ YYSYMBOL_expr = 161, /* expr */
+ YYSYMBOL_expr_nounarymath = 162, /* expr_nounarymath */
+ YYSYMBOL_sprite = 163, /* sprite */
+ YYSYMBOL_exprlist = 164, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 165 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -639,16 +640,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3746
+#define YYLAST 3990
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 61
+#define YYNNTS 62
/* YYNRULES -- Number of rules. */
-#define YYNRULES 289
+#define YYNRULES 292
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 532
+#define YYNSTATES 539
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -724,17 +725,18 @@ static const yytype_int16 yyrline[] =
520, 524, 528, 530, 532, 534, 538, 542, 546, 548,
549, 553, 559, 566, 567, 570, 571, 575, 581, 588,
589, 595, 596, 597, 598, 599, 600, 601, 602, 603,
- 604, 605, 606, 609, 611, 612, 615, 616, 619, 623,
- 627, 629, 631, 633, 635, 637, 639, 641, 645, 649,
- 655, 656, 657, 658, 661, 662, 663, 664, 665, 668,
- 670, 671, 672, 675, 676, 677, 678, 679, 680, 681,
- 682, 683, 684, 688, 689, 690, 691, 692, 695, 696,
- 697, 698, 701, 701, 703, 704, 705, 708, 712, 717,
- 718, 719, 722, 723, 726, 727, 731, 732, 733, 734,
- 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
- 745, 746, 747, 748, 749, 756, 757, 758, 759, 760,
- 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
- 771, 772, 773, 774, 777, 778, 781, 782, 785, 789
+ 604, 605, 606, 609, 611, 612, 615, 616, 619, 620,
+ 621, 623, 625, 627, 629, 631, 633, 635, 639, 640,
+ 643, 648, 651, 657, 658, 659, 660, 663, 664, 665,
+ 666, 667, 670, 672, 673, 674, 677, 678, 679, 680,
+ 681, 682, 683, 684, 685, 686, 690, 691, 692, 693,
+ 694, 697, 698, 699, 700, 703, 703, 705, 706, 707,
+ 710, 714, 719, 720, 721, 724, 725, 728, 729, 733,
+ 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
+ 744, 745, 746, 747, 748, 749, 750, 751, 758, 759,
+ 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
+ 770, 771, 772, 773, 774, 775, 776, 779, 780, 783,
+ 784, 787, 791
};
#endif
@@ -774,10 +776,10 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"stmtlist", "nonemptystmtlist", "stmtlistline", "stmtlist_insideif",
"nonemptystmtlist_insideif", "stmtlistline_insideif",
"simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
- "object", "the", "theobj", "menu", "writablethe", "thedatetime",
- "thenumberof", "chunktype", "inof", "list", "proplist", "proppair",
- "unarymath", "simpleexpr", "expr", "expr_nounarymath", "sprite",
- "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "object", "refargs", "the", "theobj", "menu", "writablethe",
+ "thedatetime", "thenumberof", "chunktype", "inof", "list", "proplist",
+ "proppair", "unarymath", "simpleexpr", "expr", "expr_nounarymath",
+ "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -802,7 +804,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-465)
+#define YYPACT_NINF (-459)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -816,60 +818,60 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2303, -465, -465, -465, -465, -465, -465, -18, -465, 2873,
- 1436, 1533, -465, -465, 2873, -465, 20, -465, -465, 1630,
- -11, 2952, -465, 2873, -465, -465, 2873, 1630, 1436, 2873,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, 1533, 2873, 2873, -19, 3267, -465, 69,
- 2303, -465, -465, -465, -465, 1630, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -13, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- -465, -465, -465, 1, -16, -465, -465, -465, -465, 1727,
- 1727, 1727, 1727, 1533, 1533, 1727, 1533, 1533, 1533, 1533,
- 3031, 1533, 1727, 1727, 1339, 755, -9, 23, 25, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
- 854, -465, 1533, 229, 2873, 28, 29, 951, 2873, 1533,
- 3110, -465, -465, -14, -465, 100, 37, 40, 1048, 41,
- 53, 55, 3316, 57, 2873, -465, -465, -465, -465, 60,
- 1145, -465, -465, 2873, -465, -465, -465, -465, 1242, 3597,
- -465, 19, 443, 527, 549, -48, -32, -31, -28, -27,
- 113, 130, 131, 3584, -465, -465, -465, 3329, 68, 72,
- 58, -76, -62, -465, 3597, 71, 81, 1533, -465, -465,
- 155, 1533, 1533, 1533, 1533, 2018, 2018, 2212, 1533, 2115,
- 2115, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, -465,
- -465, 3401, -465, 3342, 2383, 1533, 1533, 1533, 1533, 1533,
- 85, -465, -465, 3189, 3189, 3189, -15, 3414, 156, -465,
- -465, 1533, 1533, -66, -465, 1533, -465, -465, -465, 3267,
- 2463, -465, 86, -465, -465, 159, 3651, 1727, 1533, 1727,
- 1533, 1727, 1533, 1727, 1533, -465, -465, -465, -465, -465,
- -465, -465, -465, -465, -465, -465, -465, -465, -465, 27,
- 1824, 1921, 1727, 1727, 1533, -465, 1533, 1533, -465, 1533,
- 2794, -465, -465, 1533, 89, 1533, -6, -6, -6, -6,
- 51, 51, -465, 70, -6, -6, -6, -6, 70, 7,
- 7, -465, -465, 96, 1533, 1533, 1533, 1533, 1533, 1533,
- 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
- 1533, 1533, -465, 2703, 180, 2463, -465, 103, -465, 104,
- 106, 1533, 1533, 2463, 1921, 3427, 3597, 2873, -465, -465,
- -465, -66, -465, 3483, -465, -465, -465, 110, 2463, -465,
- 2463, 1533, -465, 411, -465, 603, -465, 623, -465, 657,
- -465, -465, 1727, 27, 27, 27, 27, 1727, 1727, 27,
- 1727, 1727, -465, -465, -465, -465, -465, -465, -46, 3597,
- 3597, 3597, 68, 72, 101, -465, 3597, -465, 3597, 1533,
- -465, -6, -6, -6, -6, 51, 51, -465, 70, -6,
- -6, -6, -6, 70, 7, 7, -465, -465, 96, -465,
- -465, -4, 2703, -465, 2543, -465, -465, -465, -465, 3496,
- 165, 120, -465, 2873, -465, -465, 118, -465, 211, 3597,
- 1727, 1727, 1727, 1727, -465, 1727, 1727, 1727, 1727, -465,
- 194, 153, -465, -465, -465, -465, 2623, 128, -465, 2703,
- -465, 2463, 192, 1533, 132, 133, -465, 2873, -465, -465,
- -465, -465, -465, -465, -465, -465, 157, 1727, -465, 2703,
- -465, -465, 142, 146, 1533, 3509, -465, 2463, -38, -465,
- 1727, 151, 140, 141, 3565, 2463, -465, -465, 2873, -465,
- 143, -465, -465, 2463, 163, -465, -465, 166, 144, 145,
- -465, -465
+ 2374, -459, -459, -459, -459, -459, -459, -16, -459, 2944,
+ 1410, 1507, -459, -459, 2944, -459, 42, -459, -459, 1604,
+ 59, 3023, -459, 2944, -459, -459, 2944, 1604, 1410, 2944,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, 1507, 2944, 2944, -12, 3338, -459, 111,
+ 2374, -459, -459, -459, -459, 1604, -459, -459, -459, -459,
+ -459, -459, -459, -459, -459, -459, -459, 29, -459, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, 30, 33, -459, -459, -459, -459, 1701,
+ 1701, 1701, 1701, 1507, 1507, 1798, 1507, 1507, 1507, 1507,
+ 3102, 1507, 1798, 1798, 1216, 632, 47, 51, 53, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ 731, -459, 1507, 3534, 2944, 57, 64, 828, 2944, 1507,
+ 3181, -459, -459, -9, -459, 107, 65, 66, 925, 68,
+ 69, 71, 3460, 72, 2944, -459, -459, -459, -459, 73,
+ 1022, -459, -459, 2944, 1313, -459, -459, -459, -459, -459,
+ 1119, 3869, -459, 418, 518, 540, 3393, -20, 41, 43,
+ 44, 45, 84, 114, 116, 3815, -459, -459, -459, 3547,
+ 49, 70, 54, -79, -23, -459, 3869, 75, 76, 1507,
+ -459, -459, 145, 1507, 1507, 1507, 1507, 2089, 2089, 2283,
+ 1507, 2186, 2186, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, -459, -459, 3632, -459, 3619, 2454, 1507, 1507, 1507,
+ 1507, 1507, 78, -459, -459, 3260, 3260, 3260, -11, 3645,
+ 157, -459, -459, 1507, 1507, -66, -459, 1507, -459, -459,
+ -459, 3338, 2534, -459, 90, -459, -459, -459, 3560, 162,
+ 3882, 1798, 1507, 1798, 1507, 1798, 1507, 1798, 1507, -459,
+ -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, 32, 1895, 1992, 1798, 1798, 1507, -459,
+ 1507, 1507, -459, 1507, 2865, -459, -459, 1507, 91, 1507,
+ 10, 10, 10, 10, 3895, 3895, -459, 14, 10, 10,
+ 10, 10, 14, -26, -26, -459, -459, 92, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, -459, 2774, 176, 2534,
+ -459, 96, -459, 97, 98, 1507, 1507, 2534, 1992, 3701,
+ 3869, 2944, -459, -459, -459, -66, -459, 3714, -459, -459,
+ -459, 109, 2534, -459, 2534, 1507, 1507, -459, 334, -459,
+ 3406, -459, 3426, -459, 3480, -459, -459, 1798, 32, 32,
+ 32, 32, 1798, 1798, 32, 1798, 1798, -459, -459, -459,
+ -459, -459, -459, -72, 3869, 3869, 3869, 49, 70, 94,
+ -459, 3869, -459, 3869, 1507, -459, 10, 10, 10, 10,
+ 3895, 3895, -459, 14, 10, 10, 10, 10, 14, -26,
+ -26, -459, -459, 92, -459, -459, -5, 2774, -459, 2614,
+ -459, -459, -459, -459, 3727, -2, 112, -459, 2944, -459,
+ -459, 102, -459, 190, 24, 3869, 1798, 1798, 1798, 1798,
+ -459, 1798, 1798, 1798, 1798, -459, 173, 131, -459, -459,
+ -459, -459, 2694, 108, -459, 2774, -459, 2534, 170, 1507,
+ 113, 115, -459, 2944, -459, -459, -459, -459, -459, -459,
+ -459, -459, -459, 135, 1798, -459, 2774, -459, -459, 123,
+ 125, 1507, 3783, -459, 2534, 18, -459, 1798, 128, 118,
+ 119, 3796, 2534, -459, -459, 2944, -459, 120, -459, -459,
+ 2534, 133, -459, -459, 134, 121, 124, -459, -459
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -890,71 +892,71 @@ static const yytype_int16 yydefact[] =
93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
61, 77, 98, 0, 96, 171, 172, 174, 173, 31,
37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
- 68, 65, 0, 0, 0, 286, 183, 0, 0, 244,
- 178, 179, 180, 181, 200, 201, 202, 182, 245, 246,
- 130, 247, 0, 0, 95, 0, 0, 130, 0, 0,
+ 68, 65, 0, 0, 0, 289, 183, 0, 0, 247,
+ 178, 179, 180, 181, 203, 204, 205, 182, 248, 249,
+ 130, 250, 0, 0, 95, 0, 0, 130, 0, 0,
68, 183, 186, 0, 187, 0, 0, 0, 130, 0,
0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
- 130, 120, 143, 97, 189, 188, 198, 199, 132, 133,
- 175, 0, 0, 0, 0, 25, 26, 27, 47, 63,
- 44, 55, 210, 0, 242, 243, 128, 0, 174, 173,
- 0, 183, 0, 237, 288, 0, 287, 286, 113, 114,
- 56, 0, 0, 0, 0, 29, 57, 51, 0, 34,
- 66, 0, 0, 0, 0, 0, 0, 0, 131, 124,
- 265, 130, 266, 0, 0, 0, 0, 0, 0, 0,
- 0, 119, 112, 41, 28, 30, 0, 0, 55, 141,
- 142, 0, 0, 13, 117, 73, 115, 116, 145, 0,
- 159, 144, 0, 111, 99, 56, 136, 0, 0, 0,
- 0, 0, 0, 0, 0, 213, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 228, 230, 231, 229, 0,
- 0, 0, 0, 0, 0, 177, 0, 0, 235, 0,
- 0, 236, 234, 0, 0, 0, 257, 258, 255, 256,
- 259, 260, 252, 262, 263, 264, 254, 253, 261, 248,
- 249, 250, 251, 130, 0, 0, 0, 0, 0, 0,
+ 130, 120, 143, 97, 0, 189, 200, 188, 198, 199,
+ 132, 133, 175, 0, 0, 0, 0, 25, 26, 27,
+ 47, 63, 44, 55, 213, 0, 245, 246, 128, 0,
+ 174, 173, 0, 183, 0, 240, 291, 0, 290, 289,
+ 113, 114, 56, 0, 0, 0, 0, 29, 57, 51,
+ 0, 34, 66, 0, 0, 0, 0, 0, 0, 0,
+ 131, 124, 268, 130, 269, 0, 0, 0, 0, 0,
+ 0, 0, 0, 119, 112, 41, 28, 30, 0, 0,
+ 55, 141, 142, 0, 0, 13, 117, 73, 115, 116,
+ 145, 0, 159, 144, 0, 111, 99, 201, 0, 56,
+ 136, 0, 0, 0, 0, 0, 0, 0, 0, 216,
+ 217, 218, 219, 220, 221, 222, 223, 224, 225, 231,
+ 233, 234, 232, 0, 0, 0, 0, 0, 0, 177,
+ 0, 0, 238, 0, 0, 239, 237, 0, 0, 0,
+ 260, 261, 258, 259, 262, 263, 255, 265, 266, 267,
+ 257, 256, 264, 251, 252, 253, 254, 130, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 131, 126, 165, 146, 159, 184, 0, 185, 0,
- 0, 0, 0, 159, 0, 0, 158, 0, 17, 18,
- 11, 14, 15, 0, 156, 163, 164, 0, 160, 161,
- 159, 0, 190, 0, 194, 0, 196, 0, 192, 0,
- 232, 233, 0, 33, 43, 46, 76, 48, 49, 50,
- 64, 65, 212, 205, 204, 211, 284, 285, 0, 241,
- 239, 240, 0, 0, 0, 238, 289, 176, 135, 131,
- 125, 276, 277, 274, 275, 278, 279, 271, 281, 282,
- 283, 273, 272, 280, 267, 268, 269, 270, 130, 169,
- 170, 0, 166, 167, 0, 10, 137, 138, 139, 0,
- 0, 0, 140, 95, 16, 118, 0, 162, 20, 134,
- 0, 0, 0, 0, 203, 0, 0, 0, 0, 209,
- 0, 0, 207, 208, 129, 127, 0, 0, 168, 165,
- 148, 159, 0, 0, 0, 0, 157, 21, 191, 195,
- 197, 193, 223, 225, 226, 224, 0, 0, 227, 165,
- 150, 147, 0, 0, 0, 0, 152, 159, 0, 22,
- 0, 0, 0, 0, 0, 159, 12, 19, 0, 206,
- 0, 149, 155, 159, 0, 23, 151, 0, 0, 0,
- 153, 154
+ 0, 0, 0, 0, 0, 131, 126, 165, 146, 159,
+ 184, 0, 185, 0, 0, 0, 0, 159, 0, 0,
+ 158, 0, 17, 18, 11, 14, 15, 0, 156, 163,
+ 164, 0, 160, 161, 159, 0, 0, 190, 0, 194,
+ 0, 196, 0, 192, 0, 235, 236, 0, 33, 43,
+ 46, 76, 48, 49, 50, 64, 65, 215, 208, 207,
+ 214, 287, 288, 0, 244, 242, 243, 0, 0, 0,
+ 241, 292, 176, 135, 131, 125, 279, 280, 277, 278,
+ 281, 282, 274, 284, 285, 286, 276, 275, 283, 270,
+ 271, 272, 273, 130, 169, 170, 0, 166, 167, 0,
+ 10, 137, 138, 139, 0, 0, 0, 140, 95, 16,
+ 118, 0, 162, 20, 0, 134, 0, 0, 0, 0,
+ 206, 0, 0, 0, 0, 212, 0, 0, 210, 211,
+ 129, 127, 0, 0, 168, 165, 148, 159, 0, 0,
+ 0, 0, 157, 21, 202, 191, 195, 197, 193, 226,
+ 228, 229, 227, 0, 0, 230, 165, 150, 147, 0,
+ 0, 0, 0, 152, 159, 0, 22, 0, 0, 0,
+ 0, 0, 159, 12, 19, 0, 209, 0, 149, 155,
+ 159, 0, 23, 151, 0, 0, 0, 153, 154
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -465, -465, -465, 169, -465, -465, -465, -465, -465, -126,
- -465, -465, 0, -7, -25, -465, 6, -343, -64, -465,
- 5, -236, 225, -465, -465, -465, -465, -465, -465, -465,
- -465, -346, -465, -117, -464, -465, -179, -2, -20, -148,
- -465, -123, -465, -465, -37, -206, 245, -465, -465, -465,
- -278, -465, -465, -43, -465, 262, 64, 80, 63, 62,
- -227
+ -459, -459, -459, 152, -459, -459, -459, -459, -459, -152,
+ -459, -459, 0, -7, -25, -459, 1, -349, -62, -459,
+ 2, -240, 196, -459, -459, -459, -459, -459, -459, -459,
+ -459, -350, -459, -156, -458, -459, -222, -104, -15, -157,
+ -459, -219, -459, 38, -459, -78, -249, 208, -459, -459,
+ -459, -266, -459, -459, -84, -459, 132, 55, 46, -96,
+ 12, -230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 69, 70, 71, 72, 73, 369, 370, 371, 372,
- 74, 508, 111, 136, 113, 114, 376, 77, 78, 79,
- 137, 239, 138, 80, 261, 81, 82, 83, 84, 85,
- 86, 377, 378, 379, 441, 442, 443, 139, 140, 357,
- 163, 141, 142, 143, 402, 403, 144, 145, 146, 299,
- 392, 147, 212, 213, 148, 149, 214, 241, 151, 215,
- 216
+ 0, 69, 70, 71, 72, 73, 373, 374, 375, 376,
+ 74, 515, 111, 136, 113, 114, 380, 77, 78, 79,
+ 137, 241, 138, 80, 263, 81, 82, 83, 84, 85,
+ 86, 381, 382, 383, 446, 447, 448, 139, 140, 361,
+ 163, 141, 142, 185, 143, 407, 408, 144, 145, 146,
+ 303, 397, 147, 214, 215, 148, 149, 216, 243, 151,
+ 217, 218
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -962,160 +964,138 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 75, 162, 112, 176, 171, 352, 76, 154, 361, 445,
- 440, 333, 476, 87, 161, 502, 165, 451, 367, 166,
- 259, 285, 112, 217, 156, 158, 159, 309, 286, 362,
- 260, 368, 167, 169, 458, 511, 310, 287, 289, 173,
- 311, 291, 293, 247, 288, 290, 228, 277, 292, 294,
- 390, 155, 313, 278, 474, 391, 247, 112, 174, 517,
- 518, 221, 222, 223, 224, 245, 246, 75, 247, 177,
- 75, 228, 248, 249, 150, 153, 76, 408, 175, 88,
- 179, 477, 183, 157, 181, 233, 234, 235, 236, 237,
- 217, 168, 150, 221, 222, 223, 224, 420, 182, 440,
- 247, 236, 237, 228, 248, 249, 359, 360, 231, 232,
- 233, 234, 235, 236, 237, 465, 466, 467, 468, 247,
- 218, 471, 219, 202, 438, 251, 252, 172, 211, 250,
- 358, 358, 358, 262, 263, 503, 440, 264, 266, 180,
- 231, 232, 233, 234, 235, 236, 237, 112, 240, 272,
- 267, 256, 268, 202, 271, 240, 440, 273, 300, 301,
- 308, 516, 234, 235, 236, 237, 240, 112, 295, 524,
- 296, 306, 297, 312, 298, 307, 274, 527, 240, 313,
- 482, 315, 355, 380, 364, 381, 240, 188, 189, 417,
- 191, 192, 193, 194, 419, 203, 444, 456, 207, 483,
- 446, 447, 475, 448, 309, 374, 484, 221, 222, 223,
- 224, 245, 246, 242, 247, 486, 243, 228, 248, 249,
- 242, 487, 496, 257, 497, 501, 504, 512, 510, 506,
- 507, 242, 513, 356, 356, 356, 520, 521, 522, 178,
- 526, 530, 531, 242, 75, 454, 161, 161, 161, 528,
- 354, 242, 529, 170, 231, 232, 233, 234, 235, 236,
- 237, 457, 244, 478, 405, 498, 164, 415, 276, 75,
- 75, 221, 222, 223, 224, 245, 246, 0, 247, 314,
- 0, 228, 248, 249, 0, 316, 317, 318, 319, 320,
- 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 0, 414, 0, 0, 0, 0, 0, 320,
- 321, 322, 324, 325, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 365, 366, 0, 0, 373,
+ 75, 76, 112, 356, 171, 176, 162, 154, 445, 450,
+ 337, 482, 365, 488, 161, 87, 165, 456, 371, 166,
+ 219, 156, 112, 249, 313, 261, 317, 509, 480, 167,
+ 169, 372, 489, 366, 463, 262, 362, 362, 362, 173,
+ 223, 224, 225, 226, 247, 248, 242, 249, 518, 289,
+ 230, 250, 251, 242, 244, 395, 290, 112, 174, 249,
+ 396, 244, 230, 249, 242, 150, 153, 75, 238, 239,
+ 75, 76, 244, 155, 157, 314, 242, 179, 413, 315,
+ 483, 88, 168, 150, 244, 175, 242, 233, 234, 235,
+ 236, 237, 238, 239, 244, 158, 159, 425, 445, 363,
+ 364, 235, 236, 237, 238, 239, 236, 237, 238, 239,
+ 291, 177, 293, 295, 297, 524, 525, 292, 172, 294,
+ 296, 298, 317, 204, 494, 443, 181, 182, 213, 252,
+ 180, 183, 471, 472, 473, 474, 445, 510, 477, 299,
+ 264, 300, 304, 301, 305, 302, 219, 112, 220, 274,
+ 221, 258, 310, 204, 253, 464, 312, 445, 187, 188,
+ 189, 254, 265, 266, 523, 268, 269, 112, 270, 273,
+ 275, 319, 531, 311, 317, 359, 276, 316, 190, 191,
+ 534, 193, 194, 195, 196, 368, 205, 384, 386, 209,
+ 424, 422, 449, 451, 452, 453, 461, 313, 490, 492,
+ 493, 503, 504, 481, 511, 508, 517, 245, 519, 378,
+ 513, 520, 514, 527, 259, 528, 529, 533, 537, 535,
+ 536, 538, 178, 459, 170, 484, 462, 410, 505, 164,
+ 420, 318, 0, 0, 0, 0, 280, 0, 0, 278,
+ 360, 360, 360, 0, 0, 0, 75, 358, 161, 161,
+ 161, 186, 186, 186, 186, 0, 0, 192, 0, 0,
+ 0, 0, 0, 0, 206, 207, 0, 0, 0, 0,
+ 0, 75, 75, 0, 0, 0, 0, 0, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, 335, 336, 0, 0, 0, 0, 0,
+ 0, 0, 324, 325, 326, 328, 329, 419, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
+ 0, 0, 377, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 388, 0, 390,
+ 0, 392, 0, 394, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 75, 0, 75,
+ 0, 0, 466, 0, 458, 414, 415, 75, 416, 0,
+ 0, 0, 421, 0, 423, 0, 223, 224, 225, 226,
+ 247, 248, 75, 249, 75, 0, 230, 250, 251, 0,
+ 0, 0, 0, 426, 427, 428, 429, 430, 431, 432,
+ 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
+ 0, 0, 0, 387, 0, 389, 0, 391, 0, 393,
+ 454, 455, 0, 233, 234, 235, 236, 237, 238, 239,
+ 0, 0, 0, 491, 0, 0, 409, 409, 411, 412,
+ 0, 465, 0, 0, 0, 0, 281, 75, 0, 75,
+ 486, 112, 282, 0, 0, 0, 0, 0, 0, 0,
+ 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
+ 230, 250, 251, 0, 0, 0, 0, 0, 0, 421,
+ 0, 0, 75, 507, 0, 75, 516, 75, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 383, 0, 385, 0, 387, 0, 389, 0,
- 0, 0, 0, 75, 0, 75, 0, 0, 0, 0,
- 453, 0, 0, 75, 0, 0, 0, 0, 0, 0,
- 409, 410, 0, 411, 0, 0, 0, 416, 75, 418,
- 75, 184, 185, 186, 187, 0, 0, 190, 0, 0,
- 0, 0, 0, 0, 204, 205, 0, 0, 421, 422,
- 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
- 433, 434, 435, 436, 437, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 449, 450, 0, 485, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 460,
- 0, 0, 75, 0, 75, 459, 112, 0, 0, 0,
- 480, 0, 0, 221, 222, 223, 224, 245, 246, 0,
- 247, 0, 0, 228, 248, 249, 0, 0, 0, 0,
- 0, 279, 0, 0, 0, 0, 75, 280, 0, 75,
- 509, 75, 500, 416, 0, 221, 222, 223, 224, 245,
- 246, 0, 247, 0, 0, 228, 248, 249, 0, 75,
- 231, 232, 233, 234, 235, 236, 237, 75, 0, 0,
- 0, 525, 0, 0, 0, 75, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 0, 0, 0, 0, 0,
- 0, 0, 231, 232, 233, 234, 235, 236, 237, 382,
- 0, 384, 0, 386, 0, 388, 0, 505, 0, 0,
- 0, 0, 0, 0, 0, 281, 0, 0, 0, 0,
- 0, 282, 404, 404, 406, 407, 0, 0, 514, 221,
- 222, 223, 224, 245, 246, 0, 247, 283, 0, 228,
- 248, 249, 0, 284, 0, 0, 0, 0, 0, 0,
- 0, 221, 222, 223, 224, 245, 246, 0, 247, 0,
- 0, 228, 248, 249, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
- 235, 236, 237, 0, 0, 0, 404, 0, 0, 0,
- 0, 461, 0, 0, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 221, 222, 223, 224, 245,
- 246, 462, 247, 0, 464, 228, 248, 249, 0, 469,
- 470, 0, 472, 473, 0, 221, 222, 223, 224, 245,
- 246, 0, 247, 0, 0, 228, 248, 249, 0, 0,
- 0, 0, 0, 0, 0, 463, 0, 0, 0, 0,
- 0, 0, 231, 232, 233, 234, 235, 236, 237, 221,
- 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
- 248, 249, 231, 232, 233, 234, 235, 236, 237, 0,
- 0, 0, 488, 489, 490, 491, 0, 492, 493, 494,
- 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
- 235, 236, 237, 0, 0, 0, 0, 0, 0, 469,
- 115, 116, 1, 208, 209, 89, 119, 120, 121, 122,
- 6, 90, 519, 91, 8, 92, 93, 94, 12, 13,
- 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
- 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
- 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
- 0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
- 0, 0, 0, 0, 152, 0, 135, 0, 210, 115,
- 116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
- 90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
- 15, 96, 220, 18, 97, 98, 99, 100, 22, 101,
- 24, 25, 102, 103, 104, 105, 221, 222, 223, 224,
- 225, 226, 125, 227, 34, 35, 228, 229, 230, 126,
- 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
- 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
- 0, 0, 110, 231, 232, 233, 234, 235, 236, 237,
- 0, 0, 238, 152, 0, 135, 115, 116, 1, 117,
+ 409, 0, 0, 0, 0, 0, 75, 233, 234, 235,
+ 236, 237, 238, 239, 75, 0, 0, 0, 532, 0,
+ 0, 0, 75, 0, 0, 0, 0, 0, 0, 470,
+ 75, 0, 0, 0, 475, 476, 0, 478, 479, 0,
+ 0, 0, 0, 0, 512, 0, 283, 0, 0, 0,
+ 0, 0, 284, 0, 0, 0, 0, 0, 0, 0,
+ 223, 224, 225, 226, 247, 248, 521, 249, 285, 0,
+ 230, 250, 251, 0, 286, 0, 0, 0, 0, 0,
+ 0, 0, 223, 224, 225, 226, 247, 248, 0, 249,
+ 0, 0, 230, 250, 251, 0, 0, 0, 495, 496,
+ 497, 498, 0, 499, 500, 501, 502, 233, 234, 235,
+ 236, 237, 238, 239, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
+ 234, 235, 236, 237, 238, 239, 475, 115, 116, 1,
+ 210, 211, 89, 119, 120, 121, 122, 6, 90, 526,
+ 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
+ 125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
+ 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
+ 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
+ 0, 152, 0, 135, 0, 212, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
- 8, 92, 93, 94, 12, 253, 95, 15, 96, 17,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 222,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
- 103, 104, 105, 221, 222, 223, 224, 225, 226, 125,
- 227, 254, 255, 228, 229, 230, 126, 39, 127, 41,
+ 103, 104, 105, 223, 224, 225, 226, 227, 228, 125,
+ 229, 34, 35, 230, 231, 232, 126, 39, 127, 41,
128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
- 231, 232, 233, 234, 235, 236, 237, 0, 0, 238,
+ 233, 234, 235, 236, 237, 238, 239, 0, 0, 240,
152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
- 94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
- 99, 100, 22, 101, 265, 25, 102, 103, 104, 105,
- 221, 222, 223, 224, 225, 226, 125, 227, 34, 35,
- 228, 229, 230, 126, 39, 127, 41, 128, 43, 129,
+ 94, 12, 255, 95, 15, 96, 17, 18, 97, 98,
+ 99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
+ 223, 224, 225, 226, 227, 228, 125, 229, 256, 257,
+ 230, 231, 232, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
- 107, 108, 109, 0, 0, 0, 110, 231, 232, 233,
- 234, 235, 236, 237, 0, 0, 238, 152, 0, 135,
+ 107, 108, 109, 0, 0, 0, 110, 233, 234, 235,
+ 236, 237, 238, 239, 0, 0, 240, 152, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
- 101, 24, 25, 102, 103, 104, 105, 221, 222, 223,
- 224, 225, 226, 125, 227, 34, 35, 228, 229, 230,
+ 101, 267, 25, 102, 103, 104, 105, 223, 224, 225,
+ 226, 227, 228, 125, 229, 34, 35, 230, 231, 232,
126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
- 0, 0, 0, 110, 231, 232, 233, 234, 235, 236,
- 237, 0, 0, 238, 152, 0, 135, 115, 116, 1,
+ 0, 0, 0, 110, 233, 234, 235, 236, 237, 238,
+ 239, 0, 0, 240, 152, 0, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
- 275, 18, 97, 98, 99, 100, 22, 101, 24, 25,
- 102, 103, 104, 105, 221, 222, 223, 224, 225, 226,
- 125, 227, 34, 35, 228, 229, 230, 126, 39, 127,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 223, 224, 225, 226, 227, 228,
+ 125, 229, 34, 35, 230, 231, 232, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
- 110, 231, 232, 233, 234, 235, 236, 237, 0, 0,
- 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 110, 233, 234, 235, 236, 237, 238, 239, 0, 0,
+ 240, 152, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
- 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
+ 93, 94, 12, 13, 95, 15, 96, 279, 18, 97,
98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 0, 0, 0, 0, 30, 31, 125, 33, 34,
- 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
+ 105, 223, 224, 225, 226, 227, 228, 125, 229, 34,
+ 35, 230, 231, 232, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
- 106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
- 0, 132, 133, 0, 0, 0, 0, 0, 152, 206,
+ 106, 107, 108, 109, 0, 0, 0, 110, 233, 234,
+ 235, 236, 237, 238, 239, 0, 0, 0, 152, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
- 122, 6, 90, 0, 91, 123, 92, 93, 94, 12,
- 13, 95, 124, 96, 17, 18, 97, 98, 99, 100,
+ 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
- 0, 0, 0, 0, 0, 134, 0, 135, 115, 116,
+ 0, 0, 0, 0, 0, 152, 208, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
@@ -1125,9 +1105,9 @@ static const yytype_int16 yytable[] =
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
- 0, 0, 152, 0, 135, 115, 116, 1, 117, 118,
- 89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
- 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
+ 0, 0, 152, 277, 135, 115, 116, 1, 117, 118,
+ 89, 119, 120, 121, 122, 6, 90, 0, 91, 123,
+ 92, 93, 94, 12, 13, 95, 124, 96, 17, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
104, 105, 0, 0, 0, 0, 30, 31, 125, 33,
34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
@@ -1142,7 +1122,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 30, 31, 125, 33, 34, 35, 0,
36, 37, 126, 39, 127, 41, 128, 43, 129, 45,
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 130, 58, 59, 60, 61, 62, 106, 107,
+ 55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
@@ -1150,99 +1130,136 @@ static const yytype_int16 yytable[] =
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 125, 33, 34, 35, 0, 36, 37, 126,
- 393, 127, 394, 128, 395, 129, 396, 46, 47, 48,
- 49, 50, 0, 51, 52, 397, 398, 399, 56, 130,
- 58, 400, 401, 61, 62, 106, 107, 108, 109, 0,
+ 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
+ 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
- 0, 0, 0, 152, 0, 135, 115, 116, 1, 117,
+ 0, 0, 0, 134, 0, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 397, 398, 55, 56, 130, 58, 400, 401,
+ 51, 52, 53, 54, 55, 56, 130, 58, 59, 60,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 184, 0, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
- 0, 0, 0, 0, 0, 0, 125, 33, 34, 35,
+ 0, 0, 0, 0, 30, 31, 125, 33, 34, 35,
0, 36, 37, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
+ 54, 55, 56, 130, 58, 59, 60, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 0, 0, 125, 33, 34, 35, 0, 0, 0,
- 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
+ 0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
+ 126, 398, 127, 399, 128, 400, 129, 401, 46, 47,
+ 48, 49, 50, 0, 51, 52, 402, 403, 404, 56,
+ 130, 58, 405, 406, 61, 62, 106, 107, 108, 109,
0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
0, 0, 0, 0, 152, 0, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
- 102, 103, 104, 105, 0, 0, 0, 0, 0, 0,
- 125, 0, 34, 35, 0, 0, 0, 126, 39, 127,
+ 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
+ 125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
- 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
- 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 152, 0, 135, 2, 3, 4, 5, 6, 0,
- 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 0, 66, 0,
- 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
- 68, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
- 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
- 353, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
- 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
- 375, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
- 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
- 479, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
- 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
- 499, 7, 8, 9, 10, 11, 12, 13, 0, 15,
- 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
- 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
- 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
- 0, 67, 0, 0, 0, 0, 0, 0, 0, 0,
- 439, 1, 412, 413, 89, 2, 3, 4, 5, 6,
+ 0, 51, 52, 402, 403, 55, 56, 130, 58, 405,
+ 406, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
+ 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
+ 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
+ 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
+ 105, 0, 0, 0, 0, 0, 0, 125, 33, 34,
+ 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
+ 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
+ 106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
+ 0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
+ 135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
+ 122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
+ 0, 0, 0, 0, 125, 33, 34, 35, 0, 0,
+ 0, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
+ 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
+ 0, 0, 0, 0, 0, 152, 0, 135, 115, 116,
+ 1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
+ 0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 0,
+ 0, 125, 0, 34, 35, 0, 0, 0, 126, 39,
+ 127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
+ 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
+ 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 152, 0, 135, 2, 3, 4, 5, 6,
+ 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 68, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 357, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 379, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 485, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
+ 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
+ 0, 506, 7, 8, 9, 10, 11, 12, 13, 0,
+ 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
+ 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
+ 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
+ 0, 0, 67, 0, 0, 0, 0, 0, 0, 0,
+ 0, 444, 1, 417, 418, 89, 2, 3, 4, 5,
+ 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 106, 107, 108, 109,
+ 0, 1, 0, 110, 89, 2, 3, 4, 5, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
@@ -1256,187 +1273,175 @@ static const yytype_int16 yytable[] =
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 50, 0, 51, 52, 53, 54, 55, 56, 160, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 160, 58, 59,
+ 41, 42, 43, 44, 45, 197, 198, 199, 200, 201,
+ 0, 51, 202, 53, 54, 55, 203, 57, 58, 59,
60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
110, 89, 2, 3, 4, 5, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 195, 196, 197, 198, 199, 0,
- 51, 200, 53, 54, 55, 201, 57, 58, 59, 60,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 260, 57, 58, 59, 60,
61, 62, 106, 107, 108, 109, 0, 1, 0, 110,
- 89, 2, 3, 4, 5, 6, 90, 0, 91, 8,
+ 89, 119, 120, 4, 5, 6, 90, 0, 91, 8,
92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
104, 105, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 258, 57, 58, 59, 60, 61,
- 62, 106, 107, 108, 109, 0, 1, 0, 110, 89,
- 119, 120, 4, 5, 6, 90, 0, 91, 8, 92,
- 93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
- 98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
- 129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 106, 107, 108, 109, 1, 0, 0, 110, 2, 3,
- 4, 5, 6, 0, 0, 7, 8, 9, 10, 0,
- 12, 13, 0, 15, 16, 17, 18, 19, 98, 21,
- 0, 22, 0, 24, 25, 0, 27, 28, 29, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 106, 64,
- 269, 0, 0, 0, 0, 67, 0, 0, 221, 222,
- 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
- 249, 221, 222, 223, 224, 245, 246, 0, 247, 0,
- 0, 228, 248, 249, 221, 222, 223, 224, 245, 246,
- 0, 247, 0, 0, 228, 248, 249, 0, 0, 0,
- 0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 0, 270, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 0, 0, 304, 0, 305,
- 0, 231, 232, 233, 234, 235, 236, 237, 0, 0,
- 0, 0, 305, 334, 335, 336, 337, 338, 339, 0,
- 340, 0, 0, 341, 342, 343, 221, 222, 223, 224,
- 245, 246, 0, 247, 0, 0, 228, 248, 249, 221,
- 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
- 248, 249, 0, 0, 0, 0, 0, 0, 0, 0,
- 344, 345, 346, 347, 348, 349, 350, 0, 0, 351,
- 0, 0, 0, 231, 232, 233, 234, 235, 236, 237,
- 0, 363, 0, 0, 0, 0, 231, 232, 233, 234,
- 235, 236, 237, 0, 452, 221, 222, 223, 224, 245,
- 246, 0, 247, 0, 0, 228, 248, 249, 221, 222,
- 223, 224, 245, 246, 0, 247, 0, 0, 228, 248,
- 249, 221, 222, 223, 224, 245, 246, 0, 247, 0,
- 0, 228, 248, 249, 0, 0, 0, 0, 0, 0,
- 0, 0, 231, 232, 233, 234, 235, 236, 237, 0,
- 455, 0, 0, 0, 0, 231, 232, 233, 234, 235,
- 236, 237, 0, 481, 0, 0, 0, 0, 231, 232,
- 233, 234, 235, 236, 237, 0, 515, 221, 222, 223,
- 224, 245, 246, 0, 247, 0, 0, 228, 248, 249,
- 0, 0, 0, 0, 0, 0, 221, 222, 223, 224,
- 245, 246, 0, 247, 0, 0, 228, 248, 249, 221,
- 222, 223, 224, 245, 246, 0, 247, 0, 0, 228,
- 248, 249, 0, 0, 231, 232, 233, 234, 235, 236,
- 237, 0, 523, 302, 303, 0, 0, 0, 0, 0,
- 0, 0, 0, 231, 232, 233, 234, 235, 236, 237,
- 0, 0, 0, 0, 0, 0, 231, 232, 233, 234,
- 235, 236, 237, 334, 335, 336, 337, 338, 339, 0,
- 340, 0, 0, 341, 342, 343, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 344, 345, 346, 347, 348, 349, 350
+ 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 106, 107, 108, 109, 1, 0, 0, 110, 2,
+ 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
+ 0, 12, 13, 0, 15, 16, 17, 18, 19, 98,
+ 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 106,
+ 64, 287, 0, 0, 0, 0, 67, 288, 0, 0,
+ 0, 0, 0, 0, 467, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
+ 225, 226, 247, 248, 468, 249, 0, 0, 230, 250,
+ 251, 0, 0, 0, 0, 0, 0, 0, 223, 224,
+ 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
+ 251, 0, 233, 234, 235, 236, 237, 238, 239, 0,
+ 0, 0, 0, 0, 271, 233, 234, 235, 236, 237,
+ 238, 239, 223, 224, 225, 226, 247, 248, 469, 249,
+ 0, 0, 230, 250, 251, 233, 234, 235, 236, 237,
+ 238, 239, 223, 224, 225, 226, 247, 248, 0, 249,
+ 0, 0, 230, 250, 251, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 272, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 246, 0, 233,
+ 234, 235, 236, 237, 238, 239, 223, 224, 225, 226,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
+ 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
+ 250, 251, 223, 224, 225, 226, 247, 248, 0, 249,
+ 0, 0, 230, 250, 251, 0, 0, 0, 0, 0,
+ 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
+ 237, 238, 239, 0, 0, 308, 0, 309, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 0, 385, 0,
+ 309, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 0, 230, 250, 251, 338, 339, 340, 341, 342, 343,
+ 0, 344, 0, 0, 345, 346, 347, 223, 224, 225,
+ 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
+ 0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
+ 235, 236, 237, 238, 239, 0, 0, 0, 0, 309,
+ 0, 348, 349, 350, 351, 352, 353, 354, 0, 0,
+ 355, 0, 0, 0, 233, 234, 235, 236, 237, 238,
+ 239, 0, 367, 223, 224, 225, 226, 247, 248, 0,
+ 249, 0, 0, 230, 250, 251, 223, 224, 225, 226,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
+ 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
+ 250, 251, 0, 0, 0, 0, 0, 0, 0, 0,
+ 233, 234, 235, 236, 237, 238, 239, 0, 457, 0,
+ 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 0, 460, 0, 0, 0, 0, 233, 234, 235, 236,
+ 237, 238, 239, 0, 487, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
+ 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
+ 251, 0, 0, 0, 0, 0, 0, 223, 224, 225,
+ 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
+ 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
+ 522, 0, 0, 0, 0, 233, 234, 235, 236, 237,
+ 238, 239, 0, 530, 306, 307, 0, 0, 0, 0,
+ 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
+ 239, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 0, 230, 250, 251, 338, 339, 340, 341, 342, 343,
+ 0, 344, 0, 0, 345, 346, 347, 223, 224, 225,
+ 226, 0, 0, 0, 249, 0, 0, 230, 250, 251,
+ 0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
+ 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
+ 0, 348, 349, 350, 351, 352, 353, 354, 0, 0,
+ 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
+ 239
};
static const yytype_int16 yycheck[] =
{
- 0, 21, 9, 67, 29, 241, 0, 14, 23, 355,
- 353, 238, 16, 31, 21, 479, 23, 363, 84, 26,
- 34, 69, 29, 99, 19, 36, 37, 103, 76, 44,
- 44, 97, 27, 28, 380, 499, 98, 69, 69, 64,
- 102, 69, 69, 49, 76, 76, 52, 28, 76, 76,
- 23, 31, 98, 34, 100, 28, 49, 64, 65, 97,
- 98, 42, 43, 44, 45, 46, 47, 67, 49, 0,
- 70, 52, 53, 54, 10, 11, 70, 304, 97, 97,
- 75, 85, 98, 19, 97, 91, 92, 93, 94, 95,
- 99, 27, 28, 42, 43, 44, 45, 333, 97, 442,
- 49, 94, 95, 52, 53, 54, 254, 255, 89, 90,
- 91, 92, 93, 94, 95, 393, 394, 395, 396, 49,
- 97, 399, 97, 130, 351, 97, 97, 63, 135, 154,
- 253, 254, 255, 33, 97, 481, 479, 97, 97, 75,
- 89, 90, 91, 92, 93, 94, 95, 154, 150, 174,
- 97, 158, 97, 160, 97, 157, 499, 97, 28, 28,
- 102, 507, 92, 93, 94, 95, 168, 174, 55, 515,
- 57, 103, 59, 102, 61, 103, 183, 523, 180, 98,
- 15, 26, 97, 97, 28, 26, 188, 123, 124, 100,
- 126, 127, 128, 129, 98, 131, 16, 87, 134, 34,
- 97, 97, 438, 97, 103, 269, 86, 42, 43, 44,
- 45, 46, 47, 150, 49, 97, 152, 52, 53, 54,
- 157, 10, 28, 159, 71, 97, 34, 85, 71, 97,
- 97, 168, 86, 253, 254, 255, 85, 97, 97, 70,
- 97, 97, 97, 180, 244, 371, 253, 254, 255, 86,
- 244, 188, 86, 28, 89, 90, 91, 92, 93, 94,
- 95, 378, 33, 442, 301, 471, 21, 310, 188, 269,
- 270, 42, 43, 44, 45, 46, 47, -1, 49, 217,
- -1, 52, 53, 54, -1, 221, 222, 223, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, -1, 310, -1, -1, -1, -1, -1, 245,
- 246, 247, 248, 249, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, 261, 262, -1, -1, 265,
+ 0, 0, 9, 243, 29, 67, 21, 14, 357, 359,
+ 240, 16, 23, 15, 21, 31, 23, 367, 84, 26,
+ 99, 19, 29, 49, 103, 34, 98, 485, 100, 27,
+ 28, 97, 34, 44, 384, 44, 255, 256, 257, 64,
+ 42, 43, 44, 45, 46, 47, 150, 49, 506, 69,
+ 52, 53, 54, 157, 150, 23, 76, 64, 65, 49,
+ 28, 157, 52, 49, 168, 10, 11, 67, 94, 95,
+ 70, 70, 168, 31, 19, 98, 180, 75, 308, 102,
+ 85, 97, 27, 28, 180, 97, 190, 89, 90, 91,
+ 92, 93, 94, 95, 190, 36, 37, 337, 447, 256,
+ 257, 91, 92, 93, 94, 95, 92, 93, 94, 95,
+ 69, 0, 69, 69, 69, 97, 98, 76, 63, 76,
+ 76, 76, 98, 130, 100, 355, 97, 97, 135, 154,
+ 75, 98, 398, 399, 400, 401, 485, 487, 404, 55,
+ 33, 57, 28, 59, 28, 61, 99, 154, 97, 174,
+ 97, 158, 103, 160, 97, 385, 102, 506, 120, 121,
+ 122, 97, 97, 97, 514, 97, 97, 174, 97, 97,
+ 97, 26, 522, 103, 98, 97, 183, 102, 123, 124,
+ 530, 126, 127, 128, 129, 28, 131, 97, 26, 134,
+ 98, 100, 16, 97, 97, 97, 87, 103, 86, 97,
+ 10, 28, 71, 443, 34, 97, 71, 152, 85, 271,
+ 97, 86, 97, 85, 159, 97, 97, 97, 97, 86,
+ 86, 97, 70, 375, 28, 447, 382, 305, 477, 21,
+ 314, 219, -1, -1, -1, -1, 190, -1, -1, 184,
+ 255, 256, 257, -1, -1, -1, 246, 246, 255, 256,
+ 257, 119, 120, 121, 122, -1, -1, 125, -1, -1,
+ -1, -1, -1, -1, 132, 133, -1, -1, -1, -1,
+ -1, 271, 272, -1, -1, -1, -1, -1, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, -1, -1, -1, -1, -1,
+ -1, -1, 247, 248, 249, 250, 251, 314, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 263, 264,
+ -1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 282, -1, 284,
+ -1, 286, -1, 288, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 357, -1, 359,
+ -1, -1, 28, -1, 371, 310, 311, 367, 313, -1,
+ -1, -1, 317, -1, 319, -1, 42, 43, 44, 45,
+ 46, 47, 382, 49, 384, -1, 52, 53, 54, -1,
+ -1, -1, -1, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ -1, -1, -1, 281, -1, 283, -1, 285, -1, 287,
+ 365, 366, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, 458, -1, -1, 304, 305, 306, 307,
+ -1, 386, -1, -1, -1, -1, 28, 447, -1, 449,
+ 449, 458, 34, -1, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, 424,
+ -1, -1, 482, 482, -1, 485, 493, 487, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 278, -1, 280, -1, 282, -1, 284, -1,
- -1, -1, -1, 353, -1, 355, -1, -1, -1, -1,
- 367, -1, -1, 363, -1, -1, -1, -1, -1, -1,
- 306, 307, -1, 309, -1, -1, -1, 313, 378, 315,
- 380, 119, 120, 121, 122, -1, -1, 125, -1, -1,
- -1, -1, -1, -1, 132, 133, -1, -1, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 348, 349, 350, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 361, 362, -1, 453, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
- -1, -1, 442, -1, 444, 381, 453, -1, -1, -1,
- 444, -1, -1, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, 28, -1, -1, -1, -1, 476, 34, -1, 479,
- 487, 481, 476, 419, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, 499,
- 89, 90, 91, 92, 93, 94, 95, 507, -1, -1,
- -1, 518, -1, -1, -1, 515, -1, -1, -1, -1,
- -1, -1, -1, 523, -1, -1, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, 277,
- -1, 279, -1, 281, -1, 283, -1, 483, -1, -1,
- -1, -1, -1, -1, -1, 28, -1, -1, -1, -1,
- -1, 34, 300, 301, 302, 303, -1, -1, 504, 42,
- 43, 44, 45, 46, 47, -1, 49, 28, -1, 52,
- 53, 54, -1, 34, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, 364, -1, -1, -1,
- -1, 28, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, 42, 43, 44, 45, 46,
- 47, 28, 49, -1, 392, 52, 53, 54, -1, 397,
- 398, -1, 400, 401, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, -1, 28, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, 460, 461, 462, 463, -1, 465, 466, 467,
- 468, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, 497,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 510, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, -1, 103, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, 88, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, 98, 99, -1, 101, 5, 6, 7, 8,
+ 368, -1, -1, -1, -1, -1, 506, 89, 90, 91,
+ 92, 93, 94, 95, 514, -1, -1, -1, 525, -1,
+ -1, -1, 522, -1, -1, -1, -1, -1, -1, 397,
+ 530, -1, -1, -1, 402, 403, -1, 405, 406, -1,
+ -1, -1, -1, -1, 489, -1, 28, -1, -1, -1,
+ -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, 511, 49, 28, -1,
+ 52, 53, 54, -1, 34, -1, -1, -1, -1, -1,
+ -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, 466, 467,
+ 468, 469, -1, 471, 472, 473, 474, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, 504, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 517,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, -1, 101, -1, 103, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -1475,16 +1480,16 @@ static const yytype_int16 yycheck[] =
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
88, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
+ 98, 99, -1, 101, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 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, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
- -1, 92, 93, -1, -1, -1, -1, -1, 99, 100,
+ 81, 82, 83, 84, -1, -1, -1, 88, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, 99, -1,
101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
@@ -1494,7 +1499,7 @@ static const yytype_int16 yycheck[] =
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ -1, -1, -1, -1, -1, 99, 100, 101, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -1504,7 +1509,7 @@ static const yytype_int16 yycheck[] =
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
-1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
- -1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
+ -1, -1, 99, 100, 101, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
@@ -1547,7 +1552,7 @@ static const yytype_int16 yycheck[] =
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
-1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
@@ -1557,7 +1562,7 @@ static const yytype_int16 yycheck[] =
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
@@ -1566,62 +1571,99 @@ static const yytype_int16 yycheck[] =
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, -1, -1, -1, -1, -1,
- 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
+ 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
+ 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
+ 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
+ -1, 99, -1, 101, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, -1, -1, -1, 88, -1, -1,
+ -1, 92, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, -1, -1, 48, 49, 50, 51, -1, -1,
+ -1, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, -1, 99, -1, 101, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
- 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
- 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
- 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, -1,
+ -1, 48, -1, 50, 51, -1, -1, -1, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
-1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
- 97, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ -1, 7, 99, -1, 101, 11, 12, 13, 14, 15,
+ -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
+ -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
+ -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, -1, -1, -1,
+ -1, -1, 88, -1, -1, -1, -1, -1, -1, -1,
+ -1, 97, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
@@ -1660,62 +1702,72 @@ static const yytype_int16 yycheck[] =
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 7, -1, 88, 10,
- 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 7, -1, -1, 88, 11, 12,
- 13, 14, 15, -1, -1, 18, 19, 20, 21, -1,
- 23, 24, -1, 26, 27, 28, 29, 30, 31, 32,
- -1, 34, -1, 36, 37, -1, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 34, -1, -1, -1, -1, 88, -1, -1, 42, 43,
+ 80, 81, 82, 83, 84, 7, -1, -1, 88, 11,
+ 12, 13, 14, 15, -1, -1, 18, 19, 20, 21,
+ -1, 23, 24, -1, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 28, -1, -1, -1, -1, 88, 34, -1, -1,
+ -1, -1, -1, -1, 28, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
+ 44, 45, 46, 47, 28, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ 54, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, -1, -1, 34, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, 28, 49,
+ -1, -1, 52, 53, 54, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 33, -1, 89,
+ 90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 98, -1, 100, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, 98, -1,
+ 100, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, 98, -1, 100,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, 100,
-1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, -1, 100, 42, 43, 44, 45, 46, 47, -1,
+ 98, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, 97, 42, 43, 44, 45, 46, 47, -1,
49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
+ 89, 90, 91, 92, 93, 94, 95, -1, 97, -1,
-1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
-1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
93, 94, 95, -1, 97, 42, 43, 44, 45, 46,
47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ 54, -1, -1, -1, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
-1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
97, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, 79, 80, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95
+ 94, 95, -1, 97, 79, 80, -1, -1, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, -1, -1, -1, 49, -1, -1, 52, 53, 54,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1736,46 +1788,46 @@ static const yytype_uint8 yystos[] =
88, 116, 117, 118, 119, 5, 6, 8, 9, 11,
12, 13, 14, 19, 26, 48, 55, 57, 59, 61,
75, 78, 92, 93, 99, 101, 117, 124, 126, 141,
- 142, 145, 146, 147, 150, 151, 152, 155, 158, 159,
- 160, 162, 99, 160, 117, 31, 124, 160, 36, 37,
- 75, 117, 142, 144, 150, 117, 117, 124, 160, 124,
- 126, 118, 160, 118, 117, 97, 122, 0, 107, 124,
- 160, 97, 97, 98, 159, 159, 159, 159, 160, 160,
- 159, 160, 160, 160, 160, 63, 64, 65, 66, 67,
- 70, 74, 117, 160, 159, 159, 100, 160, 8, 9,
- 103, 117, 156, 157, 160, 163, 164, 99, 97, 97,
- 28, 42, 43, 44, 45, 46, 47, 49, 52, 53,
- 54, 89, 90, 91, 92, 93, 94, 95, 98, 125,
- 141, 161, 162, 160, 33, 46, 47, 49, 53, 54,
- 118, 97, 97, 24, 50, 51, 117, 160, 74, 34,
- 44, 128, 33, 97, 97, 36, 97, 97, 97, 34,
- 97, 97, 118, 97, 117, 28, 161, 28, 34, 28,
- 34, 28, 34, 28, 34, 69, 76, 69, 76, 69,
- 76, 69, 76, 69, 76, 55, 57, 59, 61, 153,
- 28, 28, 79, 80, 98, 100, 103, 103, 102, 103,
- 98, 102, 102, 98, 163, 26, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 164, 42, 43, 44, 45, 46, 47,
- 49, 52, 53, 54, 89, 90, 91, 92, 93, 94,
- 95, 98, 125, 97, 120, 97, 142, 143, 145, 143,
- 143, 23, 44, 97, 28, 160, 160, 84, 97, 110,
- 111, 112, 113, 160, 122, 97, 120, 135, 136, 137,
- 97, 26, 159, 160, 159, 160, 159, 160, 159, 160,
- 23, 28, 154, 56, 58, 60, 62, 71, 72, 73,
- 77, 78, 148, 149, 159, 148, 159, 159, 164, 160,
- 160, 160, 8, 9, 117, 157, 160, 100, 160, 98,
- 125, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 164, 97,
- 121, 138, 139, 140, 16, 135, 97, 97, 97, 160,
- 160, 135, 97, 117, 113, 97, 87, 137, 135, 160,
- 28, 28, 28, 28, 159, 154, 154, 154, 154, 159,
- 159, 154, 159, 159, 100, 125, 16, 85, 140, 97,
- 120, 97, 15, 34, 86, 118, 97, 10, 159, 159,
- 159, 159, 159, 159, 159, 159, 28, 71, 149, 97,
- 120, 97, 138, 135, 34, 160, 97, 97, 115, 117,
- 71, 138, 85, 86, 160, 97, 135, 97, 98, 159,
- 85, 97, 97, 97, 135, 117, 97, 135, 86, 86,
- 97, 97
+ 142, 145, 146, 148, 151, 152, 153, 156, 159, 160,
+ 161, 163, 99, 161, 117, 31, 124, 161, 36, 37,
+ 75, 117, 142, 144, 151, 117, 117, 124, 161, 124,
+ 126, 118, 161, 118, 117, 97, 122, 0, 107, 124,
+ 161, 97, 97, 98, 99, 147, 160, 147, 147, 147,
+ 161, 161, 160, 161, 161, 161, 161, 63, 64, 65,
+ 66, 67, 70, 74, 117, 161, 160, 160, 100, 161,
+ 8, 9, 103, 117, 157, 158, 161, 164, 165, 99,
+ 97, 97, 28, 42, 43, 44, 45, 46, 47, 49,
+ 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
+ 98, 125, 141, 162, 163, 161, 33, 46, 47, 49,
+ 53, 54, 118, 97, 97, 24, 50, 51, 117, 161,
+ 74, 34, 44, 128, 33, 97, 97, 36, 97, 97,
+ 97, 34, 97, 97, 118, 97, 117, 100, 161, 28,
+ 162, 28, 34, 28, 34, 28, 34, 28, 34, 69,
+ 76, 69, 76, 69, 76, 69, 76, 69, 76, 55,
+ 57, 59, 61, 154, 28, 28, 79, 80, 98, 100,
+ 103, 103, 102, 103, 98, 102, 102, 98, 164, 26,
+ 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
+ 161, 161, 161, 161, 161, 161, 161, 165, 42, 43,
+ 44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
+ 91, 92, 93, 94, 95, 98, 125, 97, 120, 97,
+ 142, 143, 145, 143, 143, 23, 44, 97, 28, 161,
+ 161, 84, 97, 110, 111, 112, 113, 161, 122, 97,
+ 120, 135, 136, 137, 97, 98, 26, 160, 161, 160,
+ 161, 160, 161, 160, 161, 23, 28, 155, 56, 58,
+ 60, 62, 71, 72, 73, 77, 78, 149, 150, 160,
+ 149, 160, 160, 165, 161, 161, 161, 8, 9, 117,
+ 158, 161, 100, 161, 98, 125, 161, 161, 161, 161,
+ 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
+ 161, 161, 161, 165, 97, 121, 138, 139, 140, 16,
+ 135, 97, 97, 97, 161, 161, 135, 97, 117, 113,
+ 97, 87, 137, 135, 165, 161, 28, 28, 28, 28,
+ 160, 155, 155, 155, 155, 160, 160, 155, 160, 160,
+ 100, 125, 16, 85, 140, 97, 120, 97, 15, 34,
+ 86, 118, 97, 10, 100, 160, 160, 160, 160, 160,
+ 160, 160, 160, 28, 71, 150, 97, 120, 97, 138,
+ 135, 34, 161, 97, 97, 115, 117, 71, 138, 85,
+ 86, 161, 97, 135, 97, 98, 160, 85, 97, 97,
+ 97, 135, 117, 97, 135, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1801,15 +1853,16 @@ static const yytype_uint8 yyr1[] =
140, 141, 141, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 142, 143, 143, 144, 144, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 146, 146,
- 147, 147, 147, 147, 148, 148, 148, 148, 148, 149,
- 150, 150, 150, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 152, 152, 152, 152, 152, 153, 153,
- 153, 153, 154, 154, 155, 155, 155, 156, 156, 157,
- 157, 157, 158, 158, 159, 159, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 161, 161, 161, 161, 161,
+ 147, 147, 147, 148, 148, 148, 148, 149, 149, 149,
+ 149, 149, 150, 151, 151, 151, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 153, 153, 153, 153,
+ 153, 154, 154, 154, 154, 155, 155, 156, 156, 156,
+ 157, 157, 158, 158, 158, 159, 159, 160, 160, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 162, 162, 163, 163, 164, 164
+ 161, 161, 161, 161, 161, 161, 161, 161, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 163, 163, 164,
+ 164, 165, 165
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1835,15 +1888,16 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 2, 4, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
4, 6, 4, 6, 4, 6, 4, 6, 2, 2,
- 1, 1, 1, 5, 1, 1, 5, 2, 2, 2,
- 2, 4, 4, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 6, 6, 6, 6, 6, 1, 1,
- 1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
- 3, 3, 2, 2, 1, 1, 1, 1, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 1, 1, 3, 3, 3,
+ 1, 2, 5, 1, 1, 1, 5, 1, 1, 5,
+ 2, 2, 2, 2, 4, 4, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 6, 6, 6, 6,
+ 6, 1, 1, 1, 1, 1, 1, 3, 3, 3,
+ 1, 3, 3, 3, 3, 2, 2, 1, 1, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 1, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 3, 3, 3, 3, 4, 4, 0,
+ 1, 1, 3
};
@@ -2117,37 +2171,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2121 "engines/director/lingo/lingo-gr.cpp"
+#line 2175 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2127 "engines/director/lingo/lingo-gr.cpp"
+#line 2181 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2133 "engines/director/lingo/lingo-gr.cpp"
+#line 2187 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2139 "engines/director/lingo/lingo-gr.cpp"
+#line 2193 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2145 "engines/director/lingo/lingo-gr.cpp"
+#line 2199 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2151 "engines/director/lingo/lingo-gr.cpp"
+#line 2205 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2415,7 +2469,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2419 "engines/director/lingo/lingo-gr.cpp"
+#line 2473 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2426,7 +2480,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+#line 2484 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2436,37 +2490,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2440 "engines/director/lingo/lingo-gr.cpp"
+#line 2494 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2446 "engines/director/lingo/lingo-gr.cpp"
+#line 2500 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2452 "engines/director/lingo/lingo-gr.cpp"
+#line 2506 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2458 "engines/director/lingo/lingo-gr.cpp"
+#line 2512 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2464 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2470 "engines/director/lingo/lingo-gr.cpp"
+#line 2524 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2477,7 +2531,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2487,13 +2541,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+#line 2545 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2551 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2502,446 +2556,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2506 "engines/director/lingo/lingo-gr.cpp"
+#line 2560 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2513 "engines/director/lingo/lingo-gr.cpp"
+#line 2567 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2519 "engines/director/lingo/lingo-gr.cpp"
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2531 "engines/director/lingo/lingo-gr.cpp"
+#line 2585 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2537 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2543 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2549 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2555 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2561 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2567 "engines/director/lingo/lingo-gr.cpp"
+#line 2621 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2579 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2585 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2609 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2909 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2915 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2921 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: ID */
@@ -2950,7 +3004,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+#line 3008 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -2958,55 +3012,55 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 2962 "engines/director/lingo/lingo-gr.cpp"
+#line 3016 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmt: tENDIF '\n' */
#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2968 "engines/director/lingo/lingo-gr.cpp"
+#line 3022 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: CMDID cmdargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 2974 "engines/director/lingo/lingo-gr.cpp"
+#line 3028 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPUT cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 2980 "engines/director/lingo/lingo-gr.cpp"
+#line 3034 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tGO cmdargs '\n' */
#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 3040 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tGO frameargs '\n' */
#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 2992 "engines/director/lingo/lingo-gr.cpp"
+#line 3046 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tPLAY cmdargs '\n' */
#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 3052 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tPLAY frameargs '\n' */
#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3004 "engines/director/lingo/lingo-gr.cpp"
+#line 3058 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tOPEN cmdargs '\n' */
#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3010 "engines/director/lingo/lingo-gr.cpp"
+#line 3064 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tOPEN expr tWITH expr '\n' */
@@ -3016,31 +3070,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3020 "engines/director/lingo/lingo-gr.cpp"
+#line 3074 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tNEXT tREPEAT '\n' */
#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3026 "engines/director/lingo/lingo-gr.cpp"
+#line 3080 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* proc: tEXIT tREPEAT '\n' */
#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3086 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tEXIT '\n' */
#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3038 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* proc: tASSERTERROR stmtoneliner */
#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3098 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: %empty */
@@ -3048,7 +3102,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3052 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr trailingcomma */
@@ -3058,7 +3112,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3062 "engines/director/lingo/lingo-gr.cpp"
+#line 3116 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
@@ -3067,7 +3121,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+#line 3125 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
@@ -3078,7 +3132,7 @@ yyreduce:
args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 3136 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
@@ -3088,7 +3142,7 @@ yyreduce:
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3092 "engines/director/lingo/lingo-gr.cpp"
+#line 3146 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* cmdargs: '(' ')' */
@@ -3096,7 +3150,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3100 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -3105,7 +3159,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3109 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* frameargs: tFRAME expr */
@@ -3115,7 +3169,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3119 "engines/director/lingo/lingo-gr.cpp"
+#line 3173 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* frameargs: tMOVIE expr */
@@ -3126,7 +3180,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3130 "engines/director/lingo/lingo-gr.cpp"
+#line 3184 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -3137,7 +3191,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 3195 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* frameargs: expr tOF tMOVIE expr */
@@ -3148,7 +3202,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3152 "engines/director/lingo/lingo-gr.cpp"
+#line 3206 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3159,49 +3213,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3217 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3169 "engines/director/lingo/lingo-gr.cpp"
+#line 3223 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3175 "engines/director/lingo/lingo-gr.cpp"
+#line 3229 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3181 "engines/director/lingo/lingo-gr.cpp"
+#line 3235 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* asgn: tSET varorthe to expr '\n' */
#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3187 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* definevars: tGLOBAL idlist '\n' */
#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3193 "engines/director/lingo/lingo-gr.cpp"
+#line 3247 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* definevars: tPROPERTY idlist '\n' */
#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3199 "engines/director/lingo/lingo-gr.cpp"
+#line 3253 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* definevars: tINSTANCE idlist '\n' */
#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3205 "engines/director/lingo/lingo-gr.cpp"
+#line 3259 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* ifstmt: tIF expr tTHEN stmt */
@@ -3210,14 +3264,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
+#line 3268 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
#line 506 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3221 "engines/director/lingo/lingo-gr.cpp"
+#line 3275 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3228,7 +3282,7 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3232 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
@@ -3237,7 +3291,7 @@ yyreduce:
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-5].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3241 "engines/director/lingo/lingo-gr.cpp"
+#line 3295 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
@@ -3246,42 +3300,42 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3250 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
#line 524 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3257 "engines/director/lingo/lingo-gr.cpp"
+#line 3311 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
#line 528 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3318 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 530 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3271 "engines/director/lingo/lingo-gr.cpp"
+#line 3325 "engines/director/lingo/lingo-gr.cpp"
break;
case 154: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
#line 532 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3278 "engines/director/lingo/lingo-gr.cpp"
+#line 3332 "engines/director/lingo/lingo-gr.cpp"
break;
case 155: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
#line 534 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3285 "engines/director/lingo/lingo-gr.cpp"
+#line 3339 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* tell: tTELL expr tTO stmtoneliner */
@@ -3290,26 +3344,26 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3348 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
#line 542 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3301 "engines/director/lingo/lingo-gr.cpp"
+#line 3355 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* when: tWHEN ID tTHEN expr */
#line 546 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3307 "engines/director/lingo/lingo-gr.cpp"
+#line 3361 "engines/director/lingo/lingo-gr.cpp"
break;
case 159: /* stmtlist: %empty */
#line 548 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3313 "engines/director/lingo/lingo-gr.cpp"
+#line 3367 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* nonemptystmtlist: stmtlistline */
@@ -3320,7 +3374,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3324 "engines/director/lingo/lingo-gr.cpp"
+#line 3378 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
@@ -3330,19 +3384,19 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3334 "engines/director/lingo/lingo-gr.cpp"
+#line 3388 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* stmtlistline: '\n' */
#line 566 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+#line 3394 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* stmtlist_insideif: %empty */
#line 570 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3346 "engines/director/lingo/lingo-gr.cpp"
+#line 3400 "engines/director/lingo/lingo-gr.cpp"
break;
case 167: /* nonemptystmtlist_insideif: stmtlistline_insideif */
@@ -3353,7 +3407,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3357 "engines/director/lingo/lingo-gr.cpp"
+#line 3411 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
@@ -3363,623 +3417,638 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3367 "engines/director/lingo/lingo-gr.cpp"
+#line 3421 "engines/director/lingo/lingo-gr.cpp"
break;
case 169: /* stmtlistline_insideif: '\n' */
#line 588 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3373 "engines/director/lingo/lingo-gr.cpp"
+#line 3427 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* simpleexpr_nounarymath: tINT */
#line 595 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3379 "engines/director/lingo/lingo-gr.cpp"
+#line 3433 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* simpleexpr_nounarymath: tFLOAT */
#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3385 "engines/director/lingo/lingo-gr.cpp"
+#line 3439 "engines/director/lingo/lingo-gr.cpp"
break;
case 173: /* simpleexpr_nounarymath: tSYMBOL */
#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3391 "engines/director/lingo/lingo-gr.cpp"
+#line 3445 "engines/director/lingo/lingo-gr.cpp"
break;
case 174: /* simpleexpr_nounarymath: tSTRING */
#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* simpleexpr_nounarymath: tNOT simpleexpr */
#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3457 "engines/director/lingo/lingo-gr.cpp"
break;
case 176: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3463 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* simpleexpr_nounarymath: '(' expr ')' */
#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3469 "engines/director/lingo/lingo-gr.cpp"
break;
case 183: /* var: ID */
#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3421 "engines/director/lingo/lingo-gr.cpp"
+#line 3475 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* chunk: tFIELD simpleexpr */
+ case 188: /* chunk: tFIELD refargs */
#line 619 "engines/director/lingo/lingo-gr.y"
- {
- NodeList *args = new NodeList;
- args->push_back((yyvsp[0].node));
- (yyval.node) = new FuncNode(new Common::String("field"), args); }
-#line 3430 "engines/director/lingo/lingo-gr.cpp"
+ { (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
+#line 3481 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* chunk: tCAST simpleexpr */
-#line 623 "engines/director/lingo/lingo-gr.y"
- {
- NodeList *args = new NodeList;
- args->push_back((yyvsp[0].node));
- (yyval.node) = new FuncNode(new Common::String("cast"), args); }
-#line 3439 "engines/director/lingo/lingo-gr.cpp"
+ case 189: /* chunk: tCAST refargs */
+#line 620 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
+#line 3487 "engines/director/lingo/lingo-gr.cpp"
break;
case 190: /* chunk: tCHAR expr tOF simpleexpr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+#line 621 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3446 "engines/director/lingo/lingo-gr.cpp"
+#line 3494 "engines/director/lingo/lingo-gr.cpp"
break;
case 191: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+#line 623 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3453 "engines/director/lingo/lingo-gr.cpp"
+#line 3501 "engines/director/lingo/lingo-gr.cpp"
break;
case 192: /* chunk: tWORD expr tOF simpleexpr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+#line 625 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3460 "engines/director/lingo/lingo-gr.cpp"
+#line 3508 "engines/director/lingo/lingo-gr.cpp"
break;
case 193: /* chunk: tWORD expr tTO expr tOF simpleexpr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+#line 627 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3467 "engines/director/lingo/lingo-gr.cpp"
+#line 3515 "engines/director/lingo/lingo-gr.cpp"
break;
case 194: /* chunk: tITEM expr tOF simpleexpr */
-#line 635 "engines/director/lingo/lingo-gr.y"
+#line 629 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3474 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
break;
case 195: /* chunk: tITEM expr tTO expr tOF simpleexpr */
-#line 637 "engines/director/lingo/lingo-gr.y"
+#line 631 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3481 "engines/director/lingo/lingo-gr.cpp"
+#line 3529 "engines/director/lingo/lingo-gr.cpp"
break;
case 196: /* chunk: tLINE expr tOF simpleexpr */
-#line 639 "engines/director/lingo/lingo-gr.y"
+#line 633 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3488 "engines/director/lingo/lingo-gr.cpp"
+#line 3536 "engines/director/lingo/lingo-gr.cpp"
break;
case 197: /* chunk: tLINE expr tTO expr tOF simpleexpr */
-#line 641 "engines/director/lingo/lingo-gr.y"
+#line 635 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3495 "engines/director/lingo/lingo-gr.cpp"
+#line 3543 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* object: tSCRIPT simpleexpr */
-#line 645 "engines/director/lingo/lingo-gr.y"
- {
- NodeList *args = new NodeList;
- args->push_back((yyvsp[0].node));
- (yyval.node) = new FuncNode(new Common::String("script"), args); }
-#line 3504 "engines/director/lingo/lingo-gr.cpp"
+ case 198: /* object: tSCRIPT refargs */
+#line 639 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
+#line 3549 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* object: tWINDOW simpleexpr */
-#line 649 "engines/director/lingo/lingo-gr.y"
- {
+ case 199: /* object: tWINDOW refargs */
+#line 640 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
+#line 3555 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 200: /* refargs: simpleexpr */
+#line 643 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `ref arg` and `ref(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
- (yyval.node) = new FuncNode(new Common::String("window"), args); }
-#line 3513 "engines/director/lingo/lingo-gr.cpp"
+ (yyval.nodelist) = args; }
+#line 3565 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 658 "engines/director/lingo/lingo-gr.y"
+ case 201: /* refargs: '(' ')' */
+#line 648 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `ref()`
+ (yyval.nodelist) = new NodeList; }
+#line 3573 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 202: /* refargs: '(' expr ',' nonemptyexprlist ')' */
+#line 651 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `ref(args, ...)`
+ (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
+ (yyval.nodelist) = (yyvsp[-1].nodelist); }
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 206: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3519 "engines/director/lingo/lingo-gr.cpp"
+#line 3588 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 209: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 665 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3525 "engines/director/lingo/lingo-gr.cpp"
+#line 3594 "engines/director/lingo/lingo-gr.cpp"
break;
- case 207: /* theobj: tSOUND simpleexpr */
-#line 664 "engines/director/lingo/lingo-gr.y"
+ case 210: /* theobj: tSOUND simpleexpr */
+#line 666 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3531 "engines/director/lingo/lingo-gr.cpp"
+#line 3600 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* theobj: tSPRITE simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 211: /* theobj: tSPRITE simpleexpr */
+#line 667 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3537 "engines/director/lingo/lingo-gr.cpp"
+#line 3606 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* menu: tMENU simpleexpr */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 212: /* menu: tMENU simpleexpr */
+#line 670 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3543 "engines/director/lingo/lingo-gr.cpp"
+#line 3612 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* writablethe: tTHE ID */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 213: /* writablethe: tTHE ID */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3549 "engines/director/lingo/lingo-gr.cpp"
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* writablethe: tTHE ID tOF theobj */
-#line 671 "engines/director/lingo/lingo-gr.y"
+ case 214: /* writablethe: tTHE ID tOF theobj */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3555 "engines/director/lingo/lingo-gr.cpp"
+#line 3624 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 215: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3561 "engines/director/lingo/lingo-gr.cpp"
+#line 3630 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 216: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3567 "engines/director/lingo/lingo-gr.cpp"
+#line 3636 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 217: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3573 "engines/director/lingo/lingo-gr.cpp"
+#line 3642 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* thedatetime: tTHE tABBREV tDATE */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 218: /* thedatetime: tTHE tABBREV tDATE */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3579 "engines/director/lingo/lingo-gr.cpp"
+#line 3648 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* thedatetime: tTHE tABBREV tTIME */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 219: /* thedatetime: tTHE tABBREV tTIME */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3585 "engines/director/lingo/lingo-gr.cpp"
+#line 3654 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* thedatetime: tTHE tABBR tDATE */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 220: /* thedatetime: tTHE tABBR tDATE */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3591 "engines/director/lingo/lingo-gr.cpp"
+#line 3660 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* thedatetime: tTHE tABBR tTIME */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thedatetime: tTHE tABBR tTIME */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3666 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* thedatetime: tTHE tLONG tDATE */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thedatetime: tTHE tLONG tDATE */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3603 "engines/director/lingo/lingo-gr.cpp"
+#line 3672 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* thedatetime: tTHE tLONG tTIME */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thedatetime: tTHE tLONG tTIME */
+#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3609 "engines/director/lingo/lingo-gr.cpp"
+#line 3678 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* thedatetime: tTHE tSHORT tDATE */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thedatetime: tTHE tSHORT tDATE */
+#line 685 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3615 "engines/director/lingo/lingo-gr.cpp"
+#line 3684 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* thedatetime: tTHE tSHORT tTIME */
-#line 684 "engines/director/lingo/lingo-gr.y"
+ case 225: /* thedatetime: tTHE tSHORT tTIME */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3621 "engines/director/lingo/lingo-gr.cpp"
+#line 3690 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 226: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3696 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 689 "engines/director/lingo/lingo-gr.y"
+ case 227: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3633 "engines/director/lingo/lingo-gr.cpp"
+#line 3702 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 690 "engines/director/lingo/lingo-gr.y"
+ case 228: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3708 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 229: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3714 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 230: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3651 "engines/director/lingo/lingo-gr.cpp"
+#line 3720 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* chunktype: tCHAR */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 231: /* chunktype: tCHAR */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3726 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* chunktype: tWORD */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 232: /* chunktype: tWORD */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3663 "engines/director/lingo/lingo-gr.cpp"
+#line 3732 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* chunktype: tITEM */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 233: /* chunktype: tITEM */
+#line 699 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3669 "engines/director/lingo/lingo-gr.cpp"
+#line 3738 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* chunktype: tLINE */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 234: /* chunktype: tLINE */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3675 "engines/director/lingo/lingo-gr.cpp"
+#line 3744 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* list: '[' exprlist ']' */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 237: /* list: '[' exprlist ']' */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3681 "engines/director/lingo/lingo-gr.cpp"
+#line 3750 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* list: '[' ':' ']' */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 238: /* list: '[' ':' ']' */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3687 "engines/director/lingo/lingo-gr.cpp"
+#line 3756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* list: '[' proplist ']' */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 239: /* list: '[' proplist ']' */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3693 "engines/director/lingo/lingo-gr.cpp"
+#line 3762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* proplist: proppair */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 240: /* proplist: proppair */
+#line 710 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3702 "engines/director/lingo/lingo-gr.cpp"
+#line 3771 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* proplist: proplist ',' proppair */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 241: /* proplist: proplist ',' proppair */
+#line 714 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3710 "engines/director/lingo/lingo-gr.cpp"
+#line 3779 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* proppair: tSYMBOL ':' expr */
-#line 717 "engines/director/lingo/lingo-gr.y"
+ case 242: /* proppair: tSYMBOL ':' expr */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3716 "engines/director/lingo/lingo-gr.cpp"
+#line 3785 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* proppair: ID ':' expr */
-#line 718 "engines/director/lingo/lingo-gr.y"
+ case 243: /* proppair: ID ':' expr */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3722 "engines/director/lingo/lingo-gr.cpp"
+#line 3791 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* proppair: tSTRING ':' expr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 244: /* proppair: tSTRING ':' expr */
+#line 721 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3728 "engines/director/lingo/lingo-gr.cpp"
+#line 3797 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* unarymath: '+' simpleexpr */
-#line 722 "engines/director/lingo/lingo-gr.y"
+ case 245: /* unarymath: '+' simpleexpr */
+#line 724 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3734 "engines/director/lingo/lingo-gr.cpp"
+#line 3803 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* unarymath: '-' simpleexpr */
-#line 723 "engines/director/lingo/lingo-gr.y"
+ case 246: /* unarymath: '-' simpleexpr */
+#line 725 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3740 "engines/director/lingo/lingo-gr.cpp"
+#line 3809 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* expr: expr '+' expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 251: /* expr: expr '+' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3746 "engines/director/lingo/lingo-gr.cpp"
+#line 3815 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* expr: expr '-' expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 252: /* expr: expr '-' expr */
+#line 736 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3752 "engines/director/lingo/lingo-gr.cpp"
+#line 3821 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* expr: expr '*' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 253: /* expr: expr '*' expr */
+#line 737 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3758 "engines/director/lingo/lingo-gr.cpp"
+#line 3827 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr: expr '/' expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 254: /* expr: expr '/' expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3764 "engines/director/lingo/lingo-gr.cpp"
+#line 3833 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr: expr tMOD expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 255: /* expr: expr tMOD expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3770 "engines/director/lingo/lingo-gr.cpp"
+#line 3839 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* expr: expr '>' expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr: expr '>' expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3776 "engines/director/lingo/lingo-gr.cpp"
+#line 3845 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* expr: expr '<' expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr: expr '<' expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3782 "engines/director/lingo/lingo-gr.cpp"
+#line 3851 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* expr: expr tEQ expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr: expr tEQ expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3788 "engines/director/lingo/lingo-gr.cpp"
+#line 3857 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr: expr tNEQ expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr: expr tNEQ expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3794 "engines/director/lingo/lingo-gr.cpp"
+#line 3863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr: expr tGE expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr: expr tGE expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3800 "engines/director/lingo/lingo-gr.cpp"
+#line 3869 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr: expr tLE expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr: expr tLE expr */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3806 "engines/director/lingo/lingo-gr.cpp"
+#line 3875 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr: expr tAND expr */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr: expr tAND expr */
+#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3812 "engines/director/lingo/lingo-gr.cpp"
+#line 3881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr: expr tOR expr */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr: expr tOR expr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3818 "engines/director/lingo/lingo-gr.cpp"
+#line 3887 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr: expr '&' expr */
-#line 746 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr: expr '&' expr */
+#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3824 "engines/director/lingo/lingo-gr.cpp"
+#line 3893 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr: expr tCONCAT expr */
-#line 747 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr: expr tCONCAT expr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3830 "engines/director/lingo/lingo-gr.cpp"
+#line 3899 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr: expr tCONTAINS expr */
-#line 748 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr: expr tCONTAINS expr */
+#line 750 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3836 "engines/director/lingo/lingo-gr.cpp"
+#line 3905 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr: expr tSTARTS expr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr: expr tSTARTS expr */
+#line 751 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3842 "engines/director/lingo/lingo-gr.cpp"
+#line 3911 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 758 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3848 "engines/director/lingo/lingo-gr.cpp"
+#line 3917 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 759 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3854 "engines/director/lingo/lingo-gr.cpp"
+#line 3923 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 760 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3860 "engines/director/lingo/lingo-gr.cpp"
+#line 3929 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 761 "engines/director/lingo/lingo-gr.y"
+ case 273: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3866 "engines/director/lingo/lingo-gr.cpp"
+#line 3935 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 762 "engines/director/lingo/lingo-gr.y"
+ case 274: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3872 "engines/director/lingo/lingo-gr.cpp"
+#line 3941 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 763 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3878 "engines/director/lingo/lingo-gr.cpp"
+#line 3947 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 764 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3884 "engines/director/lingo/lingo-gr.cpp"
+#line 3953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3890 "engines/director/lingo/lingo-gr.cpp"
+#line 3959 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 766 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3896 "engines/director/lingo/lingo-gr.cpp"
+#line 3965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 767 "engines/director/lingo/lingo-gr.y"
+ case 279: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3902 "engines/director/lingo/lingo-gr.cpp"
+#line 3971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 768 "engines/director/lingo/lingo-gr.y"
+ case 280: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3908 "engines/director/lingo/lingo-gr.cpp"
+#line 3977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 769 "engines/director/lingo/lingo-gr.y"
+ case 281: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3914 "engines/director/lingo/lingo-gr.cpp"
+#line 3983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 279: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 770 "engines/director/lingo/lingo-gr.y"
+ case 282: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 772 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3920 "engines/director/lingo/lingo-gr.cpp"
+#line 3989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 280: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 771 "engines/director/lingo/lingo-gr.y"
+ case 283: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 773 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3926 "engines/director/lingo/lingo-gr.cpp"
+#line 3995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 281: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 772 "engines/director/lingo/lingo-gr.y"
+ case 284: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3932 "engines/director/lingo/lingo-gr.cpp"
+#line 4001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 282: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 773 "engines/director/lingo/lingo-gr.y"
+ case 285: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 775 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3938 "engines/director/lingo/lingo-gr.cpp"
+#line 4007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 283: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 774 "engines/director/lingo/lingo-gr.y"
+ case 286: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 776 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3944 "engines/director/lingo/lingo-gr.cpp"
+#line 4013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 284: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 777 "engines/director/lingo/lingo-gr.y"
+ case 287: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 779 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3950 "engines/director/lingo/lingo-gr.cpp"
+#line 4019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 285: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 778 "engines/director/lingo/lingo-gr.y"
+ case 288: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 780 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3956 "engines/director/lingo/lingo-gr.cpp"
+#line 4025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 286: /* exprlist: %empty */
-#line 781 "engines/director/lingo/lingo-gr.y"
+ case 289: /* exprlist: %empty */
+#line 783 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3962 "engines/director/lingo/lingo-gr.cpp"
+#line 4031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 288: /* nonemptyexprlist: expr */
-#line 785 "engines/director/lingo/lingo-gr.y"
+ case 291: /* nonemptyexprlist: expr */
+#line 787 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3971 "engines/director/lingo/lingo-gr.cpp"
+#line 4040 "engines/director/lingo/lingo-gr.cpp"
break;
- case 289: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 789 "engines/director/lingo/lingo-gr.y"
+ case 292: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 791 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3979 "engines/director/lingo/lingo-gr.cpp"
+#line 4048 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3983 "engines/director/lingo/lingo-gr.cpp"
+#line 4052 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4178,7 +4247,7 @@ yyreturn:
return yyresult;
}
-#line 794 "engines/director/lingo/lingo-gr.y"
+#line 796 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index f7fa71b5e9..84ba87e555 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -175,7 +175,7 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
%type<node> the writablethe theobj menu thedatetime thenumberof
%type<node> list proppair
%type<node> chunk object
-%type<nodelist> proplist exprlist nonemptyexprlist
+%type<nodelist> refargs proplist exprlist nonemptyexprlist
%left tAND tOR
%left '<' tLE '>' tGE tEQ tNEQ tCONTAINS tSTARTS
@@ -616,14 +616,8 @@ varorthe: var
| writablethe
;
-chunk: tFIELD simpleexpr[arg] {
- NodeList *args = new NodeList;
- args->push_back($arg);
- $$ = new FuncNode(new Common::String("field"), args); }
- | tCAST simpleexpr[arg] {
- NodeList *args = new NodeList;
- args->push_back($arg);
- $$ = new FuncNode(new Common::String("cast"), args); }
+chunk: tFIELD refargs { $$ = new FuncNode(new Common::String("field"), $refargs); }
+ | tCAST refargs { $$ = new FuncNode(new Common::String("cast"), $refargs); }
| tCHAR expr[idx] tOF simpleexpr[src] {
$$ = new ChunkExprNode(kChunkChar, $idx, nullptr, $src); }
| tCHAR expr[start] tTO expr[end] tOF simpleexpr[src] {
@@ -642,14 +636,22 @@ chunk: tFIELD simpleexpr[arg] {
$$ = new ChunkExprNode(kChunkLine, $start, $end, $src); }
;
-object: tSCRIPT simpleexpr[arg] {
- NodeList *args = new NodeList;
- args->push_back($arg);
- $$ = new FuncNode(new Common::String("script"), args); }
- | tWINDOW simpleexpr[arg] {
+object: tSCRIPT refargs { $$ = new FuncNode(new Common::String("script"), $refargs); }
+ | tWINDOW refargs { $$ = new FuncNode(new Common::String("window"), $refargs); }
+ ;
+
+refargs: simpleexpr {
+ // This matches `ref arg` and `ref(arg)`
NodeList *args = new NodeList;
- args->push_back($arg);
- $$ = new FuncNode(new Common::String("window"), args); }
+ args->push_back($simpleexpr);
+ $$ = args; }
+ | '(' ')' {
+ // This matches `ref()`
+ $$ = new NodeList; }
+ | '(' expr ',' nonemptyexprlist[args] ')' {
+ // This matches `ref(args, ...)`
+ $args->insert_at(0, $expr);
+ $$ = $args; }
;
the: writablethe
Commit: 2aa766754fc86494d2304cefd658384a4e75aabd
https://github.com/scummvm/scummvm/commit/2aa766754fc86494d2304cefd658384a4e75aabd
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Make getObjectProp use stack
LC::call only pushes a stack frame and may not evaluate until later, so
we can't immediately pop its return value. This avoids that issue.
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 03b9bcac3c..e28c72fded 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -549,7 +549,7 @@ void LC::cb_objectfieldpush() {
int fieldNameId = g_lingo->readInt();
Common::String fieldName = g_lingo->_currentArchive->getName(fieldNameId);
Datum object = g_lingo->pop();
- g_lingo->push(g_lingo->getObjectProp(object, fieldName));
+ g_lingo->getObjectProp(object, fieldName);
}
void LC::cb_varrefpush() {
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 2b590e6ccd..e8c7dd2d2d 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -565,7 +565,7 @@ void LC::c_objectproppush() {
Datum obj = g_lingo->pop();
Common::String propName = g_lingo->readString();
- g_lingo->push(g_lingo->getObjectProp(obj, propName));
+ g_lingo->getObjectProp(obj, propName);
}
void LC::c_objectpropassign() {
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 85de260f80..b65bce59fe 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1595,25 +1595,31 @@ void Lingo::setTheField(Datum &id1, int field, Datum &d) {
member->setField(field, d);
}
-Datum Lingo::getObjectProp(Datum &obj, Common::String &propName) {
+void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
Datum d;
if (obj.type == OBJECT) {
if (obj.u.obj->hasProp(propName)) {
- return obj.u.obj->getProp(propName);
+ d = obj.u.obj->getProp(propName);
} else {
warning("Lingo::getObjectProp: Object <%s> has no property '%s'", obj.asString(true).c_str(), propName.c_str());
}
- } else if (obj.type == PARRAY) {
+ g_lingo->push(d);
+ return;
+ }
+ if (obj.type == PARRAY) {
int index = LC::compareArrays(LC::eqData, obj, propName, true).u.i;
if (index > 0) {
d = obj.u.parr->operator[](index - 1).v;
}
- return d;
- } else if (obj.type == CASTREF) {
+ g_lingo->push(d);
+ return;
+ }
+ if (obj.type == CASTREF) {
Movie *movie = _vm->getCurrentMovie();
if (!movie) {
warning("Lingo::getObjectProp(): No movie loaded");
- return d;
+ g_lingo->push(d);
+ return;
}
int id = obj.u.i;
@@ -1624,22 +1630,25 @@ Datum Lingo::getObjectProp(Datum &obj, Common::String &propName) {
} else {
warning("Lingo::getObjectProp(): CastMember %d not found", id);
}
- return d;
+ g_lingo->push(d);
+ return;
}
if (member->hasProp(propName)) {
- return member->getProp(propName);
+ d = member->getProp(propName);
} else {
warning("Lingo::getObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
}
- } else if (_builtinFuncs.contains(propName) && _builtinFuncs[propName].nargs == 1) {
+ g_lingo->push(d);
+ return;
+ }
+ if (_builtinFuncs.contains(propName) && _builtinFuncs[propName].nargs == 1) {
push(obj);
LC::call(_builtinFuncs[propName], 1, true);
- d = pop();
- } else {
- warning("Lingo::getObjectProp: Invalid object: %s", obj.asString(true).c_str());
+ return;
}
- return d;
+ warning("Lingo::getObjectProp: Invalid object: %s", obj.asString(true).c_str());
+ g_lingo->push(d);
}
void Lingo::setObjectProp(Datum &obj, Common::String &propName, Datum &val) {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 13b71e2fe8..e3a031959c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -336,7 +336,7 @@ public:
void setTheCast(Datum &id, int field, Datum &d);
Datum getTheField(Datum &id1, int field);
void setTheField(Datum &id1, int field, Datum &d);
- Datum getObjectProp(Datum &obj, Common::String &propName);
+ void getObjectProp(Datum &obj, Common::String &propName);
void setObjectProp(Datum &obj, Common::String &propName, Datum &d);
Datum getTheDate(int field);
Datum getTheTime(int field);
Commit: 8f836f321c5e44caa04669795c33af61778311c6
https://github.com/scummvm/scummvm/commit/8f836f321c5e44caa04669795c33af61778311c6
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: Don't load shared cast twice
If the a shared cast was loaded with --start-movie, it was being
loaded twice. Since I meade the Lingo compiler complain if
factories are redefined, this was causing buildbot failures.
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 57972c0c31..2abdd0314a 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -71,7 +71,9 @@ Common::Error Window::loadInitialMovie() {
_currentMovie = new Movie(this);
_currentPath = getPath(movie, _currentPath);
- _currentMovie->loadSharedCastsFrom(_currentPath + g_director->_sharedCastFile);
+ Common::String sharedCastPath = _currentPath + g_director->_sharedCastFile;
+ if (sharedCastPath != movie)
+ _currentMovie->loadSharedCastsFrom(sharedCastPath);
_currentMovie->setArchive(_mainArchive);
return Common::kNoError;
Commit: d9877305e79e3669524ca9b8e11cb53df632ad2e
https://github.com/scummvm/scummvm/commit/d9877305e79e3669524ca9b8e11cb53df632ad2e
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix varFetch warnings
Changed paths:
engines/director/lingo/lingo.cpp
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index d47f197677..364e9f6caf 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -1249,7 +1249,7 @@ Datum Lingo::varFetch(const Datum &var, DatumHash *localvars, bool silent) {
if (_globalvars.contains(name)) {
return _globalvars[name];
}
- warning("varAssign: global variable %s not defined", name.c_str());
+ warning("varFetch: global variable %s not defined", name.c_str());
return result;
}
break;
@@ -1259,7 +1259,7 @@ Datum Lingo::varFetch(const Datum &var, DatumHash *localvars, bool silent) {
if (localvars && localvars->contains(name)) {
return (*localvars)[name];
}
- warning("varAssign: local variable %s not defined", name.c_str());
+ warning("varFetch: local variable %s not defined", name.c_str());
return result;
}
break;
@@ -1269,7 +1269,7 @@ Datum Lingo::varFetch(const Datum &var, DatumHash *localvars, bool silent) {
if (_currentMe.type == OBJECT && _currentMe.u.obj->hasProp(name)) {
return _currentMe.u.obj->getProp(name);
}
- warning("varAssign: property %s not defined", name.c_str());
+ warning("varFetch: property %s not defined", name.c_str());
return result;
}
break;
Commit: e38939fe4aad09be48772fbc08c38b144d9f7a55
https://github.com/scummvm/scummvm/commit/e38939fe4aad09be48772fbc08c38b144d9f7a55
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Fix D2-3 cast numbers
Changed paths:
engines/director/lingo/lingo-codegen.cpp
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index ca8774c5e0..286e4c6299 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -1051,6 +1051,14 @@ bool LingoCompiler::visitFuncNode(FuncNode *node) {
/* VarNode */
bool LingoCompiler::visitVarNode(VarNode *node) {
+ if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
+ int val = castNumToNum(node->name->c_str());
+ if (val != -1) {
+ code1(LC::c_intpush);
+ codeInt(val);
+ return true;
+ }
+ }
if (_refMode) {
codeVarRef(*node->name);
return true;
@@ -1060,14 +1068,6 @@ bool LingoCompiler::visitVarNode(VarNode *node) {
codeString(node->name->c_str());
return true;
}
- if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
- int val = castNumToNum(node->name->c_str());
- if (val != -1) {
- code1(LC::c_intpush);
- codeInt(val);
- return true;
- }
- }
codeVarGet(*node->name);
return true;
}
Commit: 8abdb0df16d679cf122b219ad53a0939b2061bda
https://github.com/scummvm/scummvm/commit/8abdb0df16d679cf122b219ad53a0939b2061bda
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Allow missing end if
It just outputs a warning instead of failing now.
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index aeeff82866..7fa5499a95 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -285,40 +285,41 @@ enum yysymbol_kind_t
YYSYMBOL_definevars = 129, /* definevars */
YYSYMBOL_ifstmt = 130, /* ifstmt */
YYSYMBOL_ifelsestmt = 131, /* ifelsestmt */
- YYSYMBOL_loop = 132, /* loop */
- YYSYMBOL_tell = 133, /* tell */
- YYSYMBOL_when = 134, /* when */
- YYSYMBOL_stmtlist = 135, /* stmtlist */
- YYSYMBOL_nonemptystmtlist = 136, /* nonemptystmtlist */
- YYSYMBOL_stmtlistline = 137, /* stmtlistline */
- YYSYMBOL_stmtlist_insideif = 138, /* stmtlist_insideif */
- YYSYMBOL_nonemptystmtlist_insideif = 139, /* nonemptystmtlist_insideif */
- YYSYMBOL_stmtlistline_insideif = 140, /* stmtlistline_insideif */
- YYSYMBOL_simpleexpr_nounarymath = 141, /* simpleexpr_nounarymath */
- YYSYMBOL_var = 142, /* var */
- YYSYMBOL_varorchunk = 143, /* varorchunk */
- YYSYMBOL_varorthe = 144, /* varorthe */
- YYSYMBOL_chunk = 145, /* chunk */
- YYSYMBOL_object = 146, /* object */
- YYSYMBOL_refargs = 147, /* refargs */
- YYSYMBOL_the = 148, /* the */
- YYSYMBOL_theobj = 149, /* theobj */
- YYSYMBOL_menu = 150, /* menu */
- YYSYMBOL_writablethe = 151, /* writablethe */
- YYSYMBOL_thedatetime = 152, /* thedatetime */
- YYSYMBOL_thenumberof = 153, /* thenumberof */
- YYSYMBOL_chunktype = 154, /* chunktype */
- YYSYMBOL_inof = 155, /* inof */
- YYSYMBOL_list = 156, /* list */
- YYSYMBOL_proplist = 157, /* proplist */
- YYSYMBOL_proppair = 158, /* proppair */
- YYSYMBOL_unarymath = 159, /* unarymath */
- YYSYMBOL_simpleexpr = 160, /* simpleexpr */
- YYSYMBOL_expr = 161, /* expr */
- YYSYMBOL_expr_nounarymath = 162, /* expr_nounarymath */
- YYSYMBOL_sprite = 163, /* sprite */
- YYSYMBOL_exprlist = 164, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 165 /* nonemptyexprlist */
+ YYSYMBOL_endif = 132, /* endif */
+ YYSYMBOL_loop = 133, /* loop */
+ YYSYMBOL_tell = 134, /* tell */
+ YYSYMBOL_when = 135, /* when */
+ YYSYMBOL_stmtlist = 136, /* stmtlist */
+ YYSYMBOL_nonemptystmtlist = 137, /* nonemptystmtlist */
+ YYSYMBOL_stmtlistline = 138, /* stmtlistline */
+ YYSYMBOL_stmtlist_insideif = 139, /* stmtlist_insideif */
+ YYSYMBOL_nonemptystmtlist_insideif = 140, /* nonemptystmtlist_insideif */
+ YYSYMBOL_stmtlistline_insideif = 141, /* stmtlistline_insideif */
+ YYSYMBOL_simpleexpr_nounarymath = 142, /* simpleexpr_nounarymath */
+ YYSYMBOL_var = 143, /* var */
+ YYSYMBOL_varorchunk = 144, /* varorchunk */
+ YYSYMBOL_varorthe = 145, /* varorthe */
+ YYSYMBOL_chunk = 146, /* chunk */
+ YYSYMBOL_object = 147, /* object */
+ YYSYMBOL_refargs = 148, /* refargs */
+ YYSYMBOL_the = 149, /* the */
+ YYSYMBOL_theobj = 150, /* theobj */
+ YYSYMBOL_menu = 151, /* menu */
+ YYSYMBOL_writablethe = 152, /* writablethe */
+ YYSYMBOL_thedatetime = 153, /* thedatetime */
+ YYSYMBOL_thenumberof = 154, /* thenumberof */
+ YYSYMBOL_chunktype = 155, /* chunktype */
+ YYSYMBOL_inof = 156, /* inof */
+ YYSYMBOL_list = 157, /* list */
+ YYSYMBOL_proplist = 158, /* proplist */
+ YYSYMBOL_proppair = 159, /* proppair */
+ YYSYMBOL_unarymath = 160, /* unarymath */
+ YYSYMBOL_simpleexpr = 161, /* simpleexpr */
+ YYSYMBOL_expr = 162, /* expr */
+ YYSYMBOL_expr_nounarymath = 163, /* expr_nounarymath */
+ YYSYMBOL_sprite = 164, /* sprite */
+ YYSYMBOL_exprlist = 165, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 166 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -640,16 +641,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3990
+#define YYLAST 4008
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 62
+#define YYNNTS 63
/* YYNRULES -- Number of rules. */
-#define YYNRULES 292
+#define YYNRULES 294
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 539
+#define YYNSTATES 538
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -722,21 +723,21 @@ static const yytype_int16 yyrline[] =
415, 416, 417, 420, 423, 428, 432, 438, 443, 446,
452, 452, 458, 463, 469, 475, 481, 489, 490, 491,
492, 495, 495, 497, 498, 499, 502, 506, 510, 516,
- 520, 524, 528, 530, 532, 534, 538, 542, 546, 548,
- 549, 553, 559, 566, 567, 570, 571, 575, 581, 588,
- 589, 595, 596, 597, 598, 599, 600, 601, 602, 603,
- 604, 605, 606, 609, 611, 612, 615, 616, 619, 620,
- 621, 623, 625, 627, 629, 631, 633, 635, 639, 640,
- 643, 648, 651, 657, 658, 659, 660, 663, 664, 665,
- 666, 667, 670, 672, 673, 674, 677, 678, 679, 680,
- 681, 682, 683, 684, 685, 686, 690, 691, 692, 693,
- 694, 697, 698, 699, 700, 703, 703, 705, 706, 707,
- 710, 714, 719, 720, 721, 724, 725, 728, 729, 733,
- 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
- 744, 745, 746, 747, 748, 749, 750, 751, 758, 759,
- 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
- 770, 771, 772, 773, 774, 775, 776, 779, 780, 783,
- 784, 787, 791
+ 520, 524, 528, 529, 531, 533, 535, 537, 541, 545,
+ 549, 551, 552, 556, 562, 569, 570, 573, 574, 578,
+ 584, 591, 592, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 612, 614, 615, 618, 619,
+ 622, 623, 624, 626, 628, 630, 632, 634, 636, 638,
+ 642, 643, 646, 651, 654, 660, 661, 662, 663, 666,
+ 667, 668, 669, 670, 673, 675, 676, 677, 680, 681,
+ 682, 683, 684, 685, 686, 687, 688, 689, 693, 694,
+ 695, 696, 697, 700, 701, 702, 703, 706, 706, 708,
+ 709, 710, 713, 717, 722, 723, 724, 727, 728, 731,
+ 732, 736, 737, 738, 739, 740, 741, 742, 743, 744,
+ 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
+ 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
+ 771, 772, 773, 774, 775, 776, 777, 778, 779, 782,
+ 783, 786, 787, 790, 794
};
#endif
@@ -772,14 +773,14 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"nonemptymethodlist", "methodlistline", "handler", "endargdef", "CMDID",
"ID", "idlist", "nonemptyidlist", "stmt", "stmt_insideif",
"stmtoneliner", "proc", "cmdargs", "trailingcomma", "frameargs", "asgn",
- "to", "definevars", "ifstmt", "ifelsestmt", "loop", "tell", "when",
- "stmtlist", "nonemptystmtlist", "stmtlistline", "stmtlist_insideif",
- "nonemptystmtlist_insideif", "stmtlistline_insideif",
- "simpleexpr_nounarymath", "var", "varorchunk", "varorthe", "chunk",
- "object", "refargs", "the", "theobj", "menu", "writablethe",
- "thedatetime", "thenumberof", "chunktype", "inof", "list", "proplist",
- "proppair", "unarymath", "simpleexpr", "expr", "expr_nounarymath",
- "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "to", "definevars", "ifstmt", "ifelsestmt", "endif", "loop", "tell",
+ "when", "stmtlist", "nonemptystmtlist", "stmtlistline",
+ "stmtlist_insideif", "nonemptystmtlist_insideif",
+ "stmtlistline_insideif", "simpleexpr_nounarymath", "var", "varorchunk",
+ "varorthe", "chunk", "object", "refargs", "the", "theobj", "menu",
+ "writablethe", "thedatetime", "thenumberof", "chunktype", "inof", "list",
+ "proplist", "proppair", "unarymath", "simpleexpr", "expr",
+ "expr_nounarymath", "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -804,7 +805,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-459)
+#define YYPACT_NINF (-483)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -818,60 +819,60 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2374, -459, -459, -459, -459, -459, -459, -16, -459, 2944,
- 1410, 1507, -459, -459, 2944, -459, 42, -459, -459, 1604,
- 59, 3023, -459, 2944, -459, -459, 2944, 1604, 1410, 2944,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, 1507, 2944, 2944, -12, 3338, -459, 111,
- 2374, -459, -459, -459, -459, 1604, -459, -459, -459, -459,
- -459, -459, -459, -459, -459, -459, -459, 29, -459, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, 30, 33, -459, -459, -459, -459, 1701,
- 1701, 1701, 1701, 1507, 1507, 1798, 1507, 1507, 1507, 1507,
- 3102, 1507, 1798, 1798, 1216, 632, 47, 51, 53, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- 731, -459, 1507, 3534, 2944, 57, 64, 828, 2944, 1507,
- 3181, -459, -459, -9, -459, 107, 65, 66, 925, 68,
- 69, 71, 3460, 72, 2944, -459, -459, -459, -459, 73,
- 1022, -459, -459, 2944, 1313, -459, -459, -459, -459, -459,
- 1119, 3869, -459, 418, 518, 540, 3393, -20, 41, 43,
- 44, 45, 84, 114, 116, 3815, -459, -459, -459, 3547,
- 49, 70, 54, -79, -23, -459, 3869, 75, 76, 1507,
- -459, -459, 145, 1507, 1507, 1507, 1507, 2089, 2089, 2283,
- 1507, 2186, 2186, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
- 1507, -459, -459, 3632, -459, 3619, 2454, 1507, 1507, 1507,
- 1507, 1507, 78, -459, -459, 3260, 3260, 3260, -11, 3645,
- 157, -459, -459, 1507, 1507, -66, -459, 1507, -459, -459,
- -459, 3338, 2534, -459, 90, -459, -459, -459, 3560, 162,
- 3882, 1798, 1507, 1798, 1507, 1798, 1507, 1798, 1507, -459,
- -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, 32, 1895, 1992, 1798, 1798, 1507, -459,
- 1507, 1507, -459, 1507, 2865, -459, -459, 1507, 91, 1507,
- 10, 10, 10, 10, 3895, 3895, -459, 14, 10, 10,
- 10, 10, 14, -26, -26, -459, -459, 92, 1507, 1507,
- 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
- 1507, 1507, 1507, 1507, 1507, 1507, -459, 2774, 176, 2534,
- -459, 96, -459, 97, 98, 1507, 1507, 2534, 1992, 3701,
- 3869, 2944, -459, -459, -459, -66, -459, 3714, -459, -459,
- -459, 109, 2534, -459, 2534, 1507, 1507, -459, 334, -459,
- 3406, -459, 3426, -459, 3480, -459, -459, 1798, 32, 32,
- 32, 32, 1798, 1798, 32, 1798, 1798, -459, -459, -459,
- -459, -459, -459, -72, 3869, 3869, 3869, 49, 70, 94,
- -459, 3869, -459, 3869, 1507, -459, 10, 10, 10, 10,
- 3895, 3895, -459, 14, 10, 10, 10, 10, 14, -26,
- -26, -459, -459, 92, -459, -459, -5, 2774, -459, 2614,
- -459, -459, -459, -459, 3727, -2, 112, -459, 2944, -459,
- -459, 102, -459, 190, 24, 3869, 1798, 1798, 1798, 1798,
- -459, 1798, 1798, 1798, 1798, -459, 173, 131, -459, -459,
- -459, -459, 2694, 108, -459, 2774, -459, 2534, 170, 1507,
- 113, 115, -459, 2944, -459, -459, -459, -459, -459, -459,
- -459, -459, -459, 135, 1798, -459, 2774, -459, -459, 123,
- 125, 1507, 3783, -459, 2534, 18, -459, 1798, 128, 118,
- 119, 3796, 2534, -459, -459, 2944, -459, 120, -459, -459,
- 2534, 133, -459, -459, 134, 121, 124, -459, -459
+ 2375, -483, -483, -483, -483, -483, -483, -16, -483, 2945,
+ 1411, 1508, -483, -483, 2945, -483, 5, -483, -483, 1605,
+ 59, 3024, -483, 2945, -483, -483, 2945, 1605, 1411, 2945,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, 1508, 2945, 2945, -71, 3339, -483, 38,
+ 2375, -483, -483, -483, -483, 1605, -483, -483, -483, -483,
+ -483, -483, -483, -483, -483, -483, -483, -24, -483, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, -12, 13, -483, -483, -483, -483, 1702,
+ 1702, 1702, 1702, 1508, 1508, 1799, 1508, 1508, 1508, 1508,
+ 3103, 1508, 1799, 1799, 1217, 633, 27, 30, 34, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ 732, -483, 1508, 3524, 2945, 35, 46, 829, 2945, 1508,
+ 3182, -483, -483, -9, -483, 108, 57, 60, 926, 62,
+ 66, 67, 419, 69, 2945, -483, -483, -483, -483, 74,
+ 1023, -483, -483, 2945, 1314, -483, -483, -483, -483, -483,
+ 1120, 3887, -483, 497, 519, 3394, 3416, -20, 41, 43,
+ 44, 45, 85, 117, 124, 3833, -483, -483, -483, 3556,
+ 53, 71, 70, -79, -23, -483, 3887, 73, 79, 1508,
+ -483, -483, 159, 1508, 1508, 1508, 1508, 2090, 2090, 2284,
+ 1508, 2187, 2187, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, -483, -483, 3650, -483, 3637, 2455, 1508, 1508, 1508,
+ 1508, 1508, 90, -483, -483, 3261, 3261, 3261, -11, 3663,
+ 160, -483, -483, 1508, 1508, -66, -483, 1508, -483, -483,
+ -483, 3339, 2535, -483, 93, -483, -483, -483, 3578, 165,
+ 3900, 1799, 1508, 1799, 1508, 1799, 1508, 1799, 1508, -483,
+ -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+ -483, -483, -483, 32, 1896, 1993, 1799, 1799, 1508, -483,
+ 1508, 1508, -483, 1508, 2866, -483, -483, 1508, 92, 1508,
+ 10, 10, 10, 10, 3913, 3913, -483, 14, 10, 10,
+ 10, 10, 14, -26, -26, -483, -483, 95, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, -483, 2775, 178, 2535,
+ -483, 98, -483, 99, 100, 1508, 1508, 2535, 1993, 3719,
+ 3887, 2945, -483, -483, -483, -66, -483, 3732, -483, -483,
+ -483, 111, 2535, -483, 2535, 1508, 1508, -483, 334, -483,
+ 3448, -483, 3470, -483, 3502, -483, -483, 1799, 32, 32,
+ 32, 32, 1799, 1799, 32, 1799, 1799, -483, -483, -483,
+ -483, -483, -483, 24, 3887, 3887, 3887, 53, 71, 96,
+ -483, 3887, -483, 3887, 1508, -483, 10, 10, 10, 10,
+ 3913, 3913, -483, 14, 10, 10, 10, 10, 14, -26,
+ -26, -483, -483, 95, -483, -483, -5, 2775, -483, 2615,
+ -483, -483, -483, -483, 3745, -2, 114, -483, 2945, -483,
+ -483, 104, -483, 192, 50, 3887, 1799, 1799, 1799, 1799,
+ -483, 1799, 1799, 1799, 1799, -483, 176, 134, -483, -483,
+ -483, -483, 2695, 109, -483, -483, 2775, -483, 2535, 174,
+ 1508, 113, 115, -483, 2945, -483, -483, -483, -483, -483,
+ -483, -483, -483, -483, 140, 1799, -483, 2775, -483, -483,
+ 128, 129, 1508, 3801, -483, 2535, 18, -483, 1799, 128,
+ -483, 119, 3814, 2535, -483, -483, 2945, -483, -483, -483,
+ 2535, 131, -483, 133, 121, 123, -483, -483
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -890,73 +891,73 @@ static const yytype_int16 yydefact[] =
109, 110, 103, 104, 105, 106, 107, 0, 121, 79,
78, 80, 82, 83, 84, 86, 53, 92, 59, 62,
93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
- 61, 77, 98, 0, 96, 171, 172, 174, 173, 31,
+ 61, 77, 98, 0, 96, 173, 174, 176, 175, 31,
37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
- 68, 65, 0, 0, 0, 289, 183, 0, 0, 247,
- 178, 179, 180, 181, 203, 204, 205, 182, 248, 249,
- 130, 250, 0, 0, 95, 0, 0, 130, 0, 0,
- 68, 183, 186, 0, 187, 0, 0, 0, 130, 0,
+ 68, 65, 0, 0, 0, 291, 185, 0, 0, 249,
+ 180, 181, 182, 183, 205, 206, 207, 184, 250, 251,
+ 130, 252, 0, 0, 95, 0, 0, 130, 0, 0,
+ 68, 185, 188, 0, 189, 0, 0, 0, 130, 0,
0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
- 130, 120, 143, 97, 0, 189, 200, 188, 198, 199,
- 132, 133, 175, 0, 0, 0, 0, 25, 26, 27,
- 47, 63, 44, 55, 213, 0, 245, 246, 128, 0,
- 174, 173, 0, 183, 0, 240, 291, 0, 290, 289,
+ 130, 120, 143, 97, 0, 191, 202, 190, 200, 201,
+ 132, 133, 177, 0, 0, 0, 0, 25, 26, 27,
+ 47, 63, 44, 55, 215, 0, 247, 248, 128, 0,
+ 176, 175, 0, 185, 0, 242, 293, 0, 292, 291,
113, 114, 56, 0, 0, 0, 0, 29, 57, 51,
0, 34, 66, 0, 0, 0, 0, 0, 0, 0,
- 131, 124, 268, 130, 269, 0, 0, 0, 0, 0,
+ 131, 124, 270, 130, 271, 0, 0, 0, 0, 0,
0, 0, 0, 119, 112, 41, 28, 30, 0, 0,
55, 141, 142, 0, 0, 13, 117, 73, 115, 116,
- 145, 0, 159, 144, 0, 111, 99, 201, 0, 56,
- 136, 0, 0, 0, 0, 0, 0, 0, 0, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 231,
- 233, 234, 232, 0, 0, 0, 0, 0, 0, 177,
- 0, 0, 238, 0, 0, 239, 237, 0, 0, 0,
- 260, 261, 258, 259, 262, 263, 255, 265, 266, 267,
- 257, 256, 264, 251, 252, 253, 254, 130, 0, 0,
+ 145, 0, 161, 144, 0, 111, 99, 203, 0, 56,
+ 136, 0, 0, 0, 0, 0, 0, 0, 0, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226, 227, 233,
+ 235, 236, 234, 0, 0, 0, 0, 0, 0, 179,
+ 0, 0, 240, 0, 0, 241, 239, 0, 0, 0,
+ 262, 263, 260, 261, 264, 265, 257, 267, 268, 269,
+ 259, 258, 266, 253, 254, 255, 256, 130, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 131, 126, 165, 146, 159,
- 184, 0, 185, 0, 0, 0, 0, 159, 0, 0,
- 158, 0, 17, 18, 11, 14, 15, 0, 156, 163,
- 164, 0, 160, 161, 159, 0, 0, 190, 0, 194,
- 0, 196, 0, 192, 0, 235, 236, 0, 33, 43,
- 46, 76, 48, 49, 50, 64, 65, 215, 208, 207,
- 214, 287, 288, 0, 244, 242, 243, 0, 0, 0,
- 241, 292, 176, 135, 131, 125, 279, 280, 277, 278,
- 281, 282, 274, 284, 285, 286, 276, 275, 283, 270,
- 271, 272, 273, 130, 169, 170, 0, 166, 167, 0,
+ 0, 0, 0, 0, 0, 131, 126, 167, 146, 161,
+ 186, 0, 187, 0, 0, 0, 0, 161, 0, 0,
+ 160, 0, 17, 18, 11, 14, 15, 0, 158, 165,
+ 166, 0, 162, 163, 161, 0, 0, 192, 0, 196,
+ 0, 198, 0, 194, 0, 237, 238, 0, 33, 43,
+ 46, 76, 48, 49, 50, 64, 65, 217, 210, 209,
+ 216, 289, 290, 0, 246, 244, 245, 0, 0, 0,
+ 243, 294, 178, 135, 131, 125, 281, 282, 279, 280,
+ 283, 284, 276, 286, 287, 288, 278, 277, 285, 272,
+ 273, 274, 275, 130, 171, 172, 152, 168, 169, 0,
10, 137, 138, 139, 0, 0, 0, 140, 95, 16,
- 118, 0, 162, 20, 0, 134, 0, 0, 0, 0,
- 206, 0, 0, 0, 0, 212, 0, 0, 210, 211,
- 129, 127, 0, 0, 168, 165, 148, 159, 0, 0,
- 0, 0, 157, 21, 202, 191, 195, 197, 193, 226,
- 228, 229, 227, 0, 0, 230, 165, 150, 147, 0,
- 0, 0, 0, 152, 159, 0, 22, 0, 0, 0,
- 0, 0, 159, 12, 19, 0, 209, 0, 149, 155,
- 159, 0, 23, 151, 0, 0, 0, 153, 154
+ 118, 0, 164, 20, 0, 134, 0, 0, 0, 0,
+ 208, 0, 0, 0, 0, 214, 0, 0, 212, 213,
+ 129, 127, 0, 0, 147, 170, 167, 148, 161, 0,
+ 0, 0, 0, 159, 21, 204, 193, 197, 199, 195,
+ 228, 230, 231, 229, 0, 0, 232, 167, 150, 153,
+ 152, 0, 0, 0, 154, 161, 0, 22, 0, 152,
+ 149, 0, 0, 161, 12, 19, 0, 211, 151, 157,
+ 161, 0, 23, 0, 0, 0, 155, 156
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -459, -459, -459, 152, -459, -459, -459, -459, -459, -152,
- -459, -459, 0, -7, -25, -459, 1, -349, -62, -459,
- 2, -240, 196, -459, -459, -459, -459, -459, -459, -459,
- -459, -350, -459, -156, -458, -459, -222, -104, -15, -157,
- -459, -219, -459, 38, -459, -78, -249, 208, -459, -459,
- -459, -266, -459, -459, -84, -459, 132, 55, 46, -96,
- 12, -230
+ -483, -483, -483, 151, -483, -483, -483, -483, -483, -153,
+ -483, -483, 0, -7, -25, -483, 1, -349, -62, -483,
+ 2, -240, 195, -483, -483, -483, -483, -483, -482, -483,
+ -483, -483, -350, -483, -158, -459, -483, -222, -104, -15,
+ -157, -483, -95, -483, 48, -483, -78, -251, 207, -483,
+ -483, -483, -265, -483, -483, -85, -483, 132, 55, 40,
+ -96, 12, -230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
0, 69, 70, 71, 72, 73, 373, 374, 375, 376,
- 74, 515, 111, 136, 113, 114, 380, 77, 78, 79,
- 137, 241, 138, 80, 263, 81, 82, 83, 84, 85,
- 86, 381, 382, 383, 446, 447, 448, 139, 140, 361,
- 163, 141, 142, 185, 143, 407, 408, 144, 145, 146,
- 303, 397, 147, 214, 215, 148, 149, 216, 243, 151,
- 217, 218
+ 74, 516, 111, 136, 113, 114, 380, 77, 78, 79,
+ 137, 241, 138, 80, 263, 81, 82, 83, 484, 84,
+ 85, 86, 381, 382, 383, 446, 447, 448, 139, 140,
+ 361, 163, 141, 142, 185, 143, 407, 408, 144, 145,
+ 146, 303, 397, 147, 214, 215, 148, 149, 216, 243,
+ 151, 217, 218
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -965,29 +966,29 @@ static const yytype_int16 yydefgoto[] =
static const yytype_int16 yytable[] =
{
75, 76, 112, 356, 171, 176, 162, 154, 445, 450,
- 337, 482, 365, 488, 161, 87, 165, 456, 371, 166,
- 219, 156, 112, 249, 313, 261, 317, 509, 480, 167,
- 169, 372, 489, 366, 463, 262, 362, 362, 362, 173,
- 223, 224, 225, 226, 247, 248, 242, 249, 518, 289,
+ 337, 482, 365, 489, 161, 87, 165, 456, 371, 166,
+ 219, 156, 112, 249, 313, 261, 175, 510, 520, 167,
+ 169, 372, 490, 366, 463, 262, 155, 528, 177, 173,
+ 223, 224, 225, 226, 247, 248, 242, 249, 519, 289,
230, 250, 251, 242, 244, 395, 290, 112, 174, 249,
396, 244, 230, 249, 242, 150, 153, 75, 238, 239,
- 75, 76, 244, 155, 157, 314, 242, 179, 413, 315,
- 483, 88, 168, 150, 244, 175, 242, 233, 234, 235,
+ 75, 76, 244, 181, 157, 314, 242, 179, 413, 315,
+ 483, 88, 168, 150, 244, 182, 242, 233, 234, 235,
236, 237, 238, 239, 244, 158, 159, 425, 445, 363,
364, 235, 236, 237, 238, 239, 236, 237, 238, 239,
- 291, 177, 293, 295, 297, 524, 525, 292, 172, 294,
- 296, 298, 317, 204, 494, 443, 181, 182, 213, 252,
- 180, 183, 471, 472, 473, 474, 445, 510, 477, 299,
- 264, 300, 304, 301, 305, 302, 219, 112, 220, 274,
- 221, 258, 310, 204, 253, 464, 312, 445, 187, 188,
- 189, 254, 265, 266, 523, 268, 269, 112, 270, 273,
- 275, 319, 531, 311, 317, 359, 276, 316, 190, 191,
- 534, 193, 194, 195, 196, 368, 205, 384, 386, 209,
- 424, 422, 449, 451, 452, 453, 461, 313, 490, 492,
- 493, 503, 504, 481, 511, 508, 517, 245, 519, 378,
- 513, 520, 514, 527, 259, 528, 529, 533, 537, 535,
- 536, 538, 178, 459, 170, 484, 462, 410, 505, 164,
- 420, 318, 0, 0, 0, 0, 280, 0, 0, 278,
+ 291, 183, 293, 295, 297, 525, 526, 292, 172, 294,
+ 296, 298, 317, 204, 480, 443, 219, 220, 213, 252,
+ 180, 221, 253, 471, 472, 473, 474, 445, 511, 477,
+ 299, 264, 300, 254, 301, 304, 302, 112, 317, 274,
+ 495, 258, 305, 204, 265, 464, 310, 266, 445, 268,
+ 362, 362, 362, 269, 270, 524, 273, 112, 187, 188,
+ 189, 275, 312, 531, 311, 316, 276, 317, 190, 191,
+ 533, 193, 194, 195, 196, 319, 205, 359, 368, 209,
+ 384, 386, 422, 424, 449, 451, 452, 453, 461, 313,
+ 491, 493, 494, 481, 504, 505, 509, 245, 512, 378,
+ 514, 518, 515, 483, 259, 521, 529, 534, 536, 535,
+ 537, 178, 459, 170, 462, 485, 506, 410, 164, 420,
+ 280, 318, 0, 0, 0, 0, 0, 0, 0, 278,
360, 360, 360, 0, 0, 0, 75, 358, 161, 161,
161, 186, 186, 186, 186, 0, 0, 192, 0, 0,
0, 0, 0, 0, 206, 207, 0, 0, 0, 0,
@@ -1007,69 +1008,40 @@ static const yytype_int16 yytable[] =
433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
0, 0, 0, 387, 0, 389, 0, 391, 0, 393,
454, 455, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 0, 0, 491, 0, 0, 409, 409, 411, 412,
- 0, 465, 0, 0, 0, 0, 281, 75, 0, 75,
- 486, 112, 282, 0, 0, 0, 0, 0, 0, 0,
- 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
- 230, 250, 251, 0, 0, 0, 0, 0, 0, 421,
- 0, 0, 75, 507, 0, 75, 516, 75, 0, 0,
+ 0, 0, 0, 492, 0, 0, 409, 409, 411, 412,
+ 0, 465, 0, 0, 0, 0, 0, 75, 0, 75,
+ 487, 112, 0, 271, 0, 0, 0, 0, 0, 0,
+ 0, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 0, 230, 250, 251, 0, 0, 0, 0, 0, 421,
+ 0, 0, 75, 508, 0, 0, 75, 517, 75, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 409, 0, 0, 0, 0, 0, 75, 233, 234, 235,
- 236, 237, 238, 239, 75, 0, 0, 0, 532, 0,
- 0, 0, 75, 0, 0, 0, 0, 0, 0, 470,
- 75, 0, 0, 0, 475, 476, 0, 478, 479, 0,
- 0, 0, 0, 0, 512, 0, 283, 0, 0, 0,
- 0, 0, 284, 0, 0, 0, 0, 0, 0, 0,
- 223, 224, 225, 226, 247, 248, 521, 249, 285, 0,
- 230, 250, 251, 0, 286, 0, 0, 0, 0, 0,
- 0, 0, 223, 224, 225, 226, 247, 248, 0, 249,
- 0, 0, 230, 250, 251, 0, 0, 0, 495, 496,
- 497, 498, 0, 499, 500, 501, 502, 233, 234, 235,
- 236, 237, 238, 239, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
- 234, 235, 236, 237, 238, 239, 475, 115, 116, 1,
- 210, 211, 89, 119, 120, 121, 122, 6, 90, 526,
- 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
- 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
- 102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
- 125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
- 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
- 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
- 110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
- 0, 152, 0, 135, 0, 212, 115, 116, 1, 117,
- 118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
- 8, 92, 93, 94, 12, 13, 95, 15, 96, 222,
- 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
- 103, 104, 105, 223, 224, 225, 226, 227, 228, 125,
- 229, 34, 35, 230, 231, 232, 126, 39, 127, 41,
- 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
- 61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
- 233, 234, 235, 236, 237, 238, 239, 0, 0, 240,
- 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
- 120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
- 94, 12, 255, 95, 15, 96, 17, 18, 97, 98,
- 99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
- 223, 224, 225, 226, 227, 228, 125, 229, 256, 257,
- 230, 231, 232, 126, 39, 127, 41, 128, 43, 129,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
- 107, 108, 109, 0, 0, 0, 110, 233, 234, 235,
- 236, 237, 238, 239, 0, 0, 240, 152, 0, 135,
- 115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
- 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
- 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
- 101, 267, 25, 102, 103, 104, 105, 223, 224, 225,
- 226, 227, 228, 125, 229, 34, 35, 230, 231, 232,
- 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
- 0, 0, 0, 110, 233, 234, 235, 236, 237, 238,
- 239, 0, 0, 240, 152, 0, 135, 115, 116, 1,
+ 409, 0, 0, 0, 0, 0, 0, 75, 233, 234,
+ 235, 236, 237, 238, 239, 75, 272, 0, 0, 532,
+ 0, 0, 0, 75, 0, 281, 0, 0, 0, 470,
+ 75, 282, 0, 0, 475, 476, 0, 478, 479, 223,
+ 224, 225, 226, 247, 248, 513, 249, 283, 0, 230,
+ 250, 251, 0, 284, 0, 0, 0, 0, 0, 0,
+ 0, 223, 224, 225, 226, 247, 248, 522, 249, 0,
+ 0, 230, 250, 251, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
+ 237, 238, 239, 0, 0, 0, 0, 0, 496, 497,
+ 498, 499, 0, 500, 501, 502, 503, 0, 233, 234,
+ 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 475, 115, 116,
+ 1, 210, 211, 89, 119, 120, 121, 122, 6, 90,
+ 527, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
+ 31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
+ 127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
+ 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
+ 0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
+ 0, 0, 152, 0, 135, 0, 212, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
- 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 222, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 223, 224, 225, 226, 227, 228,
125, 229, 34, 35, 230, 231, 232, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
@@ -1078,43 +1050,43 @@ static const yytype_int16 yytable[] =
110, 233, 234, 235, 236, 237, 238, 239, 0, 0,
240, 152, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
- 93, 94, 12, 13, 95, 15, 96, 279, 18, 97,
+ 93, 94, 12, 255, 95, 15, 96, 17, 18, 97,
98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 223, 224, 225, 226, 227, 228, 125, 229, 34,
- 35, 230, 231, 232, 126, 39, 127, 41, 128, 43,
+ 105, 223, 224, 225, 226, 227, 228, 125, 229, 256,
+ 257, 230, 231, 232, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
106, 107, 108, 109, 0, 0, 0, 110, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 0, 152, 0,
+ 235, 236, 237, 238, 239, 0, 0, 240, 152, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
- 0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
- 37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 22, 101, 267, 25, 102, 103, 104, 105, 223, 224,
+ 225, 226, 227, 228, 125, 229, 34, 35, 230, 231,
+ 232, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
- 109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
- 0, 0, 0, 0, 0, 152, 208, 135, 115, 116,
+ 109, 0, 0, 0, 110, 233, 234, 235, 236, 237,
+ 238, 239, 0, 0, 240, 152, 0, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
- 25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
- 31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
+ 25, 102, 103, 104, 105, 223, 224, 225, 226, 227,
+ 228, 125, 229, 34, 35, 230, 231, 232, 126, 39,
127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
- 0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
- 0, 0, 152, 277, 135, 115, 116, 1, 117, 118,
- 89, 119, 120, 121, 122, 6, 90, 0, 91, 123,
- 92, 93, 94, 12, 13, 95, 124, 96, 17, 18,
+ 0, 110, 233, 234, 235, 236, 237, 238, 239, 0,
+ 0, 240, 152, 0, 135, 115, 116, 1, 117, 118,
+ 89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
+ 92, 93, 94, 12, 13, 95, 15, 96, 279, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
- 104, 105, 0, 0, 0, 0, 30, 31, 125, 33,
- 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 104, 105, 223, 224, 225, 226, 227, 228, 125, 229,
+ 34, 35, 230, 231, 232, 126, 39, 127, 41, 128,
43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
- 62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
- 0, 0, 132, 133, 0, 0, 0, 0, 0, 134,
+ 62, 106, 107, 108, 109, 0, 0, 0, 110, 233,
+ 234, 235, 236, 237, 238, 239, 0, 0, 0, 152,
0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
@@ -1124,7 +1096,7 @@ static const yytype_int16 yytable[] =
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
- 133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
+ 133, 0, 0, 0, 0, 0, 152, 208, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
@@ -1134,24 +1106,24 @@ static const yytype_int16 yytable[] =
49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
- 0, 0, 0, 134, 0, 135, 115, 116, 1, 117,
+ 0, 0, 0, 152, 277, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
- 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
+ 123, 92, 93, 94, 12, 13, 95, 124, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 130, 58, 59, 60,
+ 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 184, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 134, 0, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
0, 0, 0, 0, 30, 31, 125, 33, 34, 35,
0, 36, 37, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 130, 58, 59, 60, 61, 62, 106,
+ 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
@@ -1159,99 +1131,136 @@ static const yytype_int16 yytable[] =
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
0, 30, 31, 125, 33, 34, 35, 0, 36, 37,
- 126, 398, 127, 399, 128, 400, 129, 401, 46, 47,
- 48, 49, 50, 0, 51, 52, 402, 403, 404, 56,
- 130, 58, 405, 406, 61, 62, 106, 107, 108, 109,
+ 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
- 0, 0, 0, 0, 152, 0, 135, 115, 116, 1,
+ 0, 0, 0, 0, 134, 0, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 402, 403, 55, 56, 130, 58, 405,
- 406, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
+ 60, 61, 62, 106, 107, 108, 109, 0, 0, 0,
110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
- 0, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 0, 184, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 0, 0, 0, 0, 0, 0, 125, 33, 34,
+ 105, 0, 0, 0, 0, 30, 31, 125, 33, 34,
35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
+ 53, 54, 55, 56, 130, 58, 59, 60, 61, 62,
106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
- 0, 0, 0, 0, 125, 33, 34, 35, 0, 0,
- 0, 126, 39, 127, 41, 128, 43, 129, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
+ 0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
+ 37, 126, 398, 127, 399, 128, 400, 129, 401, 46,
+ 47, 48, 49, 50, 0, 51, 52, 402, 403, 404,
+ 56, 130, 58, 405, 406, 61, 62, 106, 107, 108,
109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
0, 0, 0, 0, 0, 152, 0, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
- 25, 102, 103, 104, 105, 0, 0, 0, 0, 0,
- 0, 125, 0, 34, 35, 0, 0, 0, 126, 39,
+ 25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
+ 31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
- 59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
- 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 152, 0, 135, 2, 3, 4, 5, 6,
- 0, 0, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 68, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 357, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 379, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 485, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 66,
- 0, 1, 67, 0, 0, 2, 3, 4, 5, 6,
- 0, 506, 7, 8, 9, 10, 11, 12, 13, 0,
- 15, 16, 17, 18, 19, 20, 21, 0, 22, 23,
- 24, 25, 0, 27, 28, 29, 0, 0, 0, 0,
- 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
- 0, 0, 67, 0, 0, 0, 0, 0, 0, 0,
- 0, 444, 1, 417, 418, 89, 2, 3, 4, 5,
+ 50, 0, 51, 52, 402, 403, 55, 56, 130, 58,
+ 405, 406, 61, 62, 106, 107, 108, 109, 0, 0,
+ 0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
+ 0, 0, 152, 0, 135, 115, 116, 1, 117, 118,
+ 89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
+ 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
+ 97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
+ 104, 105, 0, 0, 0, 0, 0, 0, 125, 33,
+ 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
+ 62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
+ 0, 0, 132, 133, 0, 0, 0, 0, 0, 152,
+ 0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
+ 121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
+ 12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
+ 100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
+ 0, 0, 0, 0, 0, 125, 33, 34, 35, 0,
+ 0, 0, 126, 39, 127, 41, 128, 43, 129, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
+ 108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
+ 133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
+ 116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
+ 90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
+ 15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
+ 24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
+ 0, 0, 125, 0, 34, 35, 0, 0, 0, 126,
+ 39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
+ 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
+ 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 152, 0, 135, 2, 3, 4, 5,
+ 6, 0, 0, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 0,
+ 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
+ 6, 0, 68, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
+ 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
+ 6, 0, 357, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
+ 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
+ 6, 0, 379, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
+ 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
+ 6, 0, 486, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
+ 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
+ 6, 0, 507, 7, 8, 9, 10, 11, 12, 13,
+ 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
+ 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
+ 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
+ 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
+ 0, 0, 444, 1, 417, 418, 89, 2, 3, 4,
+ 5, 6, 90, 0, 91, 8, 92, 93, 94, 12,
+ 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
+ 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 106, 107, 108,
+ 109, 0, 1, 0, 110, 89, 2, 3, 4, 5,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
@@ -1265,133 +1274,126 @@ static const yytype_int16 yytable[] =
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 160,
58, 59, 60, 61, 62, 106, 107, 108, 109, 0,
1, 0, 110, 89, 2, 3, 4, 5, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 56, 160, 58,
+ 40, 41, 42, 43, 44, 45, 197, 198, 199, 200,
+ 201, 0, 51, 202, 53, 54, 55, 203, 57, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 197, 198, 199, 200, 201,
- 0, 51, 202, 53, 54, 55, 203, 57, 58, 59,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 260, 57, 58, 59,
60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
- 110, 89, 2, 3, 4, 5, 6, 90, 0, 91,
+ 110, 89, 119, 120, 4, 5, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 260, 57, 58, 59, 60,
- 61, 62, 106, 107, 108, 109, 0, 1, 0, 110,
- 89, 119, 120, 4, 5, 6, 90, 0, 91, 8,
- 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
- 97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
- 104, 105, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
- 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 106, 107, 108, 109, 1, 0, 0, 110, 2,
- 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
- 0, 12, 13, 0, 15, 16, 17, 18, 19, 98,
- 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
- 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
- 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 106,
- 64, 287, 0, 0, 0, 0, 67, 288, 0, 0,
- 0, 0, 0, 0, 467, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
- 225, 226, 247, 248, 468, 249, 0, 0, 230, 250,
- 251, 0, 0, 0, 0, 0, 0, 0, 223, 224,
+ 33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
+ 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 106, 107, 108, 109, 1, 0, 0, 110,
+ 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
+ 10, 0, 12, 13, 0, 15, 16, 17, 18, 19,
+ 98, 21, 0, 22, 0, 24, 25, 0, 27, 28,
+ 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
+ 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 106, 64, 285, 0, 0, 0, 0, 67, 286, 0,
+ 0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
+ 247, 248, 0, 249, 287, 0, 230, 250, 251, 0,
+ 288, 0, 0, 0, 0, 0, 0, 0, 223, 224,
225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
- 251, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 0, 0, 0, 0, 271, 233, 234, 235, 236, 237,
- 238, 239, 223, 224, 225, 226, 247, 248, 469, 249,
- 0, 0, 230, 250, 251, 233, 234, 235, 236, 237,
+ 251, 0, 0, 0, 0, 0, 467, 0, 0, 0,
+ 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 223, 224, 225, 226, 247, 248, 0, 249, 468, 0,
+ 230, 250, 251, 0, 0, 233, 234, 235, 236, 237,
238, 239, 223, 224, 225, 226, 247, 248, 0, 249,
0, 0, 230, 250, 251, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 272, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 246, 0, 233,
+ 469, 0, 0, 0, 0, 0, 0, 233, 234, 235,
+ 236, 237, 238, 239, 223, 224, 225, 226, 247, 248,
+ 0, 249, 0, 0, 230, 250, 251, 246, 0, 233,
234, 235, 236, 237, 238, 239, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 233, 234, 235, 236, 237, 238, 239, 223, 224,
+ 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
+ 251, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
+ 230, 250, 251, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 233, 234, 235, 236, 237,
+ 238, 239, 0, 0, 308, 0, 309, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 233, 234, 235,
+ 236, 237, 238, 239, 0, 0, 385, 0, 309, 223,
224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 223, 224, 225, 226, 247, 248, 0, 249,
- 0, 0, 230, 250, 251, 0, 0, 0, 0, 0,
- 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 250, 251, 338, 339, 340, 341, 342, 343, 0, 344,
+ 0, 0, 345, 346, 347, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 0, 308, 0, 309, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 0, 385, 0,
- 309, 223, 224, 225, 226, 247, 248, 0, 249, 0,
- 0, 230, 250, 251, 338, 339, 340, 341, 342, 343,
- 0, 344, 0, 0, 345, 346, 347, 223, 224, 225,
+ 237, 238, 239, 0, 0, 0, 0, 309, 0, 348,
+ 349, 350, 351, 352, 353, 354, 0, 0, 355, 0,
+ 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
+ 367, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 0, 230, 250, 251, 223, 224, 225, 226, 247, 248,
+ 0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 0, 0, 309,
- 0, 348, 349, 350, 351, 352, 353, 354, 0, 0,
- 355, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 367, 223, 224, 225, 226, 247, 248, 0,
+ 235, 236, 237, 238, 239, 0, 457, 0, 0, 0,
+ 0, 233, 234, 235, 236, 237, 238, 239, 0, 460,
+ 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
+ 239, 0, 488, 223, 224, 225, 226, 247, 248, 0,
249, 0, 0, 230, 250, 251, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
- 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 0, 0, 0, 0, 0, 0, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 0, 457, 0,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 0, 0, 0, 0, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
+ 233, 234, 235, 236, 237, 238, 239, 0, 523, 0,
0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 460, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 487, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
- 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
- 251, 0, 0, 0, 0, 0, 0, 223, 224, 225,
- 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 522, 0, 0, 0, 0, 233, 234, 235, 236, 237,
- 238, 239, 0, 530, 306, 307, 0, 0, 0, 0,
- 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 223, 224, 225, 226, 247, 248, 0, 249, 0,
- 0, 230, 250, 251, 338, 339, 340, 341, 342, 343,
- 0, 344, 0, 0, 345, 346, 347, 223, 224, 225,
- 226, 0, 0, 0, 249, 0, 0, 230, 250, 251,
- 0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
- 0, 348, 349, 350, 351, 352, 353, 354, 0, 0,
- 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239
+ 0, 530, 306, 307, 0, 0, 0, 0, 0, 0,
+ 0, 0, 233, 234, 235, 236, 237, 238, 239, 223,
+ 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
+ 250, 251, 338, 339, 340, 341, 342, 343, 0, 344,
+ 0, 0, 345, 346, 347, 223, 224, 225, 226, 0,
+ 0, 0, 249, 0, 0, 230, 250, 251, 0, 0,
+ 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
+ 237, 238, 239, 0, 0, 0, 0, 0, 0, 348,
+ 349, 350, 351, 352, 353, 354, 0, 0, 0, 0,
+ 0, 0, 233, 234, 235, 236, 237, 238, 239
};
static const yytype_int16 yycheck[] =
{
0, 0, 9, 243, 29, 67, 21, 14, 357, 359,
240, 16, 23, 15, 21, 31, 23, 367, 84, 26,
- 99, 19, 29, 49, 103, 34, 98, 485, 100, 27,
- 28, 97, 34, 44, 384, 44, 255, 256, 257, 64,
- 42, 43, 44, 45, 46, 47, 150, 49, 506, 69,
+ 99, 19, 29, 49, 103, 34, 97, 486, 510, 27,
+ 28, 97, 34, 44, 384, 44, 31, 519, 0, 64,
+ 42, 43, 44, 45, 46, 47, 150, 49, 507, 69,
52, 53, 54, 157, 150, 23, 76, 64, 65, 49,
28, 157, 52, 49, 168, 10, 11, 67, 94, 95,
- 70, 70, 168, 31, 19, 98, 180, 75, 308, 102,
+ 70, 70, 168, 97, 19, 98, 180, 75, 308, 102,
85, 97, 27, 28, 180, 97, 190, 89, 90, 91,
92, 93, 94, 95, 190, 36, 37, 337, 447, 256,
257, 91, 92, 93, 94, 95, 92, 93, 94, 95,
- 69, 0, 69, 69, 69, 97, 98, 76, 63, 76,
- 76, 76, 98, 130, 100, 355, 97, 97, 135, 154,
- 75, 98, 398, 399, 400, 401, 485, 487, 404, 55,
- 33, 57, 28, 59, 28, 61, 99, 154, 97, 174,
- 97, 158, 103, 160, 97, 385, 102, 506, 120, 121,
- 122, 97, 97, 97, 514, 97, 97, 174, 97, 97,
- 97, 26, 522, 103, 98, 97, 183, 102, 123, 124,
- 530, 126, 127, 128, 129, 28, 131, 97, 26, 134,
- 98, 100, 16, 97, 97, 97, 87, 103, 86, 97,
- 10, 28, 71, 443, 34, 97, 71, 152, 85, 271,
- 97, 86, 97, 85, 159, 97, 97, 97, 97, 86,
- 86, 97, 70, 375, 28, 447, 382, 305, 477, 21,
- 314, 219, -1, -1, -1, -1, 190, -1, -1, 184,
+ 69, 98, 69, 69, 69, 97, 98, 76, 63, 76,
+ 76, 76, 98, 130, 100, 355, 99, 97, 135, 154,
+ 75, 97, 97, 398, 399, 400, 401, 486, 488, 404,
+ 55, 33, 57, 97, 59, 28, 61, 154, 98, 174,
+ 100, 158, 28, 160, 97, 385, 103, 97, 507, 97,
+ 255, 256, 257, 97, 97, 515, 97, 174, 120, 121,
+ 122, 97, 102, 523, 103, 102, 183, 98, 123, 124,
+ 530, 126, 127, 128, 129, 26, 131, 97, 28, 134,
+ 97, 26, 100, 98, 16, 97, 97, 97, 87, 103,
+ 86, 97, 10, 443, 28, 71, 97, 152, 34, 271,
+ 97, 71, 97, 85, 159, 86, 97, 86, 97, 86,
+ 97, 70, 375, 28, 382, 447, 477, 305, 21, 314,
+ 190, 219, -1, -1, -1, -1, -1, -1, -1, 184,
255, 256, 257, -1, -1, -1, 246, 246, 255, 256,
257, 119, 120, 121, 122, -1, -1, 125, -1, -1,
-1, -1, -1, -1, 132, 133, -1, -1, -1, -1,
@@ -1412,65 +1414,36 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 281, -1, 283, -1, 285, -1, 287,
365, 366, -1, 89, 90, 91, 92, 93, 94, 95,
-1, -1, -1, 458, -1, -1, 304, 305, 306, 307,
- -1, 386, -1, -1, -1, -1, 28, 447, -1, 449,
- 449, 458, 34, -1, -1, -1, -1, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, 424,
- -1, -1, 482, 482, -1, 485, 493, 487, -1, -1,
+ -1, 386, -1, -1, -1, -1, -1, 447, -1, 449,
+ 449, 458, -1, 34, -1, -1, -1, -1, -1, -1,
+ -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, 424,
+ -1, -1, 482, 482, -1, -1, 486, 494, 488, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 368, -1, -1, -1, -1, -1, 506, 89, 90, 91,
- 92, 93, 94, 95, 514, -1, -1, -1, 525, -1,
- -1, -1, 522, -1, -1, -1, -1, -1, -1, 397,
- 530, -1, -1, -1, 402, 403, -1, 405, 406, -1,
- -1, -1, -1, -1, 489, -1, 28, -1, -1, -1,
- -1, -1, 34, -1, -1, -1, -1, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, 511, 49, 28, -1,
- 52, 53, 54, -1, 34, -1, -1, -1, -1, -1,
- -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, 466, 467,
- 468, 469, -1, 471, 472, 473, 474, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, 504, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 517,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, -1, -1, -1, -1, 46, 47,
- 48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
- 88, -1, -1, -1, 92, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, -1, 103, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 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, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, 98,
- 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 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, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, 99, -1, 101,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 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, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, 98, 99, -1, 101, 5, 6, 7,
+ 368, -1, -1, -1, -1, -1, -1, 507, 89, 90,
+ 91, 92, 93, 94, 95, 515, 97, -1, -1, 526,
+ -1, -1, -1, 523, -1, 28, -1, -1, -1, 397,
+ 530, 34, -1, -1, 402, 403, -1, 405, 406, 42,
+ 43, 44, 45, 46, 47, 490, 49, 28, -1, 52,
+ 53, 54, -1, 34, -1, -1, -1, -1, -1, -1,
+ -1, 42, 43, 44, 45, 46, 47, 512, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, 466, 467,
+ 468, 469, -1, 471, 472, 473, 474, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 505, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 518, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
+ -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
+ -1, -1, 99, -1, 101, -1, 103, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -1489,36 +1462,36 @@ static const yytype_int16 yycheck[] =
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, -1, -1, -1, 88, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, 99, -1,
+ 91, 92, 93, 94, 95, -1, -1, 98, 99, -1,
101, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 34, 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, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, 100, 101, 5, 6,
+ 84, -1, -1, -1, 88, 89, 90, 91, 92, 93,
+ 94, 95, -1, -1, 98, 99, -1, 101, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
- 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 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, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
- -1, -1, 99, 100, 101, 5, 6, 7, 8, 9,
+ -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 98, 99, -1, 101, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 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, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, -1, -1, 88, -1,
- -1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
+ 80, 81, 82, 83, 84, -1, -1, -1, 88, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, 99,
-1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
@@ -1528,7 +1501,7 @@ static const yytype_int16 yycheck[] =
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, -1, -1, -1, 88, -1, -1, -1, 92,
- 93, -1, -1, -1, -1, -1, 99, -1, 101, 5,
+ 93, -1, -1, -1, -1, -1, 99, 100, 101, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
@@ -1538,7 +1511,7 @@ static const yytype_int16 yycheck[] =
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
-1, -1, 88, -1, -1, -1, 92, 93, -1, -1,
- -1, -1, -1, 99, -1, 101, 5, 6, 7, 8,
+ -1, -1, -1, 99, 100, 101, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
@@ -1581,7 +1554,7 @@ static const yytype_int16 yycheck[] =
11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
@@ -1591,8 +1564,8 @@ static const yytype_int16 yycheck[] =
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, -1, -1,
- -1, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, -1, -1, -1, 88, -1, -1, -1, 92, 93,
@@ -1600,62 +1573,99 @@ static const yytype_int16 yycheck[] =
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, -1, -1, -1, -1, -1,
- -1, 48, -1, 50, 51, -1, -1, -1, 55, 56,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 7, 99, -1, 101, 11, 12, 13, 14, 15,
- -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ -1, 88, -1, -1, -1, 92, 93, -1, -1, -1,
+ -1, -1, 99, -1, 101, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, -1, -1, -1, -1, -1, -1, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, -1, -1, -1, 88, -1,
+ -1, -1, 92, 93, -1, -1, -1, -1, -1, 99,
+ -1, 101, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, -1,
+ -1, -1, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, -1, -1, 88, -1, -1, -1, 92,
+ 93, -1, -1, -1, -1, -1, 99, -1, 101, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
- -1, 7, 88, -1, -1, 11, 12, 13, 14, 15,
- -1, 97, 18, 19, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, 37, -1, 39, 40, 41, -1, -1, -1, -1,
- 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
+ -1, -1, 48, -1, 50, 51, -1, -1, -1, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, -1, -1, -1,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
-1, -1, 88, -1, -1, -1, -1, -1, -1, -1,
- -1, 97, 7, 8, 9, 10, 11, 12, 13, 14,
+ -1, -1, 7, 99, -1, 101, 11, 12, 13, 14,
+ 15, -1, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
+ 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
+ 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
+ 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
+ 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
+ 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
+ -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
+ -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
+ -1, -1, 97, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, 7, -1, 88, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
@@ -1694,80 +1704,73 @@ static const yytype_int16 yycheck[] =
49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, -1, 7, -1, 88,
- 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
- 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 7, -1, -1, 88, 11,
- 12, 13, 14, 15, -1, -1, 18, 19, 20, 21,
- -1, 23, 24, -1, 26, 27, 28, 29, 30, 31,
- 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
- -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
- -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 28, -1, -1, -1, -1, 88, 34, -1, -1,
- -1, -1, -1, -1, 28, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
- 44, 45, 46, 47, 28, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, 42, 43,
+ 79, 80, 81, 82, 83, 84, 7, -1, -1, 88,
+ 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
+ 21, -1, 23, 24, -1, 26, 27, 28, 29, 30,
+ 31, 32, -1, 34, -1, 36, 37, -1, 39, 40,
+ 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
+ 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 28, -1, -1, -1, -1, 88, 34, -1,
+ -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, 28, -1, 52, 53, 54, -1,
+ 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, -1, -1, 34, 89, 90, 91, 92, 93,
- 94, 95, 42, 43, 44, 45, 46, 47, 28, 49,
- -1, -1, 52, 53, 54, 89, 90, 91, 92, 93,
+ 54, -1, -1, -1, -1, -1, 28, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ 42, 43, 44, 45, 46, 47, -1, 49, 28, -1,
+ 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 33, -1, 89,
+ 28, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 33, -1, 89,
90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, -1, 98, -1, 100, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, -1, 100, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
-1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, 98, -1, 100, -1, 89,
+ 93, 94, 95, -1, -1, -1, -1, 100, -1, 89,
90, 91, 92, 93, 94, 95, -1, -1, 98, -1,
- 100, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
-1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
-1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, -1, 100,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- 98, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
95, -1, 97, 42, 43, 44, 45, 46, 47, -1,
49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
89, 90, 91, 92, 93, 94, 95, -1, 97, -1,
-1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, 97, 79, 80, -1, -1, -1, -1,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, -1, -1, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95
+ -1, 97, 79, 80, -1, -1, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, -1,
+ -1, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1782,52 +1785,52 @@ static const yytype_uint8 yystos[] =
67, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 85, 88, 97, 105,
106, 107, 108, 109, 114, 116, 120, 121, 122, 123,
- 127, 129, 130, 131, 132, 133, 134, 31, 97, 10,
+ 127, 129, 130, 131, 133, 134, 135, 31, 97, 10,
16, 18, 20, 21, 22, 25, 27, 30, 31, 32,
33, 35, 38, 39, 40, 41, 81, 82, 83, 84,
88, 116, 117, 118, 119, 5, 6, 8, 9, 11,
12, 13, 14, 19, 26, 48, 55, 57, 59, 61,
- 75, 78, 92, 93, 99, 101, 117, 124, 126, 141,
- 142, 145, 146, 148, 151, 152, 153, 156, 159, 160,
- 161, 163, 99, 161, 117, 31, 124, 161, 36, 37,
- 75, 117, 142, 144, 151, 117, 117, 124, 161, 124,
- 126, 118, 161, 118, 117, 97, 122, 0, 107, 124,
- 161, 97, 97, 98, 99, 147, 160, 147, 147, 147,
- 161, 161, 160, 161, 161, 161, 161, 63, 64, 65,
- 66, 67, 70, 74, 117, 161, 160, 160, 100, 161,
- 8, 9, 103, 117, 157, 158, 161, 164, 165, 99,
+ 75, 78, 92, 93, 99, 101, 117, 124, 126, 142,
+ 143, 146, 147, 149, 152, 153, 154, 157, 160, 161,
+ 162, 164, 99, 162, 117, 31, 124, 162, 36, 37,
+ 75, 117, 143, 145, 152, 117, 117, 124, 162, 124,
+ 126, 118, 162, 118, 117, 97, 122, 0, 107, 124,
+ 162, 97, 97, 98, 99, 148, 161, 148, 148, 148,
+ 162, 162, 161, 162, 162, 162, 162, 63, 64, 65,
+ 66, 67, 70, 74, 117, 162, 161, 161, 100, 162,
+ 8, 9, 103, 117, 158, 159, 162, 165, 166, 99,
97, 97, 28, 42, 43, 44, 45, 46, 47, 49,
52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
- 98, 125, 141, 162, 163, 161, 33, 46, 47, 49,
- 53, 54, 118, 97, 97, 24, 50, 51, 117, 161,
+ 98, 125, 142, 163, 164, 162, 33, 46, 47, 49,
+ 53, 54, 118, 97, 97, 24, 50, 51, 117, 162,
74, 34, 44, 128, 33, 97, 97, 36, 97, 97,
- 97, 34, 97, 97, 118, 97, 117, 100, 161, 28,
- 162, 28, 34, 28, 34, 28, 34, 28, 34, 69,
+ 97, 34, 97, 97, 118, 97, 117, 100, 162, 28,
+ 163, 28, 34, 28, 34, 28, 34, 28, 34, 69,
76, 69, 76, 69, 76, 69, 76, 69, 76, 55,
- 57, 59, 61, 154, 28, 28, 79, 80, 98, 100,
- 103, 103, 102, 103, 98, 102, 102, 98, 164, 26,
- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 165, 42, 43,
+ 57, 59, 61, 155, 28, 28, 79, 80, 98, 100,
+ 103, 103, 102, 103, 98, 102, 102, 98, 165, 26,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 166, 42, 43,
44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
91, 92, 93, 94, 95, 98, 125, 97, 120, 97,
- 142, 143, 145, 143, 143, 23, 44, 97, 28, 161,
- 161, 84, 97, 110, 111, 112, 113, 161, 122, 97,
- 120, 135, 136, 137, 97, 98, 26, 160, 161, 160,
- 161, 160, 161, 160, 161, 23, 28, 155, 56, 58,
- 60, 62, 71, 72, 73, 77, 78, 149, 150, 160,
- 149, 160, 160, 165, 161, 161, 161, 8, 9, 117,
- 158, 161, 100, 161, 98, 125, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 165, 97, 121, 138, 139, 140, 16,
- 135, 97, 97, 97, 161, 161, 135, 97, 117, 113,
- 97, 87, 137, 135, 165, 161, 28, 28, 28, 28,
- 160, 155, 155, 155, 155, 160, 160, 155, 160, 160,
- 100, 125, 16, 85, 140, 97, 120, 97, 15, 34,
- 86, 118, 97, 10, 100, 160, 160, 160, 160, 160,
- 160, 160, 160, 28, 71, 150, 97, 120, 97, 138,
- 135, 34, 161, 97, 97, 115, 117, 71, 138, 85,
- 86, 161, 97, 135, 97, 98, 160, 85, 97, 97,
- 97, 135, 117, 97, 135, 86, 86, 97, 97
+ 143, 144, 146, 144, 144, 23, 44, 97, 28, 162,
+ 162, 84, 97, 110, 111, 112, 113, 162, 122, 97,
+ 120, 136, 137, 138, 97, 98, 26, 161, 162, 161,
+ 162, 161, 162, 161, 162, 23, 28, 156, 56, 58,
+ 60, 62, 71, 72, 73, 77, 78, 150, 151, 161,
+ 150, 161, 161, 166, 162, 162, 162, 8, 9, 117,
+ 159, 162, 100, 162, 98, 125, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 166, 97, 121, 139, 140, 141, 16,
+ 136, 97, 97, 97, 162, 162, 136, 97, 117, 113,
+ 97, 87, 138, 136, 166, 162, 28, 28, 28, 28,
+ 161, 156, 156, 156, 156, 161, 161, 156, 161, 161,
+ 100, 125, 16, 85, 132, 141, 97, 120, 97, 15,
+ 34, 86, 118, 97, 10, 100, 161, 161, 161, 161,
+ 161, 161, 161, 161, 28, 71, 151, 97, 120, 97,
+ 139, 136, 34, 162, 97, 97, 115, 117, 71, 139,
+ 132, 86, 162, 97, 136, 97, 98, 161, 132, 97,
+ 97, 136, 117, 136, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1848,21 +1851,21 @@ static const yytype_uint8 yyr1[] =
123, 123, 123, 124, 124, 124, 124, 124, 124, 124,
125, 125, 126, 126, 126, 126, 126, 127, 127, 127,
127, 128, 128, 129, 129, 129, 130, 130, 131, 131,
- 131, 131, 132, 132, 132, 132, 133, 133, 134, 135,
+ 131, 131, 132, 132, 133, 133, 133, 133, 134, 134,
135, 136, 136, 137, 137, 138, 138, 139, 139, 140,
- 140, 141, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 142, 143, 143, 144, 144, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 146, 146,
- 147, 147, 147, 148, 148, 148, 148, 149, 149, 149,
- 149, 149, 150, 151, 151, 151, 152, 152, 152, 152,
- 152, 152, 152, 152, 152, 152, 153, 153, 153, 153,
- 153, 154, 154, 154, 154, 155, 155, 156, 156, 156,
- 157, 157, 158, 158, 158, 159, 159, 160, 160, 161,
- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161, 162, 162,
+ 140, 141, 141, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 143, 144, 144, 145, 145,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 147, 147, 148, 148, 148, 149, 149, 149, 149, 150,
+ 150, 150, 150, 150, 151, 152, 152, 152, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 154, 154,
+ 154, 154, 154, 155, 155, 155, 155, 156, 156, 157,
+ 157, 157, 158, 158, 159, 159, 159, 160, 160, 161,
+ 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 163, 163, 164,
- 164, 165, 165
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 164,
+ 164, 165, 165, 166, 166
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1882,22 +1885,22 @@ static const yytype_int8 yyr2[] =
1, 3, 3, 3, 3, 3, 3, 3, 5, 3,
3, 2, 2, 0, 2, 4, 3, 5, 2, 5,
0, 1, 2, 2, 5, 4, 3, 5, 5, 5,
- 5, 1, 1, 3, 3, 3, 4, 7, 6, 9,
- 7, 10, 7, 11, 12, 9, 4, 6, 4, 0,
- 1, 1, 2, 1, 1, 0, 1, 1, 2, 1,
- 1, 1, 1, 1, 1, 2, 4, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 4, 6, 4, 6, 4, 6, 4, 6, 2, 2,
- 1, 2, 5, 1, 1, 1, 5, 1, 1, 5,
- 2, 2, 2, 2, 4, 4, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 6, 6, 6, 6,
- 6, 1, 1, 1, 1, 1, 1, 3, 3, 3,
- 1, 3, 3, 3, 3, 2, 2, 1, 1, 1,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 1, 1,
+ 5, 1, 1, 3, 3, 3, 4, 6, 6, 8,
+ 7, 9, 0, 2, 7, 11, 12, 9, 4, 6,
+ 4, 0, 1, 1, 2, 1, 1, 0, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 2, 4, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 4, 6, 4, 6, 4, 6, 4, 6,
+ 2, 2, 1, 2, 5, 1, 1, 1, 5, 1,
+ 1, 5, 2, 2, 2, 2, 4, 4, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 6, 6,
+ 6, 6, 6, 1, 1, 1, 1, 1, 1, 3,
+ 3, 3, 1, 3, 3, 3, 3, 2, 2, 1,
+ 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 4, 4, 0,
- 1, 1, 3
+ 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
+ 4, 0, 1, 1, 3
};
@@ -2171,37 +2174,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2175 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2181 "engines/director/lingo/lingo-gr.cpp"
+#line 2184 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2187 "engines/director/lingo/lingo-gr.cpp"
+#line 2190 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2193 "engines/director/lingo/lingo-gr.cpp"
+#line 2196 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2199 "engines/director/lingo/lingo-gr.cpp"
+#line 2202 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2205 "engines/director/lingo/lingo-gr.cpp"
+#line 2208 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2469,7 +2472,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2480,7 +2483,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2484 "engines/director/lingo/lingo-gr.cpp"
+#line 2487 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2490,37 +2493,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2494 "engines/director/lingo/lingo-gr.cpp"
+#line 2497 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2500 "engines/director/lingo/lingo-gr.cpp"
+#line 2503 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2506 "engines/director/lingo/lingo-gr.cpp"
+#line 2509 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2512 "engines/director/lingo/lingo-gr.cpp"
+#line 2515 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2518 "engines/director/lingo/lingo-gr.cpp"
+#line 2521 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2524 "engines/director/lingo/lingo-gr.cpp"
+#line 2527 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2531,7 +2534,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2538 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2541,13 +2544,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2545 "engines/director/lingo/lingo-gr.cpp"
+#line 2548 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2551 "engines/director/lingo/lingo-gr.cpp"
+#line 2554 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2556,446 +2559,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2560 "engines/director/lingo/lingo-gr.cpp"
+#line 2563 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2567 "engines/director/lingo/lingo-gr.cpp"
+#line 2570 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2579 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2585 "engines/director/lingo/lingo-gr.cpp"
+#line 2588 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2594 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2600 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2606 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2609 "engines/director/lingo/lingo-gr.cpp"
+#line 2612 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2615 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2621 "engines/director/lingo/lingo-gr.cpp"
+#line 2624 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2642 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2654 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2660 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2666 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2678 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2684 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2690 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2696 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2702 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2714 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2720 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2726 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2732 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2738 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2744 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2750 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2756 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2762 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2780 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2786 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2792 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2798 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2804 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2810 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2816 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2822 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2828 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2834 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2840 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2846 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2852 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2858 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2864 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2870 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2876 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2882 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2888 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2894 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2900 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2906 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2909 "engines/director/lingo/lingo-gr.cpp"
+#line 2912 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2915 "engines/director/lingo/lingo-gr.cpp"
+#line 2918 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2921 "engines/director/lingo/lingo-gr.cpp"
+#line 2924 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2930 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2936 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2942 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2948 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 2954 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 2960 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 2966 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 2972 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 2978 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 2984 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 2990 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2993 "engines/director/lingo/lingo-gr.cpp"
+#line 2996 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 3002 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: ID */
@@ -3004,7 +3007,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -3012,55 +3015,55 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmt: tENDIF '\n' */
#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3022 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: CMDID cmdargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 3028 "engines/director/lingo/lingo-gr.cpp"
+#line 3031 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPUT cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 3034 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tGO cmdargs '\n' */
#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3040 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tGO frameargs '\n' */
#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3046 "engines/director/lingo/lingo-gr.cpp"
+#line 3049 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tPLAY cmdargs '\n' */
#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3052 "engines/director/lingo/lingo-gr.cpp"
+#line 3055 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tPLAY frameargs '\n' */
#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3058 "engines/director/lingo/lingo-gr.cpp"
+#line 3061 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tOPEN cmdargs '\n' */
#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3064 "engines/director/lingo/lingo-gr.cpp"
+#line 3067 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tOPEN expr tWITH expr '\n' */
@@ -3070,31 +3073,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3077 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tNEXT tREPEAT '\n' */
#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3080 "engines/director/lingo/lingo-gr.cpp"
+#line 3083 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* proc: tEXIT tREPEAT '\n' */
#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3086 "engines/director/lingo/lingo-gr.cpp"
+#line 3089 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tEXIT '\n' */
#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3092 "engines/director/lingo/lingo-gr.cpp"
+#line 3095 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* proc: tASSERTERROR stmtoneliner */
#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3098 "engines/director/lingo/lingo-gr.cpp"
+#line 3101 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: %empty */
@@ -3102,7 +3105,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr trailingcomma */
@@ -3112,7 +3115,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3116 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
@@ -3121,7 +3124,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3125 "engines/director/lingo/lingo-gr.cpp"
+#line 3128 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
@@ -3132,7 +3135,7 @@ yyreduce:
args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3136 "engines/director/lingo/lingo-gr.cpp"
+#line 3139 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
@@ -3142,7 +3145,7 @@ yyreduce:
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3146 "engines/director/lingo/lingo-gr.cpp"
+#line 3149 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* cmdargs: '(' ')' */
@@ -3150,7 +3153,7 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
+#line 3157 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
@@ -3159,7 +3162,7 @@ yyreduce:
// This matches `cmd(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3163 "engines/director/lingo/lingo-gr.cpp"
+#line 3166 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* frameargs: tFRAME expr */
@@ -3169,7 +3172,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3173 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* frameargs: tMOVIE expr */
@@ -3180,7 +3183,7 @@ yyreduce:
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3184 "engines/director/lingo/lingo-gr.cpp"
+#line 3187 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* frameargs: tFRAME expr tOF tMOVIE expr */
@@ -3191,7 +3194,7 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3195 "engines/director/lingo/lingo-gr.cpp"
+#line 3198 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* frameargs: expr tOF tMOVIE expr */
@@ -3202,7 +3205,7 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3209 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* frameargs: tFRAME expr expr_nounarymath */
@@ -3213,49 +3216,49 @@ yyreduce:
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3217 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* asgn: tPUT expr tINTO varorchunk '\n' */
#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3223 "engines/director/lingo/lingo-gr.cpp"
+#line 3226 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* asgn: tPUT expr tAFTER varorchunk '\n' */
#line 490 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3229 "engines/director/lingo/lingo-gr.cpp"
+#line 3232 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
#line 491 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3235 "engines/director/lingo/lingo-gr.cpp"
+#line 3238 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* asgn: tSET varorthe to expr '\n' */
#line 492 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3241 "engines/director/lingo/lingo-gr.cpp"
+#line 3244 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* definevars: tGLOBAL idlist '\n' */
#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3247 "engines/director/lingo/lingo-gr.cpp"
+#line 3250 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* definevars: tPROPERTY idlist '\n' */
#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3253 "engines/director/lingo/lingo-gr.cpp"
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* definevars: tINSTANCE idlist '\n' */
#line 499 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3259 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* ifstmt: tIF expr tTHEN stmt */
@@ -3264,14 +3267,14 @@ yyreduce:
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3268 "engines/director/lingo/lingo-gr.cpp"
+#line 3271 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' */
+ case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif */
#line 506 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.node) = new IfStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist)); }
-#line 3275 "engines/director/lingo/lingo-gr.cpp"
+ {
+ (yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
@@ -3282,16 +3285,16 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+#line 3289 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif tENDIF '\n' */
+ case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif */
#line 516 "engines/director/lingo/lingo-gr.y"
- {
+ {
NodeList *stmtlist1 = new NodeList;
- stmtlist1->push_back((yyvsp[-5].node));
- (yyval.node) = new IfElseStmtNode((yyvsp[-7].node), stmtlist1, (yyvsp[-2].nodelist)); }
-#line 3295 "engines/director/lingo/lingo-gr.cpp"
+ stmtlist1->push_back((yyvsp[-4].node));
+ (yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
+#line 3298 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
@@ -3300,755 +3303,761 @@ yyreduce:
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3304 "engines/director/lingo/lingo-gr.cpp"
+#line 3307 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif tENDIF '\n' */
+ case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif */
#line 524 "engines/director/lingo/lingo-gr.y"
- {
- (yyval.node) = new IfElseStmtNode((yyvsp[-8].node), (yyvsp[-5].nodelist), (yyvsp[-2].nodelist)); }
-#line 3311 "engines/director/lingo/lingo-gr.cpp"
+ {
+ (yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
+#line 3314 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+ case 152: /* endif: %empty */
#line 528 "engines/director/lingo/lingo-gr.y"
+ { warning("LingoCompiler::parse: no end if"); }
+#line 3320 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 154: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 531 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3327 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 530 "engines/director/lingo/lingo-gr.y"
+ case 155: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 533 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3325 "engines/director/lingo/lingo-gr.cpp"
+#line 3334 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 532 "engines/director/lingo/lingo-gr.y"
+ case 156: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 535 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3332 "engines/director/lingo/lingo-gr.cpp"
+#line 3341 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
-#line 534 "engines/director/lingo/lingo-gr.y"
+ case 157: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
+#line 537 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3339 "engines/director/lingo/lingo-gr.cpp"
+#line 3348 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* tell: tTELL expr tTO stmtoneliner */
-#line 538 "engines/director/lingo/lingo-gr.y"
+ case 158: /* tell: tTELL expr tTO stmtoneliner */
+#line 541 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3348 "engines/director/lingo/lingo-gr.cpp"
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 159: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 545 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3355 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* when: tWHEN ID tTHEN expr */
-#line 546 "engines/director/lingo/lingo-gr.y"
+ case 160: /* when: tWHEN ID tTHEN expr */
+#line 549 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3361 "engines/director/lingo/lingo-gr.cpp"
+#line 3370 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* stmtlist: %empty */
-#line 548 "engines/director/lingo/lingo-gr.y"
+ case 161: /* stmtlist: %empty */
+#line 551 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3367 "engines/director/lingo/lingo-gr.cpp"
+#line 3376 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* nonemptystmtlist: stmtlistline */
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 163: /* nonemptystmtlist: stmtlistline */
+#line 556 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3378 "engines/director/lingo/lingo-gr.cpp"
+#line 3387 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 164: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
+#line 562 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3388 "engines/director/lingo/lingo-gr.cpp"
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* stmtlistline: '\n' */
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 165: /* stmtlistline: '\n' */
+#line 569 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3394 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* stmtlist_insideif: %empty */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 167: /* stmtlist_insideif: %empty */
+#line 573 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3400 "engines/director/lingo/lingo-gr.cpp"
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* nonemptystmtlist_insideif: stmtlistline_insideif */
-#line 575 "engines/director/lingo/lingo-gr.y"
+ case 169: /* nonemptystmtlist_insideif: stmtlistline_insideif */
+#line 578 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3411 "engines/director/lingo/lingo-gr.cpp"
+#line 3420 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 170: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
+#line 584 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3421 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* stmtlistline_insideif: '\n' */
-#line 588 "engines/director/lingo/lingo-gr.y"
+ case 171: /* stmtlistline_insideif: '\n' */
+#line 591 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3427 "engines/director/lingo/lingo-gr.cpp"
+#line 3436 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* simpleexpr_nounarymath: tINT */
-#line 595 "engines/director/lingo/lingo-gr.y"
+ case 173: /* simpleexpr_nounarymath: tINT */
+#line 598 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3433 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* simpleexpr_nounarymath: tFLOAT */
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 174: /* simpleexpr_nounarymath: tFLOAT */
+#line 599 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3439 "engines/director/lingo/lingo-gr.cpp"
+#line 3448 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* simpleexpr_nounarymath: tSYMBOL */
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 175: /* simpleexpr_nounarymath: tSYMBOL */
+#line 600 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3445 "engines/director/lingo/lingo-gr.cpp"
+#line 3454 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* simpleexpr_nounarymath: tSTRING */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 176: /* simpleexpr_nounarymath: tSTRING */
+#line 601 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+#line 3460 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 177: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 602 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3457 "engines/director/lingo/lingo-gr.cpp"
+#line 3466 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 178: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3463 "engines/director/lingo/lingo-gr.cpp"
+#line 3472 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 179: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3469 "engines/director/lingo/lingo-gr.cpp"
+#line 3478 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* var: ID */
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 185: /* var: ID */
+#line 612 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3475 "engines/director/lingo/lingo-gr.cpp"
+#line 3484 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* chunk: tFIELD refargs */
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 190: /* chunk: tFIELD refargs */
+#line 622 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3481 "engines/director/lingo/lingo-gr.cpp"
+#line 3490 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* chunk: tCAST refargs */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 191: /* chunk: tCAST refargs */
+#line 623 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3487 "engines/director/lingo/lingo-gr.cpp"
+#line 3496 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* chunk: tCHAR expr tOF simpleexpr */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 192: /* chunk: tCHAR expr tOF simpleexpr */
+#line 624 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3494 "engines/director/lingo/lingo-gr.cpp"
+#line 3503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 193: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
+#line 626 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3501 "engines/director/lingo/lingo-gr.cpp"
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* chunk: tWORD expr tOF simpleexpr */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 194: /* chunk: tWORD expr tOF simpleexpr */
+#line 628 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3508 "engines/director/lingo/lingo-gr.cpp"
+#line 3517 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* chunk: tWORD expr tTO expr tOF simpleexpr */
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 195: /* chunk: tWORD expr tTO expr tOF simpleexpr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3515 "engines/director/lingo/lingo-gr.cpp"
+#line 3524 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* chunk: tITEM expr tOF simpleexpr */
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 196: /* chunk: tITEM expr tOF simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 3531 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* chunk: tITEM expr tTO expr tOF simpleexpr */
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 197: /* chunk: tITEM expr tTO expr tOF simpleexpr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3529 "engines/director/lingo/lingo-gr.cpp"
+#line 3538 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* chunk: tLINE expr tOF simpleexpr */
-#line 633 "engines/director/lingo/lingo-gr.y"
+ case 198: /* chunk: tLINE expr tOF simpleexpr */
+#line 636 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3536 "engines/director/lingo/lingo-gr.cpp"
+#line 3545 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* chunk: tLINE expr tTO expr tOF simpleexpr */
-#line 635 "engines/director/lingo/lingo-gr.y"
+ case 199: /* chunk: tLINE expr tTO expr tOF simpleexpr */
+#line 638 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3543 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* object: tSCRIPT refargs */
-#line 639 "engines/director/lingo/lingo-gr.y"
+ case 200: /* object: tSCRIPT refargs */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3549 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* object: tWINDOW refargs */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 201: /* object: tWINDOW refargs */
+#line 643 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3555 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* refargs: simpleexpr */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 202: /* refargs: simpleexpr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref arg` and `ref(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3565 "engines/director/lingo/lingo-gr.cpp"
+#line 3574 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* refargs: '(' ')' */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 203: /* refargs: '(' ')' */
+#line 651 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref()`
(yyval.nodelist) = new NodeList; }
-#line 3573 "engines/director/lingo/lingo-gr.cpp"
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* refargs: '(' expr ',' nonemptyexprlist ')' */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 204: /* refargs: '(' expr ',' nonemptyexprlist ')' */
+#line 654 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref(args, ...)`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+#line 3591 "engines/director/lingo/lingo-gr.cpp"
break;
- case 206: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 208: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 663 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3588 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
break;
- case 209: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 211: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 668 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3594 "engines/director/lingo/lingo-gr.cpp"
+#line 3603 "engines/director/lingo/lingo-gr.cpp"
break;
- case 210: /* theobj: tSOUND simpleexpr */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 212: /* theobj: tSOUND simpleexpr */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3600 "engines/director/lingo/lingo-gr.cpp"
+#line 3609 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* theobj: tSPRITE simpleexpr */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 213: /* theobj: tSPRITE simpleexpr */
+#line 670 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3606 "engines/director/lingo/lingo-gr.cpp"
+#line 3615 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* menu: tMENU simpleexpr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 214: /* menu: tMENU simpleexpr */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3612 "engines/director/lingo/lingo-gr.cpp"
+#line 3621 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* writablethe: tTHE ID */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 215: /* writablethe: tTHE ID */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* writablethe: tTHE ID tOF theobj */
-#line 673 "engines/director/lingo/lingo-gr.y"
+ case 216: /* writablethe: tTHE ID tOF theobj */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3624 "engines/director/lingo/lingo-gr.cpp"
+#line 3633 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 674 "engines/director/lingo/lingo-gr.y"
+ case 217: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 677 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3630 "engines/director/lingo/lingo-gr.cpp"
+#line 3639 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 218: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3636 "engines/director/lingo/lingo-gr.cpp"
+#line 3645 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 219: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3642 "engines/director/lingo/lingo-gr.cpp"
+#line 3651 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* thedatetime: tTHE tABBREV tDATE */
-#line 679 "engines/director/lingo/lingo-gr.y"
+ case 220: /* thedatetime: tTHE tABBREV tDATE */
+#line 682 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3648 "engines/director/lingo/lingo-gr.cpp"
+#line 3657 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* thedatetime: tTHE tABBREV tTIME */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thedatetime: tTHE tABBREV tTIME */
+#line 683 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3654 "engines/director/lingo/lingo-gr.cpp"
+#line 3663 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* thedatetime: tTHE tABBR tDATE */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thedatetime: tTHE tABBR tDATE */
+#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3660 "engines/director/lingo/lingo-gr.cpp"
+#line 3669 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* thedatetime: tTHE tABBR tTIME */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thedatetime: tTHE tABBR tTIME */
+#line 685 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3666 "engines/director/lingo/lingo-gr.cpp"
+#line 3675 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* thedatetime: tTHE tLONG tDATE */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thedatetime: tTHE tLONG tDATE */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3672 "engines/director/lingo/lingo-gr.cpp"
+#line 3681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* thedatetime: tTHE tLONG tTIME */
-#line 684 "engines/director/lingo/lingo-gr.y"
+ case 225: /* thedatetime: tTHE tLONG tTIME */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3678 "engines/director/lingo/lingo-gr.cpp"
+#line 3687 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* thedatetime: tTHE tSHORT tDATE */
-#line 685 "engines/director/lingo/lingo-gr.y"
+ case 226: /* thedatetime: tTHE tSHORT tDATE */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3684 "engines/director/lingo/lingo-gr.cpp"
+#line 3693 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* thedatetime: tTHE tSHORT tTIME */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 227: /* thedatetime: tTHE tSHORT tTIME */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3690 "engines/director/lingo/lingo-gr.cpp"
+#line 3699 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 690 "engines/director/lingo/lingo-gr.y"
+ case 228: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3696 "engines/director/lingo/lingo-gr.cpp"
+#line 3705 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 229: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3702 "engines/director/lingo/lingo-gr.cpp"
+#line 3711 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 230: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3708 "engines/director/lingo/lingo-gr.cpp"
+#line 3717 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 231: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3714 "engines/director/lingo/lingo-gr.cpp"
+#line 3723 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 232: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3720 "engines/director/lingo/lingo-gr.cpp"
+#line 3729 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* chunktype: tCHAR */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 233: /* chunktype: tCHAR */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3726 "engines/director/lingo/lingo-gr.cpp"
+#line 3735 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* chunktype: tWORD */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 234: /* chunktype: tWORD */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3732 "engines/director/lingo/lingo-gr.cpp"
+#line 3741 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* chunktype: tITEM */
-#line 699 "engines/director/lingo/lingo-gr.y"
+ case 235: /* chunktype: tITEM */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3738 "engines/director/lingo/lingo-gr.cpp"
+#line 3747 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* chunktype: tLINE */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 236: /* chunktype: tLINE */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3744 "engines/director/lingo/lingo-gr.cpp"
+#line 3753 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* list: '[' exprlist ']' */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 239: /* list: '[' exprlist ']' */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3750 "engines/director/lingo/lingo-gr.cpp"
+#line 3759 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* list: '[' ':' ']' */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 240: /* list: '[' ':' ']' */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3756 "engines/director/lingo/lingo-gr.cpp"
+#line 3765 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* list: '[' proplist ']' */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 241: /* list: '[' proplist ']' */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3762 "engines/director/lingo/lingo-gr.cpp"
+#line 3771 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* proplist: proppair */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 242: /* proplist: proppair */
+#line 713 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3771 "engines/director/lingo/lingo-gr.cpp"
+#line 3780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* proplist: proplist ',' proppair */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 243: /* proplist: proplist ',' proppair */
+#line 717 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3779 "engines/director/lingo/lingo-gr.cpp"
+#line 3788 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* proppair: tSYMBOL ':' expr */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 244: /* proppair: tSYMBOL ':' expr */
+#line 722 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3785 "engines/director/lingo/lingo-gr.cpp"
+#line 3794 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* proppair: ID ':' expr */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 245: /* proppair: ID ':' expr */
+#line 723 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3791 "engines/director/lingo/lingo-gr.cpp"
+#line 3800 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* proppair: tSTRING ':' expr */
-#line 721 "engines/director/lingo/lingo-gr.y"
+ case 246: /* proppair: tSTRING ':' expr */
+#line 724 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3797 "engines/director/lingo/lingo-gr.cpp"
+#line 3806 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* unarymath: '+' simpleexpr */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 247: /* unarymath: '+' simpleexpr */
+#line 727 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3803 "engines/director/lingo/lingo-gr.cpp"
+#line 3812 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* unarymath: '-' simpleexpr */
-#line 725 "engines/director/lingo/lingo-gr.y"
+ case 248: /* unarymath: '-' simpleexpr */
+#line 728 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3809 "engines/director/lingo/lingo-gr.cpp"
+#line 3818 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* expr: expr '+' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 253: /* expr: expr '+' expr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3815 "engines/director/lingo/lingo-gr.cpp"
+#line 3824 "engines/director/lingo/lingo-gr.cpp"
break;
- case 252: /* expr: expr '-' expr */
-#line 736 "engines/director/lingo/lingo-gr.y"
+ case 254: /* expr: expr '-' expr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3821 "engines/director/lingo/lingo-gr.cpp"
+#line 3830 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* expr: expr '*' expr */
-#line 737 "engines/director/lingo/lingo-gr.y"
+ case 255: /* expr: expr '*' expr */
+#line 740 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3827 "engines/director/lingo/lingo-gr.cpp"
+#line 3836 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* expr: expr '/' expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr: expr '/' expr */
+#line 741 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3833 "engines/director/lingo/lingo-gr.cpp"
+#line 3842 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* expr: expr tMOD expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr: expr tMOD expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3839 "engines/director/lingo/lingo-gr.cpp"
+#line 3848 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr: expr '>' expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr: expr '>' expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3845 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr: expr '<' expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr: expr '<' expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3851 "engines/director/lingo/lingo-gr.cpp"
+#line 3860 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr: expr tEQ expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr: expr tEQ expr */
+#line 745 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3857 "engines/director/lingo/lingo-gr.cpp"
+#line 3866 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr: expr tNEQ expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr: expr tNEQ expr */
+#line 746 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3863 "engines/director/lingo/lingo-gr.cpp"
+#line 3872 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr: expr tGE expr */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr: expr tGE expr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3869 "engines/director/lingo/lingo-gr.cpp"
+#line 3878 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr: expr tLE expr */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr: expr tLE expr */
+#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3875 "engines/director/lingo/lingo-gr.cpp"
+#line 3884 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr: expr tAND expr */
-#line 746 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr: expr tAND expr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3881 "engines/director/lingo/lingo-gr.cpp"
+#line 3890 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr: expr tOR expr */
-#line 747 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr: expr tOR expr */
+#line 750 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3887 "engines/director/lingo/lingo-gr.cpp"
+#line 3896 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr: expr '&' expr */
-#line 748 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr: expr '&' expr */
+#line 751 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3893 "engines/director/lingo/lingo-gr.cpp"
+#line 3902 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr: expr tCONCAT expr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr: expr tCONCAT expr */
+#line 752 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3899 "engines/director/lingo/lingo-gr.cpp"
+#line 3908 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr: expr tCONTAINS expr */
-#line 750 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr: expr tCONTAINS expr */
+#line 753 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3905 "engines/director/lingo/lingo-gr.cpp"
+#line 3914 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr: expr tSTARTS expr */
-#line 751 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr: expr tSTARTS expr */
+#line 754 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3911 "engines/director/lingo/lingo-gr.cpp"
+#line 3920 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 760 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3917 "engines/director/lingo/lingo-gr.cpp"
+#line 3926 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 761 "engines/director/lingo/lingo-gr.y"
+ case 273: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3923 "engines/director/lingo/lingo-gr.cpp"
+#line 3932 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 762 "engines/director/lingo/lingo-gr.y"
+ case 274: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3929 "engines/director/lingo/lingo-gr.cpp"
+#line 3938 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 763 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3935 "engines/director/lingo/lingo-gr.cpp"
+#line 3944 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 764 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3941 "engines/director/lingo/lingo-gr.cpp"
+#line 3950 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3947 "engines/director/lingo/lingo-gr.cpp"
+#line 3956 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 766 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3953 "engines/director/lingo/lingo-gr.cpp"
+#line 3962 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 767 "engines/director/lingo/lingo-gr.y"
+ case 279: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3959 "engines/director/lingo/lingo-gr.cpp"
+#line 3968 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 768 "engines/director/lingo/lingo-gr.y"
+ case 280: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3965 "engines/director/lingo/lingo-gr.cpp"
+#line 3974 "engines/director/lingo/lingo-gr.cpp"
break;
- case 279: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 769 "engines/director/lingo/lingo-gr.y"
+ case 281: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 772 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3971 "engines/director/lingo/lingo-gr.cpp"
+#line 3980 "engines/director/lingo/lingo-gr.cpp"
break;
- case 280: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 770 "engines/director/lingo/lingo-gr.y"
+ case 282: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 773 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3977 "engines/director/lingo/lingo-gr.cpp"
+#line 3986 "engines/director/lingo/lingo-gr.cpp"
break;
- case 281: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 771 "engines/director/lingo/lingo-gr.y"
+ case 283: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3983 "engines/director/lingo/lingo-gr.cpp"
+#line 3992 "engines/director/lingo/lingo-gr.cpp"
break;
- case 282: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 772 "engines/director/lingo/lingo-gr.y"
+ case 284: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 775 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3989 "engines/director/lingo/lingo-gr.cpp"
+#line 3998 "engines/director/lingo/lingo-gr.cpp"
break;
- case 283: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 773 "engines/director/lingo/lingo-gr.y"
+ case 285: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 776 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3995 "engines/director/lingo/lingo-gr.cpp"
+#line 4004 "engines/director/lingo/lingo-gr.cpp"
break;
- case 284: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 774 "engines/director/lingo/lingo-gr.y"
+ case 286: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 777 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4001 "engines/director/lingo/lingo-gr.cpp"
+#line 4010 "engines/director/lingo/lingo-gr.cpp"
break;
- case 285: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 775 "engines/director/lingo/lingo-gr.y"
+ case 287: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 778 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4007 "engines/director/lingo/lingo-gr.cpp"
+#line 4016 "engines/director/lingo/lingo-gr.cpp"
break;
- case 286: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 776 "engines/director/lingo/lingo-gr.y"
+ case 288: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 779 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4013 "engines/director/lingo/lingo-gr.cpp"
+#line 4022 "engines/director/lingo/lingo-gr.cpp"
break;
- case 287: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 779 "engines/director/lingo/lingo-gr.y"
+ case 289: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 782 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4019 "engines/director/lingo/lingo-gr.cpp"
+#line 4028 "engines/director/lingo/lingo-gr.cpp"
break;
- case 288: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 780 "engines/director/lingo/lingo-gr.y"
+ case 290: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 783 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4025 "engines/director/lingo/lingo-gr.cpp"
+#line 4034 "engines/director/lingo/lingo-gr.cpp"
break;
- case 289: /* exprlist: %empty */
-#line 783 "engines/director/lingo/lingo-gr.y"
+ case 291: /* exprlist: %empty */
+#line 786 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 4031 "engines/director/lingo/lingo-gr.cpp"
+#line 4040 "engines/director/lingo/lingo-gr.cpp"
break;
- case 291: /* nonemptyexprlist: expr */
-#line 787 "engines/director/lingo/lingo-gr.y"
+ case 293: /* nonemptyexprlist: expr */
+#line 790 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 4040 "engines/director/lingo/lingo-gr.cpp"
+#line 4049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 292: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 791 "engines/director/lingo/lingo-gr.y"
+ case 294: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 794 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4048 "engines/director/lingo/lingo-gr.cpp"
+#line 4057 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 4052 "engines/director/lingo/lingo-gr.cpp"
+#line 4061 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4247,7 +4256,7 @@ yyreturn:
return yyresult;
}
-#line 796 "engines/director/lingo/lingo-gr.y"
+#line 799 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 84ba87e555..e45a4de448 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -503,7 +503,7 @@ ifstmt: tIF expr tTHEN stmt {
NodeList *stmtlist = new NodeList;
stmtlist->push_back($stmt);
$$ = new IfStmtNode($expr, stmtlist); }
- | tIF expr tTHEN '\n' stmtlist_insideif tENDIF '\n' {
+ | tIF expr tTHEN '\n' stmtlist_insideif endif {
$$ = new IfStmtNode($expr, $stmtlist_insideif); }
;
@@ -513,7 +513,7 @@ ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back($stmt2);
$$ = new IfElseStmtNode($expr, stmtlist1, stmtlist2); }
- | tIF expr tTHEN stmt[stmt1] tELSE '\n' stmtlist_insideif[stmtlist2] tENDIF '\n' {
+ | tIF expr tTHEN stmt[stmt1] tELSE '\n' stmtlist_insideif[stmtlist2] endif {
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back($stmt1);
$$ = new IfElseStmtNode($expr, stmtlist1, $stmtlist2); }
@@ -521,10 +521,13 @@ ifelsestmt: tIF expr tTHEN stmt[stmt1] tELSE stmt[stmt2] {
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back($stmt2);
$$ = new IfElseStmtNode($expr, $stmtlist1, stmtlist2); }
- | tIF expr tTHEN '\n' stmtlist_insideif[stmtlist1] tELSE '\n' stmtlist_insideif[stmtlist2] tENDIF '\n' {
+ | tIF expr tTHEN '\n' stmtlist_insideif[stmtlist1] tELSE '\n' stmtlist_insideif[stmtlist2] endif {
$$ = new IfElseStmtNode($expr, $stmtlist1, $stmtlist2); }
;
+endif: /* empty */ { warning("LingoCompiler::parse: no end if"); }
+ | tENDIF '\n' ;
+
loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' {
$$ = new RepeatWhileNode($expr, $stmtlist); }
| tREPEAT tWITH ID tEQ expr[start] tTO expr[end] '\n' stmtlist tENDREPEAT '\n' {
Commit: ace4d11cf7d33563950cf9e488d270205c7c0fd9
https://github.com/scummvm/scummvm/commit/ace4d11cf7d33563950cf9e488d270205c7c0fd9
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Allow trailing comma in function args
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 7fa5499a95..75f29cf293 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -641,16 +641,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4008
+#define YYLAST 4279
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 63
/* YYNRULES -- Number of rules. */
-#define YYNRULES 294
+#define YYNRULES 297
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 538
+#define YYNSTATES 544
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -721,23 +721,23 @@ static const yytype_int16 yyrline[] =
385, 386, 389, 390, 391, 392, 393, 394, 397, 398,
399, 402, 403, 404, 405, 406, 407, 408, 409, 414,
415, 416, 417, 420, 423, 428, 432, 438, 443, 446,
- 452, 452, 458, 463, 469, 475, 481, 489, 490, 491,
- 492, 495, 495, 497, 498, 499, 502, 506, 510, 516,
- 520, 524, 528, 529, 531, 533, 535, 537, 541, 545,
- 549, 551, 552, 556, 562, 569, 570, 573, 574, 578,
- 584, 591, 592, 598, 599, 600, 601, 602, 603, 604,
- 605, 606, 607, 608, 609, 612, 614, 615, 618, 619,
- 622, 623, 624, 626, 628, 630, 632, 634, 636, 638,
- 642, 643, 646, 651, 654, 660, 661, 662, 663, 666,
- 667, 668, 669, 670, 673, 675, 676, 677, 680, 681,
- 682, 683, 684, 685, 686, 687, 688, 689, 693, 694,
- 695, 696, 697, 700, 701, 702, 703, 706, 706, 708,
- 709, 710, 713, 717, 722, 723, 724, 727, 728, 731,
- 732, 736, 737, 738, 739, 740, 741, 742, 743, 744,
- 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
- 761, 762, 763, 764, 765, 766, 767, 768, 769, 770,
- 771, 772, 773, 774, 775, 776, 777, 778, 779, 782,
- 783, 786, 787, 790, 794
+ 451, 457, 457, 463, 468, 474, 480, 486, 494, 495,
+ 496, 497, 500, 500, 502, 503, 504, 507, 511, 515,
+ 521, 525, 529, 533, 534, 536, 538, 540, 542, 546,
+ 550, 554, 556, 557, 561, 567, 574, 575, 578, 579,
+ 583, 589, 596, 597, 603, 604, 605, 606, 607, 608,
+ 609, 610, 611, 612, 613, 614, 615, 618, 620, 621,
+ 624, 625, 628, 629, 630, 632, 634, 636, 638, 640,
+ 642, 644, 648, 649, 652, 657, 660, 665, 671, 672,
+ 673, 674, 677, 678, 679, 680, 681, 684, 686, 687,
+ 688, 691, 692, 693, 694, 695, 696, 697, 698, 699,
+ 700, 704, 705, 706, 707, 708, 711, 712, 713, 714,
+ 717, 717, 719, 720, 721, 724, 728, 733, 734, 735,
+ 738, 739, 742, 743, 747, 748, 749, 750, 751, 752,
+ 753, 754, 755, 756, 757, 758, 759, 760, 761, 762,
+ 763, 764, 765, 772, 773, 774, 775, 776, 777, 778,
+ 779, 780, 781, 782, 783, 784, 785, 786, 787, 788,
+ 789, 790, 793, 794, 797, 798, 801, 805
};
#endif
@@ -805,7 +805,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-483)
+#define YYPACT_NINF (-484)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -819,60 +819,61 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2375, -483, -483, -483, -483, -483, -483, -16, -483, 2945,
- 1411, 1508, -483, -483, 2945, -483, 5, -483, -483, 1605,
- 59, 3024, -483, 2945, -483, -483, 2945, 1605, 1411, 2945,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, 1508, 2945, 2945, -71, 3339, -483, 38,
- 2375, -483, -483, -483, -483, 1605, -483, -483, -483, -483,
- -483, -483, -483, -483, -483, -483, -483, -24, -483, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, -12, 13, -483, -483, -483, -483, 1702,
- 1702, 1702, 1702, 1508, 1508, 1799, 1508, 1508, 1508, 1508,
- 3103, 1508, 1799, 1799, 1217, 633, 27, 30, 34, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- 732, -483, 1508, 3524, 2945, 35, 46, 829, 2945, 1508,
- 3182, -483, -483, -9, -483, 108, 57, 60, 926, 62,
- 66, 67, 419, 69, 2945, -483, -483, -483, -483, 74,
- 1023, -483, -483, 2945, 1314, -483, -483, -483, -483, -483,
- 1120, 3887, -483, 497, 519, 3394, 3416, -20, 41, 43,
- 44, 45, 85, 117, 124, 3833, -483, -483, -483, 3556,
- 53, 71, 70, -79, -23, -483, 3887, 73, 79, 1508,
- -483, -483, 159, 1508, 1508, 1508, 1508, 2090, 2090, 2284,
- 1508, 2187, 2187, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
- 1508, -483, -483, 3650, -483, 3637, 2455, 1508, 1508, 1508,
- 1508, 1508, 90, -483, -483, 3261, 3261, 3261, -11, 3663,
- 160, -483, -483, 1508, 1508, -66, -483, 1508, -483, -483,
- -483, 3339, 2535, -483, 93, -483, -483, -483, 3578, 165,
- 3900, 1799, 1508, 1799, 1508, 1799, 1508, 1799, 1508, -483,
- -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
- -483, -483, -483, 32, 1896, 1993, 1799, 1799, 1508, -483,
- 1508, 1508, -483, 1508, 2866, -483, -483, 1508, 92, 1508,
- 10, 10, 10, 10, 3913, 3913, -483, 14, 10, 10,
- 10, 10, 14, -26, -26, -483, -483, 95, 1508, 1508,
- 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
- 1508, 1508, 1508, 1508, 1508, 1508, -483, 2775, 178, 2535,
- -483, 98, -483, 99, 100, 1508, 1508, 2535, 1993, 3719,
- 3887, 2945, -483, -483, -483, -66, -483, 3732, -483, -483,
- -483, 111, 2535, -483, 2535, 1508, 1508, -483, 334, -483,
- 3448, -483, 3470, -483, 3502, -483, -483, 1799, 32, 32,
- 32, 32, 1799, 1799, 32, 1799, 1799, -483, -483, -483,
- -483, -483, -483, 24, 3887, 3887, 3887, 53, 71, 96,
- -483, 3887, -483, 3887, 1508, -483, 10, 10, 10, 10,
- 3913, 3913, -483, 14, 10, 10, 10, 10, 14, -26,
- -26, -483, -483, 95, -483, -483, -5, 2775, -483, 2615,
- -483, -483, -483, -483, 3745, -2, 114, -483, 2945, -483,
- -483, 104, -483, 192, 50, 3887, 1799, 1799, 1799, 1799,
- -483, 1799, 1799, 1799, 1799, -483, 176, 134, -483, -483,
- -483, -483, 2695, 109, -483, -483, 2775, -483, 2535, 174,
- 1508, 113, 115, -483, 2945, -483, -483, -483, -483, -483,
- -483, -483, -483, -483, 140, 1799, -483, 2775, -483, -483,
- 128, 129, 1508, 3801, -483, 2535, 18, -483, 1799, 128,
- -483, 119, 3814, 2535, -483, -483, 2945, -483, -483, -483,
- 2535, 131, -483, 133, 121, 123, -483, -483
+ 2676, -484, -484, -484, -484, -484, -484, -22, -484, 3246,
+ 1712, 1809, -484, -484, 3246, -484, 13, -484, -484, 1906,
+ 10, 3325, -484, 3246, -484, -484, 3246, 1906, 1712, 3246,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, 1809, 3246, 3246, -43, 3640, -484, 60,
+ 2676, -484, -484, -484, -484, 1906, -484, -484, -484, -484,
+ -484, -484, -484, -484, -484, -484, -484, 20, -484, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, 21, -30, -484, -484, -484, -484, 2003,
+ 2003, 2003, 2003, 1809, 1809, 2100, 1809, 1809, 1809, 1809,
+ 3404, 1809, 2100, 2100, 1227, 643, 6, 28, 30, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ 742, -484, 1809, 344, 3246, 37, 43, 839, 3246, 1809,
+ 3483, -484, -484, -3, -484, 74, 44, 51, 936, 52,
+ 53, 55, 3762, 57, 3246, -484, -484, -484, -484, 66,
+ 1033, -484, -484, 3246, 1324, -484, -484, -484, -484, -484,
+ 1130, 4114, -484, 424, 455, 528, 3695, -31, -26, -21,
+ -20, -17, 47, 137, 140, 4101, -484, -484, -484, 3795,
+ -24, 68, 62, -16, -8, -484, 4114, 70, 71, 1421,
+ -484, -484, 148, 1809, 1809, 1809, 1809, 2391, 2391, 2585,
+ 1809, 2488, 2488, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+ 1809, -484, -484, 3880, -484, 3867, 2756, 1809, 1809, 1809,
+ 1809, 1809, 78, -484, -484, 3562, 3562, 3562, -10, 3937,
+ 150, -484, -484, 1809, 1809, -60, -484, 1809, -484, -484,
+ -484, 3640, 2836, -484, 83, -484, -484, -484, 3854, 155,
+ 4130, 2100, 1809, 2100, 1809, 2100, 1809, 2100, 1809, -484,
+ -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+ -484, -484, -484, 46, 2197, 2294, 2100, 2100, 1518, -484,
+ 1809, 1809, -484, 1809, 3167, -484, -484, 1809, -484, 84,
+ 1809, -29, -29, -29, -29, 4184, 4184, -484, 4, -29,
+ -29, -29, -29, 4, -9, -9, -484, -484, 84, 1809,
+ 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
+ 1809, 1809, 1809, 1809, 1809, 1809, 1809, -484, 3076, 167,
+ 2836, -484, 94, -484, 96, 97, 1809, 1809, 2836, 2294,
+ 3950, 4114, 3246, -484, -484, -484, -60, -484, 3963, -484,
+ -484, -484, 109, 2836, -484, 2836, 1615, 1809, -484, 541,
+ -484, 3708, -484, 3728, -484, 3782, -484, -484, 2100, 46,
+ 46, 46, 46, 2100, 2100, 46, 2100, 2100, -484, -484,
+ -484, -484, -484, -484, -484, 84, 4114, 4114, 4114, -24,
+ 68, 95, -484, 4114, 1809, 99, 4114, -484, -29, -29,
+ -29, -29, 4184, 4184, -484, 4, -29, -29, -29, -29,
+ 4, -9, -9, -484, -484, 84, -484, -484, -1, 3076,
+ -484, 2916, -484, -484, -484, -484, 4019, 67, 111, -484,
+ 3246, -484, -484, 103, -484, 191, -484, 84, 4114, 2100,
+ 2100, 2100, 2100, -484, 2100, 2100, 2100, 2100, -484, 174,
+ 132, -484, -484, 104, -484, -484, 2996, 108, -484, -484,
+ 3076, -484, 2836, 172, 1809, 112, 113, -484, 3246, 114,
+ -484, -484, -484, -484, -484, -484, -484, -484, 141, 2100,
+ -484, -484, 3076, -484, -484, 126, 129, 1809, 4032, -484,
+ 2836, -68, -484, -484, 2100, 126, -484, 119, 4045, 2836,
+ -484, -484, 3246, -484, -484, -484, 2836, 131, -484, 133,
+ 121, 124, -484, -484
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -891,72 +892,73 @@ static const yytype_int16 yydefact[] =
109, 110, 103, 104, 105, 106, 107, 0, 121, 79,
78, 80, 82, 83, 84, 86, 53, 92, 59, 62,
93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
- 61, 77, 98, 0, 96, 173, 174, 176, 175, 31,
+ 61, 77, 98, 0, 96, 174, 175, 177, 176, 31,
37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
- 68, 65, 0, 0, 0, 291, 185, 0, 0, 249,
- 180, 181, 182, 183, 205, 206, 207, 184, 250, 251,
- 130, 252, 0, 0, 95, 0, 0, 130, 0, 0,
- 68, 185, 188, 0, 189, 0, 0, 0, 130, 0,
+ 68, 65, 0, 0, 0, 294, 187, 0, 0, 252,
+ 182, 183, 184, 185, 208, 209, 210, 186, 253, 254,
+ 131, 255, 0, 0, 95, 0, 0, 131, 0, 0,
+ 68, 187, 190, 0, 191, 0, 0, 0, 131, 0,
0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
- 130, 120, 143, 97, 0, 191, 202, 190, 200, 201,
- 132, 133, 177, 0, 0, 0, 0, 25, 26, 27,
- 47, 63, 44, 55, 215, 0, 247, 248, 128, 0,
- 176, 175, 0, 185, 0, 242, 293, 0, 292, 291,
+ 131, 120, 144, 97, 0, 193, 204, 192, 202, 203,
+ 133, 134, 178, 0, 0, 0, 0, 25, 26, 27,
+ 47, 63, 44, 55, 218, 0, 250, 251, 128, 0,
+ 177, 176, 0, 187, 0, 245, 296, 0, 295, 0,
113, 114, 56, 0, 0, 0, 0, 29, 57, 51,
0, 34, 66, 0, 0, 0, 0, 0, 0, 0,
- 131, 124, 270, 130, 271, 0, 0, 0, 0, 0,
+ 132, 124, 273, 131, 274, 0, 0, 0, 0, 0,
0, 0, 0, 119, 112, 41, 28, 30, 0, 0,
- 55, 141, 142, 0, 0, 13, 117, 73, 115, 116,
- 145, 0, 161, 144, 0, 111, 99, 203, 0, 56,
- 136, 0, 0, 0, 0, 0, 0, 0, 0, 218,
- 219, 220, 221, 222, 223, 224, 225, 226, 227, 233,
- 235, 236, 234, 0, 0, 0, 0, 0, 0, 179,
- 0, 0, 240, 0, 0, 241, 239, 0, 0, 0,
- 262, 263, 260, 261, 264, 265, 257, 267, 268, 269,
- 259, 258, 266, 253, 254, 255, 256, 130, 0, 0,
+ 55, 142, 143, 0, 0, 13, 117, 73, 115, 116,
+ 146, 0, 162, 145, 0, 111, 99, 205, 0, 56,
+ 137, 0, 0, 0, 0, 0, 0, 0, 0, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 230, 236,
+ 238, 239, 237, 0, 0, 0, 0, 0, 0, 181,
+ 0, 0, 243, 0, 0, 244, 242, 0, 179, 131,
+ 0, 265, 266, 263, 264, 267, 268, 260, 270, 271,
+ 272, 262, 261, 269, 256, 257, 258, 259, 131, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 131, 126, 167, 146, 161,
- 186, 0, 187, 0, 0, 0, 0, 161, 0, 0,
- 160, 0, 17, 18, 11, 14, 15, 0, 158, 165,
- 166, 0, 162, 163, 161, 0, 0, 192, 0, 196,
- 0, 198, 0, 194, 0, 237, 238, 0, 33, 43,
- 46, 76, 48, 49, 50, 64, 65, 217, 210, 209,
- 216, 289, 290, 0, 246, 244, 245, 0, 0, 0,
- 243, 294, 178, 135, 131, 125, 281, 282, 279, 280,
- 283, 284, 276, 286, 287, 288, 278, 277, 285, 272,
- 273, 274, 275, 130, 171, 172, 152, 168, 169, 0,
- 10, 137, 138, 139, 0, 0, 0, 140, 95, 16,
- 118, 0, 164, 20, 0, 134, 0, 0, 0, 0,
- 208, 0, 0, 0, 0, 214, 0, 0, 212, 213,
- 129, 127, 0, 0, 147, 170, 167, 148, 161, 0,
- 0, 0, 0, 159, 21, 204, 193, 197, 199, 195,
- 228, 230, 231, 229, 0, 0, 232, 167, 150, 153,
- 152, 0, 0, 0, 154, 161, 0, 22, 0, 152,
- 149, 0, 0, 161, 12, 19, 0, 211, 151, 157,
- 161, 0, 23, 0, 0, 0, 155, 156
+ 0, 0, 0, 0, 0, 0, 132, 126, 168, 147,
+ 162, 188, 0, 189, 0, 0, 0, 0, 162, 0,
+ 0, 161, 0, 17, 18, 11, 14, 15, 0, 159,
+ 166, 167, 0, 163, 164, 162, 0, 0, 194, 0,
+ 198, 0, 200, 0, 196, 0, 240, 241, 0, 33,
+ 43, 46, 76, 48, 49, 50, 64, 65, 220, 213,
+ 212, 219, 292, 293, 129, 131, 249, 247, 248, 0,
+ 0, 0, 246, 297, 132, 0, 136, 125, 284, 285,
+ 282, 283, 286, 287, 279, 289, 290, 291, 281, 280,
+ 288, 275, 276, 277, 278, 131, 172, 173, 153, 169,
+ 170, 0, 10, 138, 139, 140, 0, 0, 0, 141,
+ 95, 16, 118, 0, 165, 20, 206, 131, 135, 0,
+ 0, 0, 0, 211, 0, 0, 0, 0, 217, 0,
+ 0, 215, 216, 0, 180, 127, 0, 0, 148, 171,
+ 168, 149, 162, 0, 0, 0, 0, 160, 21, 0,
+ 195, 199, 201, 197, 231, 233, 234, 232, 0, 0,
+ 235, 130, 168, 151, 154, 153, 0, 0, 0, 155,
+ 162, 0, 22, 207, 0, 153, 150, 0, 0, 162,
+ 12, 19, 0, 214, 152, 158, 162, 0, 23, 0,
+ 0, 0, 156, 157
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -483, -483, -483, 151, -483, -483, -483, -483, -483, -153,
- -483, -483, 0, -7, -25, -483, 1, -349, -62, -483,
- 2, -240, 195, -483, -483, -483, -483, -483, -482, -483,
- -483, -483, -350, -483, -158, -459, -483, -222, -104, -15,
- -157, -483, -95, -483, 48, -483, -78, -251, 207, -483,
- -483, -483, -265, -483, -483, -85, -483, 132, 55, 40,
- -96, 12, -230
+ -484, -484, -484, 152, -484, -484, -484, -484, -484, -153,
+ -484, -484, 0, -7, -28, -484, 8, -346, -63, -484,
+ -2, -238, 196, -484, -484, -484, -484, -484, -483, -484,
+ -484, -484, -350, -484, -158, -479, -484, -223, -129, -18,
+ -180, -484, -164, -484, 17, -484, -78, -252, 209, -484,
+ -484, -484, -270, -484, -484, -83, -484, 136, 61, 42,
+ -35, -484, -213
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 69, 70, 71, 72, 73, 373, 374, 375, 376,
- 74, 516, 111, 136, 113, 114, 380, 77, 78, 79,
- 137, 241, 138, 80, 263, 81, 82, 83, 484, 84,
- 85, 86, 381, 382, 383, 446, 447, 448, 139, 140,
- 361, 163, 141, 142, 185, 143, 407, 408, 144, 145,
- 146, 303, 397, 147, 214, 215, 148, 149, 216, 243,
+ 0, 69, 70, 71, 72, 73, 374, 375, 376, 377,
+ 74, 521, 111, 136, 113, 114, 381, 77, 78, 79,
+ 137, 241, 138, 80, 263, 81, 82, 83, 488, 84,
+ 85, 86, 382, 383, 384, 448, 449, 450, 139, 140,
+ 362, 163, 141, 142, 185, 143, 408, 409, 144, 145,
+ 146, 303, 398, 147, 214, 215, 148, 149, 216, 243,
151, 217, 218
};
@@ -965,72 +967,73 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 75, 76, 112, 356, 171, 176, 162, 154, 445, 450,
- 337, 482, 365, 489, 161, 87, 165, 456, 371, 166,
- 219, 156, 112, 249, 313, 261, 175, 510, 520, 167,
- 169, 372, 490, 366, 463, 262, 155, 528, 177, 173,
- 223, 224, 225, 226, 247, 248, 242, 249, 519, 289,
- 230, 250, 251, 242, 244, 395, 290, 112, 174, 249,
- 396, 244, 230, 249, 242, 150, 153, 75, 238, 239,
- 75, 76, 244, 181, 157, 314, 242, 179, 413, 315,
- 483, 88, 168, 150, 244, 182, 242, 233, 234, 235,
- 236, 237, 238, 239, 244, 158, 159, 425, 445, 363,
- 364, 235, 236, 237, 238, 239, 236, 237, 238, 239,
- 291, 183, 293, 295, 297, 525, 526, 292, 172, 294,
- 296, 298, 317, 204, 480, 443, 219, 220, 213, 252,
- 180, 221, 253, 471, 472, 473, 474, 445, 511, 477,
- 299, 264, 300, 254, 301, 304, 302, 112, 317, 274,
- 495, 258, 305, 204, 265, 464, 310, 266, 445, 268,
- 362, 362, 362, 269, 270, 524, 273, 112, 187, 188,
- 189, 275, 312, 531, 311, 316, 276, 317, 190, 191,
- 533, 193, 194, 195, 196, 319, 205, 359, 368, 209,
- 384, 386, 422, 424, 449, 451, 452, 453, 461, 313,
- 491, 493, 494, 481, 504, 505, 509, 245, 512, 378,
- 514, 518, 515, 483, 259, 521, 529, 534, 536, 535,
- 537, 178, 459, 170, 462, 485, 506, 410, 164, 420,
- 280, 318, 0, 0, 0, 0, 0, 0, 0, 278,
- 360, 360, 360, 0, 0, 0, 75, 358, 161, 161,
- 161, 186, 186, 186, 186, 0, 0, 192, 0, 0,
- 0, 0, 0, 0, 206, 207, 0, 0, 0, 0,
- 0, 75, 75, 0, 0, 0, 0, 0, 320, 321,
- 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, 334, 335, 336, 0, 0, 0, 0, 0,
- 0, 0, 324, 325, 326, 328, 329, 419, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 369, 370,
- 0, 0, 377, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 388, 0, 390,
- 0, 392, 0, 394, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 75, 0, 75,
- 0, 0, 466, 0, 458, 414, 415, 75, 416, 0,
- 0, 0, 421, 0, 423, 0, 223, 224, 225, 226,
- 247, 248, 75, 249, 75, 0, 230, 250, 251, 0,
- 0, 0, 0, 426, 427, 428, 429, 430, 431, 432,
- 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
- 0, 0, 0, 387, 0, 389, 0, 391, 0, 393,
- 454, 455, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 0, 0, 492, 0, 0, 409, 409, 411, 412,
- 0, 465, 0, 0, 0, 0, 0, 75, 0, 75,
- 487, 112, 0, 271, 0, 0, 0, 0, 0, 0,
- 0, 223, 224, 225, 226, 247, 248, 0, 249, 0,
- 0, 230, 250, 251, 0, 0, 0, 0, 0, 421,
- 0, 0, 75, 508, 0, 0, 75, 517, 75, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 409, 0, 0, 0, 0, 0, 0, 75, 233, 234,
- 235, 236, 237, 238, 239, 75, 272, 0, 0, 532,
- 0, 0, 0, 75, 0, 281, 0, 0, 0, 470,
- 75, 282, 0, 0, 475, 476, 0, 478, 479, 223,
- 224, 225, 226, 247, 248, 513, 249, 283, 0, 230,
- 250, 251, 0, 284, 0, 0, 0, 0, 0, 0,
- 0, 223, 224, 225, 226, 247, 248, 522, 249, 0,
- 0, 230, 250, 251, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 0, 0, 0, 0, 496, 497,
- 498, 499, 0, 500, 501, 502, 503, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
+ 75, 171, 112, 162, 176, 357, 319, 154, 76, 87,
+ 452, 515, 447, 366, 161, 486, 165, 156, 458, 166,
+ 249, 242, 112, 230, 372, 167, 169, 338, 242, 531,
+ 532, 261, 526, 525, 367, 465, 173, 373, 289, 242,
+ 249, 262, 534, 291, 155, 290, 158, 159, 293, 295,
+ 292, 242, 297, 249, 175, 294, 296, 112, 174, 298,
+ 177, 242, 235, 236, 237, 238, 239, 75, 183, 396,
+ 75, 150, 153, 179, 397, 88, 364, 365, 76, 310,
+ 157, 425, 493, 219, 487, 238, 239, 313, 168, 150,
+ 314, 363, 363, 363, 315, 415, 236, 237, 238, 239,
+ 427, 494, 299, 447, 300, 219, 301, 264, 302, 223,
+ 224, 225, 226, 247, 248, 244, 249, 181, 182, 230,
+ 250, 251, 244, 204, 172, 220, 252, 221, 213, 474,
+ 475, 476, 477, 244, 253, 480, 180, 187, 188, 189,
+ 254, 265, 516, 445, 447, 244, 274, 112, 266, 268,
+ 269, 258, 270, 204, 273, 244, 233, 234, 235, 236,
+ 237, 238, 239, 275, 312, 304, 447, 112, 305, 317,
+ 530, 311, 316, 467, 320, 360, 276, 483, 369, 537,
+ 385, 387, 424, 451, 190, 191, 539, 193, 194, 195,
+ 196, 453, 205, 454, 455, 209, 463, 495, 313, 484,
+ 497, 498, 508, 509, 511, 514, 517, 485, 379, 519,
+ 520, 487, 524, 245, 523, 527, 535, 540, 542, 541,
+ 259, 543, 178, 461, 170, 464, 489, 411, 510, 499,
+ 164, 422, 280, 0, 0, 0, 0, 361, 361, 361,
+ 0, 0, 0, 0, 0, 278, 75, 0, 161, 161,
+ 161, 0, 0, 0, 359, 186, 186, 186, 186, 0,
+ 0, 192, 0, 0, 0, 0, 0, 0, 206, 207,
+ 0, 75, 75, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
+ 337, 0, 0, 0, 0, 0, 0, 421, 325, 326,
+ 327, 329, 330, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 370, 371, 0, 0, 378, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 475, 115, 116,
+ 0, 0, 0, 389, 0, 391, 0, 393, 0, 395,
+ 0, 0, 0, 0, 0, 0, 0, 0, 75, 0,
+ 75, 0, 0, 0, 0, 460, 0, 0, 75, 0,
+ 0, 416, 417, 0, 418, 0, 0, 246, 423, 0,
+ 0, 426, 0, 75, 0, 75, 223, 224, 225, 226,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 441, 442, 443, 444, 388, 0, 390,
+ 0, 392, 0, 394, 0, 0, 0, 456, 457, 0,
+ 0, 0, 496, 233, 234, 235, 236, 237, 238, 239,
+ 410, 410, 412, 413, 0, 0, 0, 0, 468, 75,
+ 0, 75, 281, 112, 0, 0, 0, 0, 282, 491,
+ 0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 0, 0, 283, 0, 423, 75, 0, 0, 284,
+ 75, 522, 75, 0, 513, 0, 0, 223, 224, 225,
+ 226, 247, 248, 0, 249, 410, 0, 230, 250, 251,
+ 0, 0, 75, 233, 234, 235, 236, 237, 238, 239,
+ 75, 0, 0, 0, 0, 538, 0, 0, 0, 75,
+ 0, 0, 0, 0, 473, 0, 75, 0, 0, 478,
+ 479, 0, 481, 482, 233, 234, 235, 236, 237, 238,
+ 239, 0, 0, 0, 0, 518, 285, 0, 0, 0,
+ 0, 0, 286, 0, 0, 0, 0, 0, 0, 469,
+ 223, 224, 225, 226, 247, 248, 0, 249, 528, 0,
+ 230, 250, 251, 223, 224, 225, 226, 247, 248, 0,
+ 249, 0, 0, 230, 250, 251, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 500, 501, 502, 503, 0,
+ 504, 505, 506, 507, 0, 0, 0, 233, 234, 235,
+ 236, 237, 238, 239, 0, 0, 0, 0, 0, 0,
+ 233, 234, 235, 236, 237, 238, 239, 0, 0, 0,
+ 0, 0, 0, 0, 0, 478, 0, 0, 115, 116,
1, 210, 211, 89, 119, 120, 121, 122, 6, 90,
- 527, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 533, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
@@ -1108,7 +1111,7 @@ static const yytype_int16 yytable[] =
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
0, 0, 0, 152, 277, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
- 123, 92, 93, 94, 12, 13, 95, 124, 96, 17,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
@@ -1116,7 +1119,7 @@ static const yytype_int16 yytable[] =
51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 134, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 152, 318, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
@@ -1125,7 +1128,7 @@ static const yytype_int16 yytable[] =
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
- 132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
+ 132, 133, 0, 0, 0, 0, 0, 152, 414, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
@@ -1135,24 +1138,24 @@ static const yytype_int16 yytable[] =
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
- 0, 0, 0, 0, 134, 0, 135, 115, 116, 1,
+ 0, 0, 0, 0, 152, 466, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
- 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 91, 123, 92, 93, 94, 12, 13, 95, 124, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
125, 33, 34, 35, 0, 36, 37, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
- 60, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
110, 0, 0, 0, 132, 133, 0, 0, 0, 0,
- 0, 184, 0, 135, 115, 116, 1, 117, 118, 89,
+ 0, 134, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
93, 94, 12, 13, 95, 15, 96, 17, 18, 97,
98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
105, 0, 0, 0, 0, 30, 31, 125, 33, 34,
35, 0, 36, 37, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 130, 58, 59, 60, 61, 62,
+ 53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
@@ -1160,99 +1163,136 @@ static const yytype_int16 yytable[] =
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
0, 0, 30, 31, 125, 33, 34, 35, 0, 36,
- 37, 126, 398, 127, 399, 128, 400, 129, 401, 46,
- 47, 48, 49, 50, 0, 51, 52, 402, 403, 404,
- 56, 130, 58, 405, 406, 61, 62, 106, 107, 108,
+ 37, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
109, 0, 0, 0, 110, 0, 0, 0, 132, 133,
- 0, 0, 0, 0, 0, 152, 0, 135, 115, 116,
+ 0, 0, 0, 0, 0, 134, 0, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 402, 403, 55, 56, 130, 58,
- 405, 406, 61, 62, 106, 107, 108, 109, 0, 0,
+ 50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
+ 59, 60, 61, 62, 106, 107, 108, 109, 0, 0,
0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
- 0, 0, 152, 0, 135, 115, 116, 1, 117, 118,
+ 0, 0, 184, 0, 135, 115, 116, 1, 117, 118,
89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
- 104, 105, 0, 0, 0, 0, 0, 0, 125, 33,
+ 104, 105, 0, 0, 0, 0, 30, 31, 125, 33,
34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
- 52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
+ 52, 53, 54, 55, 56, 130, 58, 59, 60, 61,
62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
0, 0, 132, 133, 0, 0, 0, 0, 0, 152,
0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
- 0, 0, 0, 0, 0, 125, 33, 34, 35, 0,
- 0, 0, 126, 39, 127, 41, 128, 43, 129, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
+ 0, 0, 0, 30, 31, 125, 33, 34, 35, 0,
+ 36, 37, 126, 399, 127, 400, 128, 401, 129, 402,
+ 46, 47, 48, 49, 50, 0, 51, 52, 403, 404,
+ 405, 56, 130, 58, 406, 407, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
- 0, 0, 125, 0, 34, 35, 0, 0, 0, 126,
+ 30, 31, 125, 33, 34, 35, 0, 36, 37, 126,
39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
- 58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
- 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 152, 0, 135, 2, 3, 4, 5,
- 6, 0, 0, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 0,
- 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
- 6, 0, 68, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
- 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
- 6, 0, 357, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
- 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
- 6, 0, 379, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
- 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
- 6, 0, 486, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
- 66, 0, 1, 67, 0, 0, 2, 3, 4, 5,
- 6, 0, 507, 7, 8, 9, 10, 11, 12, 13,
- 0, 15, 16, 17, 18, 19, 20, 21, 0, 22,
- 23, 24, 25, 0, 27, 28, 29, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 49, 50, 0, 51, 52, 403, 404, 55, 56, 130,
+ 58, 406, 407, 61, 62, 106, 107, 108, 109, 0,
+ 0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
+ 0, 0, 0, 152, 0, 135, 115, 116, 1, 117,
+ 118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
+ 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
+ 103, 104, 105, 0, 0, 0, 0, 0, 0, 125,
+ 33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
+ 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
+ 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
+ 61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
+ 0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
+ 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
+ 94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
+ 99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
+ 0, 0, 0, 0, 0, 0, 125, 33, 34, 35,
+ 0, 0, 0, 126, 39, 127, 41, 128, 43, 129,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
+ 107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
+ 132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
+ 115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
+ 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
+ 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
+ 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
+ 0, 0, 0, 125, 0, 34, 35, 0, 0, 0,
+ 126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
- 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
- 0, 0, 444, 1, 417, 418, 89, 2, 3, 4,
+ 130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
+ 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 152, 0, 135, 2, 3, 4,
+ 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
+ 5, 6, 0, 68, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
+ 5, 6, 0, 358, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
+ 5, 6, 0, 380, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
+ 5, 6, 0, 490, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
+ 5, 6, 0, 512, 7, 8, 9, 10, 11, 12,
+ 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
+ 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
+ 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
+ 0, 0, 0, 0, 67, 0, 0, 0, 0, 0,
+ 0, 0, 0, 446, 1, 419, 420, 89, 2, 3,
+ 4, 5, 6, 90, 0, 91, 8, 92, 93, 94,
+ 12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
+ 100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
+ 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 106, 107,
+ 108, 109, 0, 1, 0, 110, 89, 2, 3, 4,
5, 6, 90, 0, 91, 8, 92, 93, 94, 12,
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
@@ -1267,175 +1307,165 @@ static const yytype_int16 yytable[] =
0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 106, 107, 108, 109,
+ 160, 58, 59, 60, 61, 62, 106, 107, 108, 109,
0, 1, 0, 110, 89, 2, 3, 4, 5, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 160,
+ 39, 40, 41, 42, 43, 44, 45, 197, 198, 199,
+ 200, 201, 0, 51, 202, 53, 54, 55, 203, 57,
58, 59, 60, 61, 62, 106, 107, 108, 109, 0,
1, 0, 110, 89, 2, 3, 4, 5, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 197, 198, 199, 200,
- 201, 0, 51, 202, 53, 54, 55, 203, 57, 58,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 260, 57, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
- 0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
+ 0, 110, 89, 119, 120, 4, 5, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 260, 57, 58, 59,
- 60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
- 110, 89, 119, 120, 4, 5, 6, 90, 0, 91,
- 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
- 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
- 103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
- 33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
- 128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 106, 107, 108, 109, 1, 0, 0, 110,
- 2, 3, 4, 5, 6, 0, 0, 7, 8, 9,
- 10, 0, 12, 13, 0, 15, 16, 17, 18, 19,
- 98, 21, 0, 22, 0, 24, 25, 0, 27, 28,
- 29, 0, 0, 0, 0, 30, 31, 32, 33, 34,
- 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 106, 64, 285, 0, 0, 0, 0, 67, 286, 0,
- 0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
- 247, 248, 0, 249, 287, 0, 230, 250, 251, 0,
- 288, 0, 0, 0, 0, 0, 0, 0, 223, 224,
- 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
- 251, 0, 0, 0, 0, 0, 467, 0, 0, 0,
- 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 223, 224, 225, 226, 247, 248, 0, 249, 468, 0,
- 230, 250, 251, 0, 0, 233, 234, 235, 236, 237,
- 238, 239, 223, 224, 225, 226, 247, 248, 0, 249,
- 0, 0, 230, 250, 251, 0, 0, 0, 0, 0,
- 469, 0, 0, 0, 0, 0, 0, 233, 234, 235,
+ 32, 33, 34, 35, 0, 36, 37, 126, 39, 127,
+ 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 106, 107, 108, 109, 1, 0, 0,
+ 110, 2, 3, 4, 5, 6, 0, 0, 7, 8,
+ 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
+ 19, 98, 21, 0, 22, 0, 24, 25, 0, 27,
+ 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 106, 64, 287, 0, 0, 0, 0, 67, 288,
+ 0, 0, 0, 0, 0, 0, 470, 223, 224, 225,
+ 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
+ 223, 224, 225, 226, 247, 248, 471, 249, 0, 0,
+ 230, 250, 251, 0, 0, 0, 0, 0, 0, 0,
+ 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
+ 230, 250, 251, 0, 233, 234, 235, 236, 237, 238,
+ 239, 0, 0, 0, 0, 0, 271, 233, 234, 235,
236, 237, 238, 239, 223, 224, 225, 226, 247, 248,
- 0, 249, 0, 0, 230, 250, 251, 246, 0, 233,
- 234, 235, 236, 237, 238, 239, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 472, 249, 0, 0, 230, 250, 251, 233, 234, 235,
+ 236, 237, 238, 239, 223, 224, 225, 226, 247, 248,
+ 0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
+ 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
+ 0, 233, 234, 235, 236, 237, 238, 239, 0, 272,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239, 223, 224,
- 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
- 251, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
- 230, 250, 251, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 233, 234, 235, 236, 237,
- 238, 239, 0, 0, 308, 0, 309, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 233, 234, 235,
- 236, 237, 238, 239, 0, 0, 385, 0, 309, 223,
+ 0, 233, 234, 235, 236, 237, 238, 239, 0, 0,
+ 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
+ 239, 0, 0, 308, 0, 309, 223, 224, 225, 226,
+ 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
+ 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
+ 250, 251, 339, 340, 341, 342, 343, 344, 0, 345,
+ 0, 0, 346, 347, 348, 0, 0, 0, 0, 0,
+ 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
+ 0, 0, 386, 0, 309, 0, 233, 234, 235, 236,
+ 237, 238, 239, 0, 0, 0, 0, 309, 0, 349,
+ 350, 351, 352, 353, 354, 355, 0, 0, 356, 223,
224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 338, 339, 340, 341, 342, 343, 0, 344,
- 0, 0, 345, 346, 347, 223, 224, 225, 226, 247,
+ 250, 251, 223, 224, 225, 226, 247, 248, 0, 249,
+ 0, 0, 230, 250, 251, 223, 224, 225, 226, 247,
248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 0, 0, 0, 309, 0, 348,
- 349, 350, 351, 352, 353, 354, 0, 0, 355, 0,
+ 237, 238, 239, 0, 368, 0, 0, 0, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 459, 0, 0,
0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 367, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 462, 223, 224, 225, 226, 247, 248, 0, 249, 0,
0, 230, 250, 251, 223, 224, 225, 226, 247, 248,
0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 457, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239, 0, 460,
+ 235, 236, 237, 238, 239, 0, 492, 0, 0, 0,
+ 0, 233, 234, 235, 236, 237, 238, 239, 0, 529,
0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 488, 223, 224, 225, 226, 247, 248, 0,
+ 239, 0, 536, 223, 224, 225, 226, 247, 248, 0,
249, 0, 0, 230, 250, 251, 223, 224, 225, 226,
247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
- 0, 0, 0, 0, 0, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 0, 523, 0,
+ 0, 0, 339, 340, 341, 342, 343, 344, 0, 345,
+ 306, 307, 346, 347, 348, 0, 0, 0, 0, 0,
+ 233, 234, 235, 236, 237, 238, 239, 0, 0, 0,
0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 530, 306, 307, 0, 0, 0, 0, 0, 0,
- 0, 0, 233, 234, 235, 236, 237, 238, 239, 223,
- 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 338, 339, 340, 341, 342, 343, 0, 344,
- 0, 0, 345, 346, 347, 223, 224, 225, 226, 0,
- 0, 0, 249, 0, 0, 230, 250, 251, 0, 0,
- 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 0, 0, 0, 0, 0, 348,
- 349, 350, 351, 352, 353, 354, 0, 0, 0, 0,
- 0, 0, 233, 234, 235, 236, 237, 238, 239
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 349,
+ 350, 351, 352, 353, 354, 355, 223, 224, 225, 226,
+ 0, 0, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 233, 234, 235, 236, 237, 238, 239
};
static const yytype_int16 yycheck[] =
{
- 0, 0, 9, 243, 29, 67, 21, 14, 357, 359,
- 240, 16, 23, 15, 21, 31, 23, 367, 84, 26,
- 99, 19, 29, 49, 103, 34, 97, 486, 510, 27,
- 28, 97, 34, 44, 384, 44, 31, 519, 0, 64,
- 42, 43, 44, 45, 46, 47, 150, 49, 507, 69,
- 52, 53, 54, 157, 150, 23, 76, 64, 65, 49,
- 28, 157, 52, 49, 168, 10, 11, 67, 94, 95,
- 70, 70, 168, 97, 19, 98, 180, 75, 308, 102,
- 85, 97, 27, 28, 180, 97, 190, 89, 90, 91,
- 92, 93, 94, 95, 190, 36, 37, 337, 447, 256,
- 257, 91, 92, 93, 94, 95, 92, 93, 94, 95,
- 69, 98, 69, 69, 69, 97, 98, 76, 63, 76,
- 76, 76, 98, 130, 100, 355, 99, 97, 135, 154,
- 75, 97, 97, 398, 399, 400, 401, 486, 488, 404,
- 55, 33, 57, 97, 59, 28, 61, 154, 98, 174,
- 100, 158, 28, 160, 97, 385, 103, 97, 507, 97,
- 255, 256, 257, 97, 97, 515, 97, 174, 120, 121,
- 122, 97, 102, 523, 103, 102, 183, 98, 123, 124,
- 530, 126, 127, 128, 129, 26, 131, 97, 28, 134,
- 97, 26, 100, 98, 16, 97, 97, 97, 87, 103,
- 86, 97, 10, 443, 28, 71, 97, 152, 34, 271,
- 97, 71, 97, 85, 159, 86, 97, 86, 97, 86,
- 97, 70, 375, 28, 382, 447, 477, 305, 21, 314,
- 190, 219, -1, -1, -1, -1, -1, -1, -1, 184,
- 255, 256, 257, -1, -1, -1, 246, 246, 255, 256,
- 257, 119, 120, 121, 122, -1, -1, 125, -1, -1,
- -1, -1, -1, -1, 132, 133, -1, -1, -1, -1,
- -1, 271, 272, -1, -1, -1, -1, -1, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, -1, -1, -1, -1, -1,
- -1, -1, 247, 248, 249, 250, 251, 314, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 263, 264,
- -1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 282, -1, 284,
- -1, 286, -1, 288, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 357, -1, 359,
- -1, -1, 28, -1, 371, 310, 311, 367, 313, -1,
- -1, -1, 317, -1, 319, -1, 42, 43, 44, 45,
- 46, 47, 382, 49, 384, -1, 52, 53, 54, -1,
- -1, -1, -1, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- -1, -1, -1, 281, -1, 283, -1, 285, -1, 287,
- 365, 366, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, 458, -1, -1, 304, 305, 306, 307,
- -1, 386, -1, -1, -1, -1, -1, 447, -1, 449,
- 449, 458, -1, 34, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, 424,
- -1, -1, 482, 482, -1, -1, 486, 494, 488, -1,
+ 0, 29, 9, 21, 67, 243, 219, 14, 0, 31,
+ 360, 490, 358, 23, 21, 16, 23, 19, 368, 26,
+ 49, 150, 29, 52, 84, 27, 28, 240, 157, 97,
+ 98, 34, 515, 512, 44, 385, 64, 97, 69, 168,
+ 49, 44, 525, 69, 31, 76, 36, 37, 69, 69,
+ 76, 180, 69, 49, 97, 76, 76, 64, 65, 76,
+ 0, 190, 91, 92, 93, 94, 95, 67, 98, 23,
+ 70, 10, 11, 75, 28, 97, 256, 257, 70, 103,
+ 19, 319, 15, 99, 85, 94, 95, 103, 27, 28,
+ 98, 255, 256, 257, 102, 308, 92, 93, 94, 95,
+ 338, 34, 55, 449, 57, 99, 59, 33, 61, 42,
+ 43, 44, 45, 46, 47, 150, 49, 97, 97, 52,
+ 53, 54, 157, 130, 63, 97, 154, 97, 135, 399,
+ 400, 401, 402, 168, 97, 405, 75, 120, 121, 122,
+ 97, 97, 492, 356, 490, 180, 174, 154, 97, 97,
+ 97, 158, 97, 160, 97, 190, 89, 90, 91, 92,
+ 93, 94, 95, 97, 102, 28, 512, 174, 28, 98,
+ 520, 103, 102, 386, 26, 97, 183, 415, 28, 529,
+ 97, 26, 98, 16, 123, 124, 536, 126, 127, 128,
+ 129, 97, 131, 97, 97, 134, 87, 86, 103, 100,
+ 97, 10, 28, 71, 100, 97, 34, 445, 271, 97,
+ 97, 85, 71, 152, 100, 86, 97, 86, 97, 86,
+ 159, 97, 70, 376, 28, 383, 449, 305, 480, 467,
+ 21, 314, 190, -1, -1, -1, -1, 255, 256, 257,
+ -1, -1, -1, -1, -1, 184, 246, -1, 255, 256,
+ 257, -1, -1, -1, 246, 119, 120, 121, 122, -1,
+ -1, 125, -1, -1, -1, -1, -1, -1, 132, 133,
+ -1, 271, 272, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 223, 224, 225, 226, 227, 228,
+ 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
+ 239, -1, -1, -1, -1, -1, -1, 314, 247, 248,
+ 249, 250, 251, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 263, 264, -1, -1, 267, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 368, -1, -1, -1, -1, -1, -1, 507, 89, 90,
- 91, 92, 93, 94, 95, 515, 97, -1, -1, 526,
- -1, -1, -1, 523, -1, 28, -1, -1, -1, 397,
- 530, 34, -1, -1, 402, 403, -1, 405, 406, 42,
- 43, 44, 45, 46, 47, 490, 49, 28, -1, 52,
- 53, 54, -1, 34, -1, -1, -1, -1, -1, -1,
- -1, 42, 43, 44, 45, 46, 47, 512, 49, -1,
- -1, 52, 53, 54, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, 466, 467,
- 468, 469, -1, 471, 472, 473, 474, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 505, 5, 6,
+ -1, -1, -1, 282, -1, 284, -1, 286, -1, 288,
+ -1, -1, -1, -1, -1, -1, -1, -1, 358, -1,
+ 360, -1, -1, -1, -1, 372, -1, -1, 368, -1,
+ -1, 310, 311, -1, 313, -1, -1, 33, 317, -1,
+ -1, 320, -1, 383, -1, 385, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 281, -1, 283,
+ -1, 285, -1, 287, -1, -1, -1, 366, 367, -1,
+ -1, -1, 460, 89, 90, 91, 92, 93, 94, 95,
+ 304, 305, 306, 307, -1, -1, -1, -1, 387, 449,
+ -1, 451, 28, 460, -1, -1, -1, -1, 34, 451,
+ -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, 28, -1, 424, 486, -1, -1, 34,
+ 490, 498, 492, -1, 486, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, 49, 369, -1, 52, 53, 54,
+ -1, -1, 512, 89, 90, 91, 92, 93, 94, 95,
+ 520, -1, -1, -1, -1, 532, -1, -1, -1, 529,
+ -1, -1, -1, -1, 398, -1, 536, -1, -1, 403,
+ 404, -1, 406, 407, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, 494, 28, -1, -1, -1,
+ -1, -1, 34, -1, -1, -1, -1, -1, -1, 28,
+ 42, 43, 44, 45, 46, 47, -1, 49, 517, -1,
+ 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 469, 470, 471, 472, -1,
+ 474, 475, 476, 477, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, -1, -1, -1, -1, 509, -1, -1, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 518, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 524, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
@@ -1521,7 +1551,7 @@ static const yytype_int16 yycheck[] =
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
-1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
- 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
+ 99, 100, 101, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
@@ -1530,7 +1560,7 @@ static const yytype_int16 yycheck[] =
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
- 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ 92, 93, -1, -1, -1, -1, -1, 99, 100, 101,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
@@ -1540,7 +1570,7 @@ static const yytype_int16 yycheck[] =
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ -1, -1, -1, -1, 99, 100, 101, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -1583,7 +1613,7 @@ static const yytype_int16 yycheck[] =
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, -1, -1, -1, -1, -1, -1, 48, 49,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
@@ -1593,8 +1623,8 @@ static const yytype_int16 yycheck[] =
13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, -1,
- -1, -1, 55, 56, 57, 58, 59, 60, 61, 62,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
83, 84, -1, -1, -1, 88, -1, -1, -1, 92,
@@ -1603,61 +1633,98 @@ static const yytype_int16 yycheck[] =
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
- -1, -1, 48, -1, 50, 51, -1, -1, -1, 55,
+ 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- -1, -1, 88, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 7, 99, -1, 101, 11, 12, 13, 14,
- 15, -1, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ -1, -1, 88, -1, -1, -1, 92, 93, -1, -1,
+ -1, -1, -1, 99, -1, 101, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, -1, -1, 88,
+ -1, -1, -1, 92, 93, -1, -1, -1, -1, -1,
+ 99, -1, 101, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
+ -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
+ 92, 93, -1, -1, -1, -1, -1, 99, -1, 101,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
- 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
- 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
- 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
- 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
- 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ -1, -1, -1, 48, -1, 50, 51, -1, -1, -1,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
- 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
- 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
- 85, -1, 7, 88, -1, -1, 11, 12, 13, 14,
- 15, -1, 97, 18, 19, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, -1, 34,
- 35, 36, 37, -1, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
-1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
- -1, -1, 97, 7, 8, 9, 10, 11, 12, 13,
+ -1, -1, -1, 7, 99, -1, 101, 11, 12, 13,
+ 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
+ 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
+ -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
+ -1, -1, -1, 97, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
+ -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, -1, 7, -1, 88, 10, 11, 12, 13,
14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
@@ -1696,55 +1763,47 @@ static const yytype_int16 yycheck[] =
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, -1, 7, -1,
- 88, 10, 11, 12, 13, 14, 15, 16, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
- 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 7, -1, -1, 88,
- 11, 12, 13, 14, 15, -1, -1, 18, 19, 20,
- 21, -1, 23, 24, -1, 26, 27, 28, 29, 30,
- 31, 32, -1, 34, -1, 36, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, 46, 47, 48, 49, 50,
- 51, -1, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, -1, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 28, -1, -1, -1, -1, 88, 34, -1,
- -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
- 46, 47, -1, 49, 28, -1, 52, 53, 54, -1,
- 34, -1, -1, -1, -1, -1, -1, -1, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, 28, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- 42, 43, 44, 45, 46, 47, -1, 49, 28, -1,
- 52, 53, 54, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- 28, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 78, 79, 80, 81, 82, 83, 84, 7, -1, -1,
+ 88, 11, 12, 13, 14, 15, -1, -1, 18, 19,
+ 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
+ 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ 40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
+ 50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 28, -1, -1, -1, -1, 88, 34,
+ -1, -1, -1, -1, -1, -1, 28, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, 28, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, -1, 34, 89, 90, 91,
92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 33, -1, 89,
- 90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ 28, 49, -1, -1, 52, 53, 54, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, -1, -1, 98, -1, 100, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, -1, 100, 42,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, 98, -1, 100, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
+ 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
+ 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, 98, -1, 100, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, -1, -1, 100, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, 98, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
-1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, 100, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, 98, -1,
+ 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
-1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
@@ -1757,20 +1816,17 @@ static const yytype_int16 yycheck[] =
95, -1, 97, 42, 43, 44, 45, 46, 47, -1,
49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, -1, -1, -1, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, 97, -1,
+ -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
+ 79, 80, 52, 53, 54, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
-1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, 97, 79, 80, -1, -1, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, -1,
- -1, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
+ -1, -1, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1808,29 +1864,30 @@ static const yytype_uint8 yystos[] =
163, 28, 34, 28, 34, 28, 34, 28, 34, 69,
76, 69, 76, 69, 76, 69, 76, 69, 76, 55,
57, 59, 61, 155, 28, 28, 79, 80, 98, 100,
- 103, 103, 102, 103, 98, 102, 102, 98, 165, 26,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 166, 42, 43,
- 44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
- 91, 92, 93, 94, 95, 98, 125, 97, 120, 97,
- 143, 144, 146, 144, 144, 23, 44, 97, 28, 162,
- 162, 84, 97, 110, 111, 112, 113, 162, 122, 97,
- 120, 136, 137, 138, 97, 98, 26, 161, 162, 161,
- 162, 161, 162, 161, 162, 23, 28, 156, 56, 58,
- 60, 62, 71, 72, 73, 77, 78, 150, 151, 161,
- 150, 161, 161, 166, 162, 162, 162, 8, 9, 117,
- 159, 162, 100, 162, 98, 125, 162, 162, 162, 162,
+ 103, 103, 102, 103, 98, 102, 102, 98, 100, 166,
+ 26, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 166, 42,
+ 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
+ 90, 91, 92, 93, 94, 95, 98, 125, 97, 120,
+ 97, 143, 144, 146, 144, 144, 23, 44, 97, 28,
+ 162, 162, 84, 97, 110, 111, 112, 113, 162, 122,
+ 97, 120, 136, 137, 138, 97, 98, 26, 161, 162,
+ 161, 162, 161, 162, 161, 162, 23, 28, 156, 56,
+ 58, 60, 62, 71, 72, 73, 77, 78, 150, 151,
+ 161, 150, 161, 161, 100, 166, 162, 162, 162, 8,
+ 9, 117, 159, 162, 98, 125, 162, 125, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 166, 97, 121, 139, 140, 141, 16,
- 136, 97, 97, 97, 162, 162, 136, 97, 117, 113,
- 97, 87, 138, 136, 166, 162, 28, 28, 28, 28,
- 161, 156, 156, 156, 156, 161, 161, 156, 161, 161,
- 100, 125, 16, 85, 132, 141, 97, 120, 97, 15,
- 34, 86, 118, 97, 10, 100, 161, 161, 161, 161,
- 161, 161, 161, 161, 28, 71, 151, 97, 120, 97,
- 139, 136, 34, 162, 97, 97, 115, 117, 71, 139,
- 132, 86, 162, 97, 136, 97, 98, 161, 132, 97,
- 97, 136, 117, 136, 86, 86, 97, 97
+ 162, 162, 162, 162, 162, 166, 97, 121, 139, 140,
+ 141, 16, 136, 97, 97, 97, 162, 162, 136, 97,
+ 117, 113, 97, 87, 138, 136, 100, 166, 162, 28,
+ 28, 28, 28, 161, 156, 156, 156, 156, 161, 161,
+ 156, 161, 161, 125, 100, 125, 16, 85, 132, 141,
+ 97, 120, 97, 15, 34, 86, 118, 97, 10, 125,
+ 161, 161, 161, 161, 161, 161, 161, 161, 28, 71,
+ 151, 100, 97, 120, 97, 139, 136, 34, 162, 97,
+ 97, 115, 117, 100, 71, 139, 132, 86, 162, 97,
+ 136, 97, 98, 161, 132, 97, 97, 136, 117, 136,
+ 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1849,23 +1906,23 @@ static const yytype_uint8 yyr1[] =
120, 120, 121, 121, 121, 121, 121, 121, 122, 122,
122, 123, 123, 123, 123, 123, 123, 123, 123, 123,
123, 123, 123, 124, 124, 124, 124, 124, 124, 124,
- 125, 125, 126, 126, 126, 126, 126, 127, 127, 127,
- 127, 128, 128, 129, 129, 129, 130, 130, 131, 131,
- 131, 131, 132, 132, 133, 133, 133, 133, 134, 134,
- 135, 136, 136, 137, 137, 138, 138, 139, 139, 140,
- 140, 141, 141, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 142, 142, 143, 144, 144, 145, 145,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 147, 147, 148, 148, 148, 149, 149, 149, 149, 150,
- 150, 150, 150, 150, 151, 152, 152, 152, 153, 153,
- 153, 153, 153, 153, 153, 153, 153, 153, 154, 154,
- 154, 154, 154, 155, 155, 155, 155, 156, 156, 157,
- 157, 157, 158, 158, 159, 159, 159, 160, 160, 161,
- 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 124, 125, 125, 126, 126, 126, 126, 126, 127, 127,
+ 127, 127, 128, 128, 129, 129, 129, 130, 130, 131,
+ 131, 131, 131, 132, 132, 133, 133, 133, 133, 134,
+ 134, 135, 136, 136, 137, 137, 138, 138, 139, 139,
+ 140, 140, 141, 141, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 143, 144, 144,
+ 145, 145, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 147, 147, 148, 148, 148, 148, 149, 149,
+ 149, 149, 150, 150, 150, 150, 150, 151, 152, 152,
+ 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 154, 154, 154, 154, 154, 155, 155, 155, 155,
+ 156, 156, 157, 157, 157, 158, 158, 159, 159, 159,
+ 160, 160, 161, 161, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 163, 163, 163, 163, 163, 163, 163,
163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
- 163, 163, 163, 163, 163, 163, 163, 163, 163, 164,
- 164, 165, 165, 166, 166
+ 163, 163, 164, 164, 165, 165, 166, 166
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1883,24 +1940,24 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 0, 1, 2, 1, 3,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 3, 3, 3, 3, 3, 3, 3, 5, 3,
- 3, 2, 2, 0, 2, 4, 3, 5, 2, 5,
- 0, 1, 2, 2, 5, 4, 3, 5, 5, 5,
- 5, 1, 1, 3, 3, 3, 4, 6, 6, 8,
- 7, 9, 0, 2, 7, 11, 12, 9, 4, 6,
- 4, 0, 1, 1, 2, 1, 1, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 2, 4, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 4, 6, 4, 6, 4, 6, 4, 6,
- 2, 2, 1, 2, 5, 1, 1, 1, 5, 1,
- 1, 5, 2, 2, 2, 2, 4, 4, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 6, 6,
- 6, 6, 6, 1, 1, 1, 1, 1, 1, 3,
- 3, 3, 1, 3, 3, 3, 3, 2, 2, 1,
- 1, 1, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 2, 2, 0, 2, 4, 3, 5, 2, 4,
+ 6, 0, 1, 2, 2, 5, 4, 3, 5, 5,
+ 5, 5, 1, 1, 3, 3, 3, 4, 6, 6,
+ 8, 7, 9, 0, 2, 7, 11, 12, 9, 4,
+ 6, 4, 0, 1, 1, 2, 1, 1, 0, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 2, 3,
+ 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 4, 6, 4, 6, 4, 6,
+ 4, 6, 2, 2, 1, 2, 4, 6, 1, 1,
+ 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
+ 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
+ 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
+ 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
- 4, 0, 1, 1, 3
+ 3, 3, 4, 4, 0, 1, 1, 3
};
@@ -2174,37 +2231,37 @@ yydestruct (const char *yymsg,
case YYSYMBOL_tVARID: /* tVARID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2178 "engines/director/lingo/lingo-gr.cpp"
+#line 2235 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2184 "engines/director/lingo/lingo-gr.cpp"
+#line 2241 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2190 "engines/director/lingo/lingo-gr.cpp"
+#line 2247 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2196 "engines/director/lingo/lingo-gr.cpp"
+#line 2253 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2202 "engines/director/lingo/lingo-gr.cpp"
+#line 2259 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 189 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2208 "engines/director/lingo/lingo-gr.cpp"
+#line 2265 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2472,7 +2529,7 @@ yyreduce:
case 2: /* script: scriptpartlist */
#line 195 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2476 "engines/director/lingo/lingo-gr.cpp"
+#line 2533 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
@@ -2483,7 +2540,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2487 "engines/director/lingo/lingo-gr.cpp"
+#line 2544 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
@@ -2493,37 +2550,37 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2497 "engines/director/lingo/lingo-gr.cpp"
+#line 2554 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
#line 210 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2560 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2509 "engines/director/lingo/lingo-gr.cpp"
+#line 2566 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2572 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
#line 249 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2521 "engines/director/lingo/lingo-gr.cpp"
+#line 2578 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
#line 251 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2527 "engines/director/lingo/lingo-gr.cpp"
+#line 2584 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
@@ -2534,7 +2591,7 @@ yyreduce:
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2538 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
@@ -2544,13 +2601,13 @@ yyreduce:
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2548 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
#line 268 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2554 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
@@ -2559,446 +2616,446 @@ yyreduce:
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2563 "engines/director/lingo/lingo-gr.cpp"
+#line 2620 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
#line 278 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
#line 283 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2582 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
#line 292 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2594 "engines/director/lingo/lingo-gr.cpp"
+#line 2651 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2600 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2606 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2612 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2618 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2624 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2642 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2666 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2672 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2678 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2684 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2690 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2696 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2702 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2708 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2714 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2720 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2726 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2732 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2744 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2750 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2756 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2762 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2768 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2786 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2792 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2798 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSET */
#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSHORT */
#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSOUND */
#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2822 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSPRITE */
#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2828 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tSTARTS */
#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2834 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTELL */
#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 2840 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTHE */
#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tTIME */
#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2852 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tTO */
#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2858 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWHILE */
#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2864 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWINDOW */
#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2870 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWITH */
#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2876 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWITHIN */
#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2882 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* CMDID: tWORD */
#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2888 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* CMDID: tWORDS */
#line 343 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2894 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tELSE */
#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2900 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tENDCLAUSE */
#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tEXIT */
#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tFACTORY */
#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tGLOBAL */
#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2924 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tGO */
#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2930 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tIF */
#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2936 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tINSTANCE */
#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2942 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tMACRO */
#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tMETHOD */
#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2954 "engines/director/lingo/lingo-gr.cpp"
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tON */
#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 2960 "engines/director/lingo/lingo-gr.cpp"
+#line 3017 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tOPEN */
#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 2966 "engines/director/lingo/lingo-gr.cpp"
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPLAY */
#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 2972 "engines/director/lingo/lingo-gr.cpp"
+#line 3029 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tPROPERTY */
#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 2978 "engines/director/lingo/lingo-gr.cpp"
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tPUT */
#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 2984 "engines/director/lingo/lingo-gr.cpp"
+#line 3041 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 2990 "engines/director/lingo/lingo-gr.cpp"
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 2996 "engines/director/lingo/lingo-gr.cpp"
+#line 3053 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
#line 366 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 3002 "engines/director/lingo/lingo-gr.cpp"
+#line 3059 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: ID */
@@ -3007,7 +3064,7 @@ yyreduce:
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 3011 "engines/director/lingo/lingo-gr.cpp"
+#line 3068 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
@@ -3015,55 +3072,55 @@ yyreduce:
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3076 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmt: tENDIF '\n' */
#line 386 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: CMDID cmdargs '\n' */
#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3088 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPUT cmdargs '\n' */
#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tGO cmdargs '\n' */
#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tGO frameargs '\n' */
#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tPLAY cmdargs '\n' */
#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3112 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tPLAY frameargs '\n' */
#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 3118 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tOPEN cmdargs '\n' */
#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3067 "engines/director/lingo/lingo-gr.cpp"
+#line 3124 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tOPEN expr tWITH expr '\n' */
@@ -3073,31 +3130,31 @@ yyreduce:
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3077 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tNEXT tREPEAT '\n' */
#line 414 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3083 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* proc: tEXIT tREPEAT '\n' */
#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3089 "engines/director/lingo/lingo-gr.cpp"
+#line 3146 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tEXIT '\n' */
#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* proc: tASSERTERROR stmtoneliner */
#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3101 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: %empty */
@@ -3105,7 +3162,7 @@ yyreduce:
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3109 "engines/director/lingo/lingo-gr.cpp"
+#line 3166 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr trailingcomma */
@@ -3115,7 +3172,7 @@ yyreduce:
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3119 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
@@ -3124,7 +3181,7 @@ yyreduce:
// This matches `cmd args, ...)
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3128 "engines/director/lingo/lingo-gr.cpp"
+#line 3185 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
@@ -3135,7 +3192,7 @@ yyreduce:
args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3139 "engines/director/lingo/lingo-gr.cpp"
+#line 3196 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
@@ -3145,7 +3202,7 @@ yyreduce:
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3149 "engines/director/lingo/lingo-gr.cpp"
+#line 3206 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* cmdargs: '(' ')' */
@@ -3153,911 +3210,937 @@ yyreduce:
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3157 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* cmdargs: '(' expr ',' nonemptyexprlist ')' */
+ case 129: /* cmdargs: '(' expr ',' ')' */
#line 446 "engines/director/lingo/lingo-gr.y"
- {
+ {
+ // This matches `cmd(args,)`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-2].node));
+ (yyval.nodelist) = args; }
+#line 3224 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 130: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')' */
+#line 451 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `cmd(args, ...)`
- (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
- (yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3166 "engines/director/lingo/lingo-gr.cpp"
+ (yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
+ (yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 3233 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* frameargs: tFRAME expr */
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 133: /* frameargs: tFRAME expr */
+#line 463 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3243 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* frameargs: tMOVIE expr */
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 134: /* frameargs: tMOVIE expr */
+#line 468 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3187 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 469 "engines/director/lingo/lingo-gr.y"
+ case 135: /* frameargs: tFRAME expr tOF tMOVIE expr */
+#line 474 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3198 "engines/director/lingo/lingo-gr.cpp"
+#line 3265 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* frameargs: expr tOF tMOVIE expr */
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 136: /* frameargs: expr tOF tMOVIE expr */
+#line 480 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3209 "engines/director/lingo/lingo-gr.cpp"
+#line 3276 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* frameargs: tFRAME expr expr_nounarymath */
-#line 481 "engines/director/lingo/lingo-gr.y"
+ case 137: /* frameargs: tFRAME expr expr_nounarymath */
+#line 486 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3220 "engines/director/lingo/lingo-gr.cpp"
+#line 3287 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 489 "engines/director/lingo/lingo-gr.y"
+ case 138: /* asgn: tPUT expr tINTO varorchunk '\n' */
+#line 494 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3226 "engines/director/lingo/lingo-gr.cpp"
+#line 3293 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 490 "engines/director/lingo/lingo-gr.y"
+ case 139: /* asgn: tPUT expr tAFTER varorchunk '\n' */
+#line 495 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3232 "engines/director/lingo/lingo-gr.cpp"
+#line 3299 "engines/director/lingo/lingo-gr.cpp"
break;
- case 139: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 491 "engines/director/lingo/lingo-gr.y"
+ case 140: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3238 "engines/director/lingo/lingo-gr.cpp"
+#line 3305 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* asgn: tSET varorthe to expr '\n' */
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 141: /* asgn: tSET varorthe to expr '\n' */
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3244 "engines/director/lingo/lingo-gr.cpp"
+#line 3311 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* definevars: tGLOBAL idlist '\n' */
-#line 497 "engines/director/lingo/lingo-gr.y"
+ case 144: /* definevars: tGLOBAL idlist '\n' */
+#line 502 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3250 "engines/director/lingo/lingo-gr.cpp"
+#line 3317 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* definevars: tPROPERTY idlist '\n' */
-#line 498 "engines/director/lingo/lingo-gr.y"
+ case 145: /* definevars: tPROPERTY idlist '\n' */
+#line 503 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3256 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
break;
- case 145: /* definevars: tINSTANCE idlist '\n' */
-#line 499 "engines/director/lingo/lingo-gr.y"
+ case 146: /* definevars: tINSTANCE idlist '\n' */
+#line 504 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* ifstmt: tIF expr tTHEN stmt */
-#line 502 "engines/director/lingo/lingo-gr.y"
+ case 147: /* ifstmt: tIF expr tTHEN stmt */
+#line 507 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3271 "engines/director/lingo/lingo-gr.cpp"
+#line 3338 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif */
-#line 506 "engines/director/lingo/lingo-gr.y"
+ case 148: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif */
+#line 511 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
-#line 3278 "engines/director/lingo/lingo-gr.cpp"
+#line 3345 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 510 "engines/director/lingo/lingo-gr.y"
+ case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
+#line 515 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3289 "engines/director/lingo/lingo-gr.cpp"
+#line 3356 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif */
-#line 516 "engines/director/lingo/lingo-gr.y"
+ case 150: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif */
+#line 521 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-4].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
-#line 3298 "engines/director/lingo/lingo-gr.cpp"
+#line 3365 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
-#line 520 "engines/director/lingo/lingo-gr.y"
+ case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
+#line 525 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3307 "engines/director/lingo/lingo-gr.cpp"
+#line 3374 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif */
-#line 524 "engines/director/lingo/lingo-gr.y"
+ case 152: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif */
+#line 529 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
-#line 3314 "engines/director/lingo/lingo-gr.cpp"
+#line 3381 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* endif: %empty */
-#line 528 "engines/director/lingo/lingo-gr.y"
+ case 153: /* endif: %empty */
+#line 533 "engines/director/lingo/lingo-gr.y"
{ warning("LingoCompiler::parse: no end if"); }
-#line 3320 "engines/director/lingo/lingo-gr.cpp"
+#line 3387 "engines/director/lingo/lingo-gr.cpp"
break;
- case 154: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 155: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
+#line 536 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3327 "engines/director/lingo/lingo-gr.cpp"
+#line 3394 "engines/director/lingo/lingo-gr.cpp"
break;
- case 155: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 533 "engines/director/lingo/lingo-gr.y"
+ case 156: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 538 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3334 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 157: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
+#line 540 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3341 "engines/director/lingo/lingo-gr.cpp"
+#line 3408 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
-#line 537 "engines/director/lingo/lingo-gr.y"
+ case 158: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
+#line 542 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3348 "engines/director/lingo/lingo-gr.cpp"
+#line 3415 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* tell: tTELL expr tTO stmtoneliner */
-#line 541 "engines/director/lingo/lingo-gr.y"
+ case 159: /* tell: tTELL expr tTO stmtoneliner */
+#line 546 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3357 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 160: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
+#line 550 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+#line 3431 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* when: tWHEN ID tTHEN expr */
-#line 549 "engines/director/lingo/lingo-gr.y"
+ case 161: /* when: tWHEN ID tTHEN expr */
+#line 554 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3370 "engines/director/lingo/lingo-gr.cpp"
+#line 3437 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* stmtlist: %empty */
-#line 551 "engines/director/lingo/lingo-gr.y"
+ case 162: /* stmtlist: %empty */
+#line 556 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3376 "engines/director/lingo/lingo-gr.cpp"
+#line 3443 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* nonemptystmtlist: stmtlistline */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 164: /* nonemptystmtlist: stmtlistline */
+#line 561 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3454 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
-#line 562 "engines/director/lingo/lingo-gr.y"
+ case 165: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
+#line 567 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* stmtlistline: '\n' */
-#line 569 "engines/director/lingo/lingo-gr.y"
+ case 166: /* stmtlistline: '\n' */
+#line 574 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3470 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* stmtlist_insideif: %empty */
-#line 573 "engines/director/lingo/lingo-gr.y"
+ case 168: /* stmtlist_insideif: %empty */
+#line 578 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3476 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* nonemptystmtlist_insideif: stmtlistline_insideif */
-#line 578 "engines/director/lingo/lingo-gr.y"
+ case 170: /* nonemptystmtlist_insideif: stmtlistline_insideif */
+#line 583 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3420 "engines/director/lingo/lingo-gr.cpp"
+#line 3487 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
-#line 584 "engines/director/lingo/lingo-gr.y"
+ case 171: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
+#line 589 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3430 "engines/director/lingo/lingo-gr.cpp"
+#line 3497 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* stmtlistline_insideif: '\n' */
-#line 591 "engines/director/lingo/lingo-gr.y"
+ case 172: /* stmtlistline_insideif: '\n' */
+#line 596 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3436 "engines/director/lingo/lingo-gr.cpp"
+#line 3503 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* simpleexpr_nounarymath: tINT */
-#line 598 "engines/director/lingo/lingo-gr.y"
+ case 174: /* simpleexpr_nounarymath: tINT */
+#line 603 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+#line 3509 "engines/director/lingo/lingo-gr.cpp"
break;
- case 174: /* simpleexpr_nounarymath: tFLOAT */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 175: /* simpleexpr_nounarymath: tFLOAT */
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3448 "engines/director/lingo/lingo-gr.cpp"
+#line 3515 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* simpleexpr_nounarymath: tSYMBOL */
-#line 600 "engines/director/lingo/lingo-gr.y"
+ case 176: /* simpleexpr_nounarymath: tSYMBOL */
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3454 "engines/director/lingo/lingo-gr.cpp"
+#line 3521 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* simpleexpr_nounarymath: tSTRING */
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 177: /* simpleexpr_nounarymath: tSTRING */
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3460 "engines/director/lingo/lingo-gr.cpp"
+#line 3527 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 178: /* simpleexpr_nounarymath: tNOT simpleexpr */
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3466 "engines/director/lingo/lingo-gr.cpp"
+#line 3533 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* simpleexpr_nounarymath: ID '(' exprlist ')' */
-#line 603 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new FuncNode((yyvsp[-3].s), (yyvsp[-1].nodelist)); }
-#line 3472 "engines/director/lingo/lingo-gr.cpp"
+ case 179: /* simpleexpr_nounarymath: ID '(' ')' */
+#line 608 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode((yyvsp[-2].s), new NodeList); }
+#line 3539 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 180: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')' */
+#line 609 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new FuncNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
+#line 3545 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 181: /* simpleexpr_nounarymath: '(' expr ')' */
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3478 "engines/director/lingo/lingo-gr.cpp"
+#line 3551 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* var: ID */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 187: /* var: ID */
+#line 618 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3484 "engines/director/lingo/lingo-gr.cpp"
+#line 3557 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* chunk: tFIELD refargs */
-#line 622 "engines/director/lingo/lingo-gr.y"
+ case 192: /* chunk: tFIELD refargs */
+#line 628 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3490 "engines/director/lingo/lingo-gr.cpp"
+#line 3563 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* chunk: tCAST refargs */
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 193: /* chunk: tCAST refargs */
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3496 "engines/director/lingo/lingo-gr.cpp"
+#line 3569 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* chunk: tCHAR expr tOF simpleexpr */
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 194: /* chunk: tCHAR expr tOF simpleexpr */
+#line 630 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3503 "engines/director/lingo/lingo-gr.cpp"
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 195: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
+#line 632 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+#line 3583 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* chunk: tWORD expr tOF simpleexpr */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 196: /* chunk: tWORD expr tOF simpleexpr */
+#line 634 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3517 "engines/director/lingo/lingo-gr.cpp"
+#line 3590 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* chunk: tWORD expr tTO expr tOF simpleexpr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+ case 197: /* chunk: tWORD expr tTO expr tOF simpleexpr */
+#line 636 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3524 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
break;
- case 196: /* chunk: tITEM expr tOF simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 198: /* chunk: tITEM expr tOF simpleexpr */
+#line 638 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3531 "engines/director/lingo/lingo-gr.cpp"
+#line 3604 "engines/director/lingo/lingo-gr.cpp"
break;
- case 197: /* chunk: tITEM expr tTO expr tOF simpleexpr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+ case 199: /* chunk: tITEM expr tTO expr tOF simpleexpr */
+#line 640 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3538 "engines/director/lingo/lingo-gr.cpp"
+#line 3611 "engines/director/lingo/lingo-gr.cpp"
break;
- case 198: /* chunk: tLINE expr tOF simpleexpr */
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 200: /* chunk: tLINE expr tOF simpleexpr */
+#line 642 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3545 "engines/director/lingo/lingo-gr.cpp"
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
break;
- case 199: /* chunk: tLINE expr tTO expr tOF simpleexpr */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 201: /* chunk: tLINE expr tTO expr tOF simpleexpr */
+#line 644 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3625 "engines/director/lingo/lingo-gr.cpp"
break;
- case 200: /* object: tSCRIPT refargs */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 202: /* object: tSCRIPT refargs */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 201: /* object: tWINDOW refargs */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 203: /* object: tWINDOW refargs */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3637 "engines/director/lingo/lingo-gr.cpp"
break;
- case 202: /* refargs: simpleexpr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 204: /* refargs: simpleexpr */
+#line 652 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref arg` and `ref(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3574 "engines/director/lingo/lingo-gr.cpp"
+#line 3647 "engines/director/lingo/lingo-gr.cpp"
break;
- case 203: /* refargs: '(' ')' */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 205: /* refargs: '(' ')' */
+#line 657 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref()`
(yyval.nodelist) = new NodeList; }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+#line 3655 "engines/director/lingo/lingo-gr.cpp"
break;
- case 204: /* refargs: '(' expr ',' nonemptyexprlist ')' */
-#line 654 "engines/director/lingo/lingo-gr.y"
- {
+ case 206: /* refargs: '(' expr ',' ')' */
+#line 660 "engines/director/lingo/lingo-gr.y"
+ {
+ // This matches `ref(args,)`
+ NodeList *args = new NodeList;
+ args->push_back((yyvsp[-2].node));
+ (yyval.nodelist) = args; }
+#line 3665 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 207: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')' */
+#line 665 "engines/director/lingo/lingo-gr.y"
+ {
// This matches `ref(args, ...)`
- (yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
- (yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3591 "engines/director/lingo/lingo-gr.cpp"
+ (yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
+ (yyval.nodelist) = (yyvsp[-2].nodelist); }
+#line 3674 "engines/director/lingo/lingo-gr.cpp"
break;
- case 208: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 211: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3680 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 214: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3603 "engines/director/lingo/lingo-gr.cpp"
+#line 3686 "engines/director/lingo/lingo-gr.cpp"
break;
- case 212: /* theobj: tSOUND simpleexpr */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 215: /* theobj: tSOUND simpleexpr */
+#line 680 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3609 "engines/director/lingo/lingo-gr.cpp"
+#line 3692 "engines/director/lingo/lingo-gr.cpp"
break;
- case 213: /* theobj: tSPRITE simpleexpr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 216: /* theobj: tSPRITE simpleexpr */
+#line 681 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3615 "engines/director/lingo/lingo-gr.cpp"
+#line 3698 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* menu: tMENU simpleexpr */
-#line 673 "engines/director/lingo/lingo-gr.y"
+ case 217: /* menu: tMENU simpleexpr */
+#line 684 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3621 "engines/director/lingo/lingo-gr.cpp"
+#line 3704 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* writablethe: tTHE ID */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 218: /* writablethe: tTHE ID */
+#line 686 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3710 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* writablethe: tTHE ID tOF theobj */
-#line 676 "engines/director/lingo/lingo-gr.y"
+ case 219: /* writablethe: tTHE ID tOF theobj */
+#line 687 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3633 "engines/director/lingo/lingo-gr.cpp"
+#line 3716 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 677 "engines/director/lingo/lingo-gr.y"
+ case 220: /* writablethe: tTHE tNUMBER tOF theobj */
+#line 688 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3722 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 680 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3728 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 681 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3651 "engines/director/lingo/lingo-gr.cpp"
+#line 3734 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* thedatetime: tTHE tABBREV tDATE */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thedatetime: tTHE tABBREV tDATE */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3740 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* thedatetime: tTHE tABBREV tTIME */
-#line 683 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thedatetime: tTHE tABBREV tTIME */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3663 "engines/director/lingo/lingo-gr.cpp"
+#line 3746 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* thedatetime: tTHE tABBR tDATE */
-#line 684 "engines/director/lingo/lingo-gr.y"
+ case 225: /* thedatetime: tTHE tABBR tDATE */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3669 "engines/director/lingo/lingo-gr.cpp"
+#line 3752 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* thedatetime: tTHE tABBR tTIME */
-#line 685 "engines/director/lingo/lingo-gr.y"
+ case 226: /* thedatetime: tTHE tABBR tTIME */
+#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3675 "engines/director/lingo/lingo-gr.cpp"
+#line 3758 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* thedatetime: tTHE tLONG tDATE */
-#line 686 "engines/director/lingo/lingo-gr.y"
+ case 227: /* thedatetime: tTHE tLONG tDATE */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3681 "engines/director/lingo/lingo-gr.cpp"
+#line 3764 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* thedatetime: tTHE tLONG tTIME */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 228: /* thedatetime: tTHE tLONG tTIME */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3687 "engines/director/lingo/lingo-gr.cpp"
+#line 3770 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* thedatetime: tTHE tSHORT tDATE */
-#line 688 "engines/director/lingo/lingo-gr.y"
+ case 229: /* thedatetime: tTHE tSHORT tDATE */
+#line 699 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3693 "engines/director/lingo/lingo-gr.cpp"
+#line 3776 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* thedatetime: tTHE tSHORT tTIME */
-#line 689 "engines/director/lingo/lingo-gr.y"
+ case 230: /* thedatetime: tTHE tSHORT tTIME */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3699 "engines/director/lingo/lingo-gr.cpp"
+#line 3782 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 231: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3705 "engines/director/lingo/lingo-gr.cpp"
+#line 3788 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 232: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3711 "engines/director/lingo/lingo-gr.cpp"
+#line 3794 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 233: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3717 "engines/director/lingo/lingo-gr.cpp"
+#line 3800 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 234: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 707 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3723 "engines/director/lingo/lingo-gr.cpp"
+#line 3806 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 235: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 708 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3729 "engines/director/lingo/lingo-gr.cpp"
+#line 3812 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* chunktype: tCHAR */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 236: /* chunktype: tCHAR */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3735 "engines/director/lingo/lingo-gr.cpp"
+#line 3818 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* chunktype: tWORD */
-#line 701 "engines/director/lingo/lingo-gr.y"
+ case 237: /* chunktype: tWORD */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3741 "engines/director/lingo/lingo-gr.cpp"
+#line 3824 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* chunktype: tITEM */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 238: /* chunktype: tITEM */
+#line 713 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3747 "engines/director/lingo/lingo-gr.cpp"
+#line 3830 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* chunktype: tLINE */
-#line 703 "engines/director/lingo/lingo-gr.y"
+ case 239: /* chunktype: tLINE */
+#line 714 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3753 "engines/director/lingo/lingo-gr.cpp"
+#line 3836 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* list: '[' exprlist ']' */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 242: /* list: '[' exprlist ']' */
+#line 719 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3759 "engines/director/lingo/lingo-gr.cpp"
+#line 3842 "engines/director/lingo/lingo-gr.cpp"
break;
- case 240: /* list: '[' ':' ']' */
-#line 709 "engines/director/lingo/lingo-gr.y"
+ case 243: /* list: '[' ':' ']' */
+#line 720 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3765 "engines/director/lingo/lingo-gr.cpp"
+#line 3848 "engines/director/lingo/lingo-gr.cpp"
break;
- case 241: /* list: '[' proplist ']' */
-#line 710 "engines/director/lingo/lingo-gr.y"
+ case 244: /* list: '[' proplist ']' */
+#line 721 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3771 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* proplist: proppair */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 245: /* proplist: proppair */
+#line 724 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3780 "engines/director/lingo/lingo-gr.cpp"
+#line 3863 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* proplist: proplist ',' proppair */
-#line 717 "engines/director/lingo/lingo-gr.y"
+ case 246: /* proplist: proplist ',' proppair */
+#line 728 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3788 "engines/director/lingo/lingo-gr.cpp"
+#line 3871 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* proppair: tSYMBOL ':' expr */
-#line 722 "engines/director/lingo/lingo-gr.y"
+ case 247: /* proppair: tSYMBOL ':' expr */
+#line 733 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3794 "engines/director/lingo/lingo-gr.cpp"
+#line 3877 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* proppair: ID ':' expr */
-#line 723 "engines/director/lingo/lingo-gr.y"
+ case 248: /* proppair: ID ':' expr */
+#line 734 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3800 "engines/director/lingo/lingo-gr.cpp"
+#line 3883 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* proppair: tSTRING ':' expr */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 249: /* proppair: tSTRING ':' expr */
+#line 735 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3806 "engines/director/lingo/lingo-gr.cpp"
+#line 3889 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* unarymath: '+' simpleexpr */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 250: /* unarymath: '+' simpleexpr */
+#line 738 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3812 "engines/director/lingo/lingo-gr.cpp"
+#line 3895 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* unarymath: '-' simpleexpr */
-#line 728 "engines/director/lingo/lingo-gr.y"
+ case 251: /* unarymath: '-' simpleexpr */
+#line 739 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3818 "engines/director/lingo/lingo-gr.cpp"
+#line 3901 "engines/director/lingo/lingo-gr.cpp"
break;
- case 253: /* expr: expr '+' expr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 256: /* expr: expr '+' expr */
+#line 749 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3824 "engines/director/lingo/lingo-gr.cpp"
+#line 3907 "engines/director/lingo/lingo-gr.cpp"
break;
- case 254: /* expr: expr '-' expr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 257: /* expr: expr '-' expr */
+#line 750 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3830 "engines/director/lingo/lingo-gr.cpp"
+#line 3913 "engines/director/lingo/lingo-gr.cpp"
break;
- case 255: /* expr: expr '*' expr */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 258: /* expr: expr '*' expr */
+#line 751 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3836 "engines/director/lingo/lingo-gr.cpp"
+#line 3919 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr: expr '/' expr */
-#line 741 "engines/director/lingo/lingo-gr.y"
+ case 259: /* expr: expr '/' expr */
+#line 752 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3842 "engines/director/lingo/lingo-gr.cpp"
+#line 3925 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr: expr tMOD expr */
-#line 742 "engines/director/lingo/lingo-gr.y"
+ case 260: /* expr: expr tMOD expr */
+#line 753 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3848 "engines/director/lingo/lingo-gr.cpp"
+#line 3931 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr: expr '>' expr */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 261: /* expr: expr '>' expr */
+#line 754 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3854 "engines/director/lingo/lingo-gr.cpp"
+#line 3937 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr: expr '<' expr */
-#line 744 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr: expr '<' expr */
+#line 755 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3860 "engines/director/lingo/lingo-gr.cpp"
+#line 3943 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr: expr tEQ expr */
-#line 745 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr: expr tEQ expr */
+#line 756 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3866 "engines/director/lingo/lingo-gr.cpp"
+#line 3949 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr: expr tNEQ expr */
-#line 746 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr: expr tNEQ expr */
+#line 757 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3872 "engines/director/lingo/lingo-gr.cpp"
+#line 3955 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr: expr tGE expr */
-#line 747 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr: expr tGE expr */
+#line 758 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3878 "engines/director/lingo/lingo-gr.cpp"
+#line 3961 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr: expr tLE expr */
-#line 748 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr: expr tLE expr */
+#line 759 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3884 "engines/director/lingo/lingo-gr.cpp"
+#line 3967 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr: expr tAND expr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr: expr tAND expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3890 "engines/director/lingo/lingo-gr.cpp"
+#line 3973 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr: expr tOR expr */
-#line 750 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr: expr tOR expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3896 "engines/director/lingo/lingo-gr.cpp"
+#line 3979 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr: expr '&' expr */
-#line 751 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr: expr '&' expr */
+#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3902 "engines/director/lingo/lingo-gr.cpp"
+#line 3985 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr: expr tCONCAT expr */
-#line 752 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr: expr tCONCAT expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3908 "engines/director/lingo/lingo-gr.cpp"
+#line 3991 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr: expr tCONTAINS expr */
-#line 753 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr: expr tCONTAINS expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3914 "engines/director/lingo/lingo-gr.cpp"
+#line 3997 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr: expr tSTARTS expr */
-#line 754 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr: expr tSTARTS expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3920 "engines/director/lingo/lingo-gr.cpp"
+#line 4003 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 763 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3926 "engines/director/lingo/lingo-gr.cpp"
+#line 4009 "engines/director/lingo/lingo-gr.cpp"
break;
- case 273: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 764 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 775 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3932 "engines/director/lingo/lingo-gr.cpp"
+#line 4015 "engines/director/lingo/lingo-gr.cpp"
break;
- case 274: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 776 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3938 "engines/director/lingo/lingo-gr.cpp"
+#line 4021 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 766 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 777 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3944 "engines/director/lingo/lingo-gr.cpp"
+#line 4027 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 767 "engines/director/lingo/lingo-gr.y"
+ case 279: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 778 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3950 "engines/director/lingo/lingo-gr.cpp"
+#line 4033 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 768 "engines/director/lingo/lingo-gr.y"
+ case 280: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 779 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3956 "engines/director/lingo/lingo-gr.cpp"
+#line 4039 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 769 "engines/director/lingo/lingo-gr.y"
+ case 281: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 780 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3962 "engines/director/lingo/lingo-gr.cpp"
+#line 4045 "engines/director/lingo/lingo-gr.cpp"
break;
- case 279: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 770 "engines/director/lingo/lingo-gr.y"
+ case 282: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 781 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3968 "engines/director/lingo/lingo-gr.cpp"
+#line 4051 "engines/director/lingo/lingo-gr.cpp"
break;
- case 280: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 771 "engines/director/lingo/lingo-gr.y"
+ case 283: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 782 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3974 "engines/director/lingo/lingo-gr.cpp"
+#line 4057 "engines/director/lingo/lingo-gr.cpp"
break;
- case 281: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 772 "engines/director/lingo/lingo-gr.y"
+ case 284: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 783 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3980 "engines/director/lingo/lingo-gr.cpp"
+#line 4063 "engines/director/lingo/lingo-gr.cpp"
break;
- case 282: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 773 "engines/director/lingo/lingo-gr.y"
+ case 285: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 784 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3986 "engines/director/lingo/lingo-gr.cpp"
+#line 4069 "engines/director/lingo/lingo-gr.cpp"
break;
- case 283: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 774 "engines/director/lingo/lingo-gr.y"
+ case 286: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 785 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3992 "engines/director/lingo/lingo-gr.cpp"
+#line 4075 "engines/director/lingo/lingo-gr.cpp"
break;
- case 284: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 775 "engines/director/lingo/lingo-gr.y"
+ case 287: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 786 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3998 "engines/director/lingo/lingo-gr.cpp"
+#line 4081 "engines/director/lingo/lingo-gr.cpp"
break;
- case 285: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 776 "engines/director/lingo/lingo-gr.y"
+ case 288: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 787 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4004 "engines/director/lingo/lingo-gr.cpp"
+#line 4087 "engines/director/lingo/lingo-gr.cpp"
break;
- case 286: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 777 "engines/director/lingo/lingo-gr.y"
+ case 289: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 788 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4010 "engines/director/lingo/lingo-gr.cpp"
+#line 4093 "engines/director/lingo/lingo-gr.cpp"
break;
- case 287: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 778 "engines/director/lingo/lingo-gr.y"
+ case 290: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 789 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4016 "engines/director/lingo/lingo-gr.cpp"
+#line 4099 "engines/director/lingo/lingo-gr.cpp"
break;
- case 288: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 779 "engines/director/lingo/lingo-gr.y"
+ case 291: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 790 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4022 "engines/director/lingo/lingo-gr.cpp"
+#line 4105 "engines/director/lingo/lingo-gr.cpp"
break;
- case 289: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 782 "engines/director/lingo/lingo-gr.y"
+ case 292: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 793 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4028 "engines/director/lingo/lingo-gr.cpp"
+#line 4111 "engines/director/lingo/lingo-gr.cpp"
break;
- case 290: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 783 "engines/director/lingo/lingo-gr.y"
+ case 293: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 794 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4034 "engines/director/lingo/lingo-gr.cpp"
+#line 4117 "engines/director/lingo/lingo-gr.cpp"
break;
- case 291: /* exprlist: %empty */
-#line 786 "engines/director/lingo/lingo-gr.y"
+ case 294: /* exprlist: %empty */
+#line 797 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 4040 "engines/director/lingo/lingo-gr.cpp"
+#line 4123 "engines/director/lingo/lingo-gr.cpp"
break;
- case 293: /* nonemptyexprlist: expr */
-#line 790 "engines/director/lingo/lingo-gr.y"
+ case 296: /* nonemptyexprlist: expr */
+#line 801 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 4049 "engines/director/lingo/lingo-gr.cpp"
+#line 4132 "engines/director/lingo/lingo-gr.cpp"
break;
- case 294: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 794 "engines/director/lingo/lingo-gr.y"
+ case 297: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 805 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4057 "engines/director/lingo/lingo-gr.cpp"
+#line 4140 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 4061 "engines/director/lingo/lingo-gr.cpp"
+#line 4144 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4256,7 +4339,7 @@ yyreturn:
return yyresult;
}
-#line 799 "engines/director/lingo/lingo-gr.y"
+#line 810 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index e45a4de448..a94a9f3e9f 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -443,7 +443,12 @@ cmdargs: /* empty */ {
| '(' ')' {
// This matches `cmd()`
$$ = new NodeList; }
- | '(' expr ',' nonemptyexprlist[args] ')' {
+ | '(' expr ',' ')' {
+ // This matches `cmd(args,)`
+ NodeList *args = new NodeList;
+ args->push_back($expr);
+ $$ = args; }
+ | '(' expr ',' nonemptyexprlist[args] trailingcomma ')' {
// This matches `cmd(args, ...)`
$args->insert_at(0, $expr);
$$ = $args; }
@@ -600,7 +605,8 @@ simpleexpr_nounarymath:
| tSYMBOL { $$ = new SymbolNode($tSYMBOL); } // D3
| tSTRING { $$ = new StringNode($tSTRING); }
| tNOT simpleexpr[arg] %prec tUNARY { $$ = new UnaryOpNode(LC::c_not, $arg); }
- | ID '(' exprlist[args] ')' { $$ = new FuncNode($ID, $args); }
+ | ID '(' ')' { $$ = new FuncNode($ID, new NodeList); }
+ | ID '(' nonemptyexprlist[args] trailingcomma ')' { $$ = new FuncNode($ID, $args); }
| '(' expr ')' { $$ = $expr; } ;
| var
| chunk
@@ -651,7 +657,12 @@ refargs: simpleexpr {
| '(' ')' {
// This matches `ref()`
$$ = new NodeList; }
- | '(' expr ',' nonemptyexprlist[args] ')' {
+ | '(' expr ',' ')' {
+ // This matches `ref(args,)`
+ NodeList *args = new NodeList;
+ args->push_back($expr);
+ $$ = args; }
+ | '(' expr ',' nonemptyexprlist[args] trailingcomma ')' {
// This matches `ref(args, ...)`
$args->insert_at(0, $expr);
$$ = $args; }
Commit: 56718ceb8a2bfdf2fca93e1809266d623307ef78
https://github.com/scummvm/scummvm/commit/56718ceb8a2bfdf2fca93e1809266d623307ef78
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Add trailing comma in function test
Changed paths:
engines/director/lingo/tests/trailingcomma.lingo
diff --git a/engines/director/lingo/tests/trailingcomma.lingo b/engines/director/lingo/tests/trailingcomma.lingo
index 61a7398af7..4a263efbd9 100644
--- a/engines/director/lingo/tests/trailingcomma.lingo
+++ b/engines/director/lingo/tests/trailingcomma.lingo
@@ -6,3 +6,5 @@ global foo, bar,
property baz,
test "foo", "bar", "baz",
+
+put sqrt(4,)
Commit: 32534e2d7a930113989e39029b9d04b7102c2397
https://github.com/scummvm/scummvm/commit/32534e2d7a930113989e39029b9d04b7102c2397
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Move tokens out of CMDID
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 75f29cf293..a5d09184e2 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -641,7 +641,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 177
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4279
+#define YYLAST 4277
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
@@ -715,7 +715,7 @@ static const yytype_int16 yyrline[] =
307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 338, 339, 340, 341, 342, 343, 346, 347, 348,
+ 337, 338, 339, 340, 341, 344, 345, 346, 347, 348,
349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 366, 367, 368, 371, 375,
385, 386, 389, 390, 391, 392, 393, 394, 397, 398,
@@ -836,42 +836,42 @@ static const yytype_int16 yypact[] =
-484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
742, -484, 1809, 344, 3246, 37, 43, 839, 3246, 1809,
3483, -484, -484, -3, -484, 74, 44, 51, 936, 52,
- 53, 55, 3762, 57, 3246, -484, -484, -484, -484, 66,
+ 53, 55, 3760, 57, 3246, -484, -484, -484, -484, 66,
1033, -484, -484, 3246, 1324, -484, -484, -484, -484, -484,
- 1130, 4114, -484, 424, 455, 528, 3695, -31, -26, -21,
- -20, -17, 47, 137, 140, 4101, -484, -484, -484, 3795,
- -24, 68, 62, -16, -8, -484, 4114, 70, 71, 1421,
+ 1130, 4112, -484, 424, 455, 528, 3693, -31, -26, -21,
+ -20, -17, 47, 137, 140, 4099, -484, -484, -484, 3793,
+ -24, 68, 62, -16, -8, -484, 4112, 70, 71, 1421,
-484, -484, 148, 1809, 1809, 1809, 1809, 2391, 2391, 2585,
1809, 2488, 2488, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, -484, -484, 3880, -484, 3867, 2756, 1809, 1809, 1809,
- 1809, 1809, 78, -484, -484, 3562, 3562, 3562, -10, 3937,
+ 1809, -484, -484, 3878, -484, 3865, 2756, 1809, 1809, 1809,
+ 1809, 1809, 78, -484, -484, 3562, 3562, 3562, -10, 3935,
150, -484, -484, 1809, 1809, -60, -484, 1809, -484, -484,
- -484, 3640, 2836, -484, 83, -484, -484, -484, 3854, 155,
- 4130, 2100, 1809, 2100, 1809, 2100, 1809, 2100, 1809, -484,
+ -484, 3640, 2836, -484, 83, -484, -484, -484, 3852, 155,
+ 4128, 2100, 1809, 2100, 1809, 2100, 1809, 2100, 1809, -484,
-484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
-484, -484, -484, 46, 2197, 2294, 2100, 2100, 1518, -484,
1809, 1809, -484, 1809, 3167, -484, -484, 1809, -484, 84,
- 1809, -29, -29, -29, -29, 4184, 4184, -484, 4, -29,
+ 1809, -29, -29, -29, -29, 4182, 4182, -484, 4, -29,
-29, -29, -29, 4, -9, -9, -484, -484, 84, 1809,
1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
1809, 1809, 1809, 1809, 1809, 1809, 1809, -484, 3076, 167,
2836, -484, 94, -484, 96, 97, 1809, 1809, 2836, 2294,
- 3950, 4114, 3246, -484, -484, -484, -60, -484, 3963, -484,
+ 3948, 4112, 3246, -484, -484, -484, -60, -484, 3961, -484,
-484, -484, 109, 2836, -484, 2836, 1615, 1809, -484, 541,
- -484, 3708, -484, 3728, -484, 3782, -484, -484, 2100, 46,
+ -484, 3706, -484, 3726, -484, 3780, -484, -484, 2100, 46,
46, 46, 46, 2100, 2100, 46, 2100, 2100, -484, -484,
- -484, -484, -484, -484, -484, 84, 4114, 4114, 4114, -24,
- 68, 95, -484, 4114, 1809, 99, 4114, -484, -29, -29,
- -29, -29, 4184, 4184, -484, 4, -29, -29, -29, -29,
+ -484, -484, -484, -484, -484, 84, 4112, 4112, 4112, -24,
+ 68, 95, -484, 4112, 1809, 99, 4112, -484, -29, -29,
+ -29, -29, 4182, 4182, -484, 4, -29, -29, -29, -29,
4, -9, -9, -484, -484, 84, -484, -484, -1, 3076,
- -484, 2916, -484, -484, -484, -484, 4019, 67, 111, -484,
- 3246, -484, -484, 103, -484, 191, -484, 84, 4114, 2100,
+ -484, 2916, -484, -484, -484, -484, 4017, 67, 111, -484,
+ 3246, -484, -484, 103, -484, 191, -484, 84, 4112, 2100,
2100, 2100, 2100, -484, 2100, 2100, 2100, 2100, -484, 174,
132, -484, -484, 104, -484, -484, 2996, 108, -484, -484,
3076, -484, 2836, 172, 1809, 112, 113, -484, 3246, 114,
-484, -484, -484, -484, -484, -484, -484, -484, 141, 2100,
- -484, -484, 3076, -484, -484, 126, 129, 1809, 4032, -484,
- 2836, -68, -484, -484, 2100, 126, -484, 119, 4045, 2836,
+ -484, -484, 3076, -484, -484, 126, 129, 1809, 4030, -484,
+ 2836, -68, -484, -484, 2100, 126, -484, 119, 4043, 2836,
-484, -484, 3246, -484, -484, -484, 2836, 131, -484, 133,
121, 124, -484, -484
};
@@ -881,33 +881,33 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 0, 24, 31, 37, 60, 72, 36, 0, 38, 95,
+ 0, 24, 31, 37, 60, 70, 36, 0, 38, 95,
123, 0, 39, 41, 0, 52, 53, 56, 58, 123,
- 59, 62, 70, 0, 73, 71, 0, 123, 123, 95,
- 29, 57, 54, 51, 28, 30, 34, 66, 32, 33,
- 42, 43, 45, 46, 75, 76, 25, 26, 27, 47,
- 63, 35, 44, 48, 49, 50, 55, 68, 69, 64,
- 65, 40, 74, 67, 95, 0, 0, 61, 5, 0,
+ 59, 0, 68, 0, 71, 69, 0, 123, 123, 95,
+ 29, 57, 54, 51, 28, 30, 34, 65, 32, 33,
+ 42, 43, 45, 46, 73, 74, 25, 26, 27, 47,
+ 62, 35, 44, 48, 49, 50, 55, 66, 67, 63,
+ 64, 40, 72, 0, 95, 0, 0, 61, 5, 0,
2, 3, 6, 7, 8, 123, 9, 100, 102, 108,
- 109, 110, 103, 104, 105, 106, 107, 0, 121, 79,
- 78, 80, 82, 83, 84, 86, 53, 92, 59, 62,
- 93, 94, 81, 89, 90, 85, 67, 91, 88, 87,
- 61, 77, 98, 0, 96, 174, 175, 177, 176, 31,
- 37, 60, 72, 38, 52, 54, 32, 42, 45, 75,
- 68, 65, 0, 0, 0, 294, 187, 0, 0, 252,
+ 109, 110, 103, 104, 105, 106, 107, 0, 121, 77,
+ 76, 78, 80, 81, 82, 84, 53, 90, 59, 91,
+ 93, 94, 79, 87, 88, 83, 92, 89, 86, 85,
+ 61, 75, 98, 0, 96, 174, 175, 177, 176, 31,
+ 37, 60, 70, 38, 52, 54, 32, 42, 45, 73,
+ 66, 64, 0, 0, 0, 294, 187, 0, 0, 252,
182, 183, 184, 185, 208, 209, 210, 186, 253, 254,
131, 255, 0, 0, 95, 0, 0, 131, 0, 0,
- 68, 187, 190, 0, 191, 0, 0, 0, 131, 0,
+ 66, 187, 190, 0, 191, 0, 0, 0, 131, 0,
0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
131, 120, 144, 97, 0, 193, 204, 192, 202, 203,
133, 134, 178, 0, 0, 0, 0, 25, 26, 27,
- 47, 63, 44, 55, 218, 0, 250, 251, 128, 0,
+ 47, 62, 44, 55, 218, 0, 250, 251, 128, 0,
177, 176, 0, 187, 0, 245, 296, 0, 295, 0,
113, 114, 56, 0, 0, 0, 0, 29, 57, 51,
- 0, 34, 66, 0, 0, 0, 0, 0, 0, 0,
+ 0, 34, 65, 0, 0, 0, 0, 0, 0, 0,
132, 124, 273, 131, 274, 0, 0, 0, 0, 0,
0, 0, 0, 119, 112, 41, 28, 30, 0, 0,
- 55, 142, 143, 0, 0, 13, 117, 73, 115, 116,
+ 55, 142, 143, 0, 0, 13, 117, 71, 115, 116,
146, 0, 162, 145, 0, 111, 99, 205, 0, 56,
137, 0, 0, 0, 0, 0, 0, 0, 0, 221,
222, 223, 224, 225, 226, 227, 228, 229, 230, 236,
@@ -921,7 +921,7 @@ static const yytype_int16 yydefact[] =
0, 161, 0, 17, 18, 11, 14, 15, 0, 159,
166, 167, 0, 163, 164, 162, 0, 0, 194, 0,
198, 0, 200, 0, 196, 0, 240, 241, 0, 33,
- 43, 46, 76, 48, 49, 50, 64, 65, 220, 213,
+ 43, 46, 74, 48, 49, 50, 63, 64, 220, 213,
212, 219, 292, 293, 129, 131, 249, 247, 248, 0,
0, 0, 246, 297, 132, 0, 136, 125, 284, 285,
282, 283, 286, 287, 279, 289, 290, 291, 281, 280,
@@ -1339,62 +1339,62 @@ static const yytype_int16 yytable[] =
34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 106, 64, 287, 0, 0, 0, 0, 67, 288,
- 0, 0, 0, 0, 0, 0, 470, 223, 224, 225,
- 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 223, 224, 225, 226, 247, 248, 471, 249, 0, 0,
- 230, 250, 251, 0, 0, 0, 0, 0, 0, 0,
- 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
- 230, 250, 251, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 0, 0, 0, 0, 271, 233, 234, 235,
- 236, 237, 238, 239, 223, 224, 225, 226, 247, 248,
- 472, 249, 0, 0, 230, 250, 251, 233, 234, 235,
- 236, 237, 238, 239, 223, 224, 225, 226, 247, 248,
+ 62, 287, 64, 0, 0, 0, 0, 288, 67, 0,
+ 0, 0, 0, 0, 470, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
+ 225, 226, 247, 248, 471, 249, 0, 0, 230, 250,
+ 251, 0, 0, 0, 0, 0, 0, 0, 223, 224,
+ 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
+ 251, 0, 233, 234, 235, 236, 237, 238, 239, 0,
+ 0, 0, 0, 0, 271, 233, 234, 235, 236, 237,
+ 238, 239, 223, 224, 225, 226, 247, 248, 472, 249,
+ 0, 0, 230, 250, 251, 233, 234, 235, 236, 237,
+ 238, 239, 223, 224, 225, 226, 247, 248, 0, 249,
+ 0, 0, 230, 250, 251, 223, 224, 225, 226, 247,
+ 248, 0, 249, 0, 0, 230, 250, 251, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 272, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 0, 0, 0,
+ 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
+ 0, 308, 0, 309, 223, 224, 225, 226, 247, 248,
0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 0, 233, 234, 235, 236, 237, 238, 239, 0, 272,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 339, 340, 341, 342, 343, 344, 0, 345, 0, 0,
+ 346, 347, 348, 0, 0, 0, 0, 0, 0, 0,
0, 233, 234, 235, 236, 237, 238, 239, 0, 0,
+ 386, 0, 309, 0, 233, 234, 235, 236, 237, 238,
+ 239, 0, 0, 0, 0, 309, 0, 349, 350, 351,
+ 352, 353, 354, 355, 0, 0, 356, 223, 224, 225,
+ 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
+ 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
+ 230, 250, 251, 223, 224, 225, 226, 247, 248, 0,
+ 249, 0, 0, 230, 250, 251, 0, 0, 0, 0,
0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 0, 308, 0, 309, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 223,
- 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 339, 340, 341, 342, 343, 344, 0, 345,
- 0, 0, 346, 347, 348, 0, 0, 0, 0, 0,
- 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 0, 386, 0, 309, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 0, 0, 0, 309, 0, 349,
- 350, 351, 352, 353, 354, 355, 0, 0, 356, 223,
+ 239, 0, 368, 0, 0, 0, 0, 233, 234, 235,
+ 236, 237, 238, 239, 0, 459, 0, 0, 0, 0,
+ 233, 234, 235, 236, 237, 238, 239, 0, 462, 223,
224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
250, 251, 223, 224, 225, 226, 247, 248, 0, 249,
0, 0, 230, 250, 251, 223, 224, 225, 226, 247,
248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 368, 0, 0, 0, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 459, 0, 0,
+ 237, 238, 239, 0, 492, 0, 0, 0, 0, 233,
+ 234, 235, 236, 237, 238, 239, 0, 529, 0, 0,
0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 462, 223, 224, 225, 226, 247, 248, 0, 249, 0,
+ 536, 223, 224, 225, 226, 247, 248, 0, 249, 0,
0, 230, 250, 251, 223, 224, 225, 226, 247, 248,
- 0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
- 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 492, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239, 0, 529,
- 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 536, 223, 224, 225, 226, 247, 248, 0,
- 249, 0, 0, 230, 250, 251, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
- 0, 0, 339, 340, 341, 342, 343, 344, 0, 345,
- 306, 307, 346, 347, 348, 0, 0, 0, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 0, 0, 0,
- 0, 0, 0, 233, 234, 235, 236, 237, 238, 239,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 349,
- 350, 351, 352, 353, 354, 355, 223, 224, 225, 226,
- 0, 0, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 249, 0, 0, 230, 250, 251, 0, 0, 0,
+ 339, 340, 341, 342, 343, 344, 0, 345, 306, 307,
+ 346, 347, 348, 0, 0, 0, 0, 0, 233, 234,
+ 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
+ 0, 233, 234, 235, 236, 237, 238, 239, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351,
+ 352, 353, 354, 355, 223, 224, 225, 226, 0, 0,
+ 0, 249, 0, 0, 230, 250, 251, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 233, 234, 235, 236, 237, 238, 239
+ 0, 233, 234, 235, 236, 237, 238, 239
};
static const yytype_int16 yycheck[] =
@@ -1771,32 +1771,40 @@ static const yytype_int16 yycheck[] =
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 28, -1, -1, -1, -1, 88, 34,
- -1, -1, -1, -1, -1, -1, 28, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- 42, 43, 44, 45, 46, 47, 28, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, -1, 34, 89, 90, 91,
- 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
- 28, 49, -1, -1, 52, 53, 54, 89, 90, 91,
- 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ 80, 28, 82, -1, -1, -1, -1, 34, 88, -1,
+ -1, -1, -1, -1, 28, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
+ 44, 45, 46, 47, 28, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, -1, -1, 34, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, 28, 49,
+ -1, -1, 52, 53, 54, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
+ 47, -1, 49, -1, -1, 52, 53, 54, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
+ -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, 98, -1, 100, 42, 43, 44, 45, 46, 47,
-1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
-1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ 98, -1, 100, -1, 89, 90, 91, 92, 93, 94,
+ 95, -1, -1, -1, -1, 100, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, 42, 43, 44,
+ 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
-1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, 98, -1, 100, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, 42,
- 43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, 98, -1, 100, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, -1, -1, -1, 100, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, 98, 42,
+ 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, 97, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
-1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
@@ -1807,26 +1815,18 @@ static const yytype_int16 yycheck[] =
-1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
-1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
- -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, 97, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
- -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
- 79, 80, 52, 53, 54, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
- -1, -1, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 49, 79, 80,
+ 52, 53, 54, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, -1, -1,
+ -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95
+ -1, 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1900,7 +1900,7 @@ static const yytype_uint8 yyr1[] =
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
+ 116, 116, 116, 116, 116, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 118, 118, 118, 119, 119,
120, 120, 121, 121, 121, 121, 121, 121, 122, 122,
@@ -2860,183 +2860,183 @@ yyreduce:
#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* CMDID: tSET */
+ case 62: /* CMDID: tSHORT */
#line 329 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("set"); }
+ { (yyval.s) = new Common::String("short"); }
#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
- case 63: /* CMDID: tSHORT */
+ case 63: /* CMDID: tSOUND */
#line 330 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("short"); }
+ { (yyval.s) = new Common::String("sound"); }
#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
- case 64: /* CMDID: tSOUND */
+ case 64: /* CMDID: tSPRITE */
#line 331 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("sound"); }
+ { (yyval.s) = new Common::String("sprite"); }
#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
- case 65: /* CMDID: tSPRITE */
+ case 65: /* CMDID: tSTARTS */
#line 332 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("sprite"); }
+ { (yyval.s) = new Common::String("starts"); }
#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
- case 66: /* CMDID: tSTARTS */
+ case 66: /* CMDID: tTHE */
#line 333 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("starts"); }
+ { (yyval.s) = new Common::String("the"); }
#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
- case 67: /* CMDID: tTELL */
+ case 67: /* CMDID: tTIME */
#line 334 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("tell"); }
+ { (yyval.s) = new Common::String("time"); }
#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
- case 68: /* CMDID: tTHE */
+ case 68: /* CMDID: tTO */
#line 335 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("the"); }
+ { (yyval.s) = new Common::String("to"); }
#line 2903 "engines/director/lingo/lingo-gr.cpp"
break;
- case 69: /* CMDID: tTIME */
+ case 69: /* CMDID: tWHILE */
#line 336 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("time"); }
+ { (yyval.s) = new Common::String("while"); }
#line 2909 "engines/director/lingo/lingo-gr.cpp"
break;
- case 70: /* CMDID: tTO */
+ case 70: /* CMDID: tWINDOW */
#line 337 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("to"); }
+ { (yyval.s) = new Common::String("window"); }
#line 2915 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* CMDID: tWHILE */
+ case 71: /* CMDID: tWITH */
#line 338 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("while"); }
+ { (yyval.s) = new Common::String("with"); }
#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* CMDID: tWINDOW */
+ case 72: /* CMDID: tWITHIN */
#line 339 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("window"); }
+ { (yyval.s) = new Common::String("within"); }
#line 2927 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* CMDID: tWITH */
+ case 73: /* CMDID: tWORD */
#line 340 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("with"); }
+ { (yyval.s) = new Common::String("word"); }
#line 2933 "engines/director/lingo/lingo-gr.cpp"
break;
- case 74: /* CMDID: tWITHIN */
+ case 74: /* CMDID: tWORDS */
#line 341 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("within"); }
+ { (yyval.s) = new Common::String("words"); }
#line 2939 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* CMDID: tWORD */
-#line 342 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("word"); }
+ case 76: /* ID: tELSE */
+#line 345 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("else"); }
#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* CMDID: tWORDS */
-#line 343 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("words"); }
+ case 77: /* ID: tENDCLAUSE */
+#line 346 "engines/director/lingo/lingo-gr.y"
+ { (yyval.s) = new Common::String("end"); }
#line 2951 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* ID: tELSE */
+ case 78: /* ID: tEXIT */
#line 347 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("else"); }
+ { (yyval.s) = new Common::String("exit"); }
#line 2957 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* ID: tENDCLAUSE */
+ case 79: /* ID: tFACTORY */
#line 348 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("end"); }
+ { (yyval.s) = new Common::String("factory"); }
#line 2963 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* ID: tEXIT */
+ case 80: /* ID: tGLOBAL */
#line 349 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("exit"); }
+ { (yyval.s) = new Common::String("global"); }
#line 2969 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* ID: tFACTORY */
+ case 81: /* ID: tGO */
#line 350 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("factory"); }
+ { (yyval.s) = new Common::String("go"); }
#line 2975 "engines/director/lingo/lingo-gr.cpp"
break;
- case 82: /* ID: tGLOBAL */
+ case 82: /* ID: tIF */
#line 351 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("global"); }
+ { (yyval.s) = new Common::String("if"); }
#line 2981 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* ID: tGO */
+ case 83: /* ID: tINSTANCE */
#line 352 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("go"); }
+ { (yyval.s) = new Common::String("instance"); }
#line 2987 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* ID: tIF */
+ case 84: /* ID: tMACRO */
#line 353 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("if"); }
+ { (yyval.s) = new Common::String("macro"); }
#line 2993 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* ID: tINSTANCE */
+ case 85: /* ID: tMETHOD */
#line 354 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("instance"); }
+ { (yyval.s) = new Common::String("method"); }
#line 2999 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* ID: tMACRO */
+ case 86: /* ID: tON */
#line 355 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("macro"); }
+ { (yyval.s) = new Common::String("on"); }
#line 3005 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* ID: tMETHOD */
+ case 87: /* ID: tOPEN */
#line 356 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("method"); }
+ { (yyval.s) = new Common::String("open"); }
#line 3011 "engines/director/lingo/lingo-gr.cpp"
break;
- case 88: /* ID: tON */
+ case 88: /* ID: tPLAY */
#line 357 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("on"); }
+ { (yyval.s) = new Common::String("play"); }
#line 3017 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* ID: tOPEN */
+ case 89: /* ID: tPROPERTY */
#line 358 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("open"); }
+ { (yyval.s) = new Common::String("property"); }
#line 3023 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* ID: tPLAY */
+ case 90: /* ID: tPUT */
#line 359 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("play"); }
+ { (yyval.s) = new Common::String("put"); }
#line 3029 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* ID: tPROPERTY */
+ case 91: /* ID: tSET */
#line 360 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("property"); }
+ { (yyval.s) = new Common::String("set"); }
#line 3035 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* ID: tPUT */
+ case 92: /* ID: tTELL */
#line 361 "engines/director/lingo/lingo-gr.y"
- { (yyval.s) = new Common::String("put"); }
+ { (yyval.s) = new Common::String("tell"); }
#line 3041 "engines/director/lingo/lingo-gr.cpp"
break;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index a94a9f3e9f..457afca6ed 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -326,12 +326,10 @@ CMDID: tVARID
| tREPEAT { $$ = new Common::String("repeat"); }
| tSCRIPT { $$ = new Common::String("script"); }
| tASSERTERROR { $$ = new Common::String("scummvmAssertError"); }
- | tSET { $$ = new Common::String("set"); }
| tSHORT { $$ = new Common::String("short"); }
| tSOUND { $$ = new Common::String("sound"); }
| tSPRITE { $$ = new Common::String("sprite"); }
| tSTARTS { $$ = new Common::String("starts"); }
- | tTELL { $$ = new Common::String("tell"); }
| tTHE { $$ = new Common::String("the"); }
| tTIME { $$ = new Common::String("time"); }
| tTO { $$ = new Common::String("to"); }
@@ -359,6 +357,8 @@ ID: CMDID
| tPLAY { $$ = new Common::String("play"); }
| tPROPERTY { $$ = new Common::String("property"); }
| tPUT { $$ = new Common::String("put"); }
+ | tSET { $$ = new Common::String("set"); }
+ | tTELL { $$ = new Common::String("tell"); }
| tTHEN { $$ = new Common::String("then"); }
| tWHEN { $$ = new Common::String("when"); }
;
Commit: 784f8fe9d38d0de14badf29d39e52a95fe2c027e
https://github.com/scummvm/scummvm/commit/784f8fe9d38d0de14badf29d39e52a95fe2c027e
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-22T18:16:53-04:00
Commit Message:
DIRECTOR: LINGO: Allow expression after sprite
Changed paths:
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index a5d09184e2..521810d696 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -305,21 +305,23 @@ enum yysymbol_kind_t
YYSYMBOL_the = 149, /* the */
YYSYMBOL_theobj = 150, /* theobj */
YYSYMBOL_menu = 151, /* menu */
- YYSYMBOL_writablethe = 152, /* writablethe */
- YYSYMBOL_thedatetime = 153, /* thedatetime */
- YYSYMBOL_thenumberof = 154, /* thenumberof */
- YYSYMBOL_chunktype = 155, /* chunktype */
- YYSYMBOL_inof = 156, /* inof */
- YYSYMBOL_list = 157, /* list */
- YYSYMBOL_proplist = 158, /* proplist */
- YYSYMBOL_proppair = 159, /* proppair */
- YYSYMBOL_unarymath = 160, /* unarymath */
- YYSYMBOL_simpleexpr = 161, /* simpleexpr */
- YYSYMBOL_expr = 162, /* expr */
- YYSYMBOL_expr_nounarymath = 163, /* expr_nounarymath */
- YYSYMBOL_sprite = 164, /* sprite */
- YYSYMBOL_exprlist = 165, /* exprlist */
- YYSYMBOL_nonemptyexprlist = 166 /* nonemptyexprlist */
+ YYSYMBOL_thedatetime = 152, /* thedatetime */
+ YYSYMBOL_thenumberof = 153, /* thenumberof */
+ YYSYMBOL_chunktype = 154, /* chunktype */
+ YYSYMBOL_inof = 155, /* inof */
+ YYSYMBOL_writablethe = 156, /* writablethe */
+ YYSYMBOL_writabletheobj = 157, /* writabletheobj */
+ YYSYMBOL_list = 158, /* list */
+ YYSYMBOL_proplist = 159, /* proplist */
+ YYSYMBOL_proppair = 160, /* proppair */
+ YYSYMBOL_unarymath = 161, /* unarymath */
+ YYSYMBOL_simpleexpr = 162, /* simpleexpr */
+ YYSYMBOL_expr = 163, /* expr */
+ YYSYMBOL_expr_nounarymath = 164, /* expr_nounarymath */
+ YYSYMBOL_expr_noeq = 165, /* expr_noeq */
+ YYSYMBOL_sprite = 166, /* sprite */
+ YYSYMBOL_exprlist = 167, /* exprlist */
+ YYSYMBOL_nonemptyexprlist = 168 /* nonemptyexprlist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -639,18 +641,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 177
+#define YYFINAL 176
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 4277
+#define YYLAST 4448
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 63
+#define YYNNTS 65
/* YYNRULES -- Number of rules. */
-#define YYNRULES 297
+#define YYNRULES 321
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 544
+#define YYNSTATES 590
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 343
@@ -708,36 +710,39 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 195, 195, 197, 203, 210, 211, 212, 213, 214,
- 243, 247, 249, 251, 252, 255, 261, 268, 269, 274,
- 278, 282, 283, 284, 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, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 338, 339, 340, 341, 344, 345, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
- 359, 360, 361, 362, 363, 366, 367, 368, 371, 375,
- 385, 386, 389, 390, 391, 392, 393, 394, 397, 398,
- 399, 402, 403, 404, 405, 406, 407, 408, 409, 414,
- 415, 416, 417, 420, 423, 428, 432, 438, 443, 446,
- 451, 457, 457, 463, 468, 474, 480, 486, 494, 495,
- 496, 497, 500, 500, 502, 503, 504, 507, 511, 515,
- 521, 525, 529, 533, 534, 536, 538, 540, 542, 546,
- 550, 554, 556, 557, 561, 567, 574, 575, 578, 579,
- 583, 589, 596, 597, 603, 604, 605, 606, 607, 608,
- 609, 610, 611, 612, 613, 614, 615, 618, 620, 621,
- 624, 625, 628, 629, 630, 632, 634, 636, 638, 640,
- 642, 644, 648, 649, 652, 657, 660, 665, 671, 672,
- 673, 674, 677, 678, 679, 680, 681, 684, 686, 687,
- 688, 691, 692, 693, 694, 695, 696, 697, 698, 699,
- 700, 704, 705, 706, 707, 708, 711, 712, 713, 714,
- 717, 717, 719, 720, 721, 724, 728, 733, 734, 735,
- 738, 739, 742, 743, 747, 748, 749, 750, 751, 752,
- 753, 754, 755, 756, 757, 758, 759, 760, 761, 762,
- 763, 764, 765, 772, 773, 774, 775, 776, 777, 778,
- 779, 780, 781, 782, 783, 784, 785, 786, 787, 788,
- 789, 790, 793, 794, 797, 798, 801, 805
+ 0, 196, 196, 198, 204, 211, 212, 213, 214, 215,
+ 244, 248, 250, 252, 253, 256, 262, 269, 270, 275,
+ 279, 283, 284, 285, 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, 324, 325, 326, 327,
+ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 345, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 367, 368, 369, 372, 376,
+ 386, 387, 390, 391, 392, 393, 394, 395, 398, 399,
+ 400, 403, 404, 405, 406, 407, 408, 409, 410, 415,
+ 416, 417, 418, 421, 424, 429, 433, 439, 444, 447,
+ 452, 458, 458, 464, 469, 475, 481, 487, 495, 496,
+ 497, 498, 501, 501, 503, 504, 505, 508, 512, 516,
+ 522, 526, 530, 534, 535, 537, 539, 541, 543, 547,
+ 551, 555, 557, 558, 562, 568, 575, 576, 579, 580,
+ 584, 590, 597, 598, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 614, 615, 616, 619, 621, 622,
+ 625, 626, 629, 630, 631, 633, 635, 637, 639, 641,
+ 643, 645, 649, 650, 653, 658, 661, 666, 672, 673,
+ 674, 675, 676, 677, 680, 681, 682, 683, 684, 687,
+ 689, 690, 691, 692, 693, 694, 695, 696, 697, 698,
+ 702, 703, 704, 705, 706, 709, 710, 711, 712, 715,
+ 715, 717, 718, 721, 722, 723, 724, 725, 728, 729,
+ 730, 733, 737, 742, 743, 744, 747, 748, 751, 752,
+ 756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
+ 766, 767, 768, 769, 770, 771, 772, 773, 774, 781,
+ 782, 783, 784, 785, 786, 787, 788, 789, 790, 791,
+ 792, 793, 794, 795, 796, 797, 798, 799, 802, 803,
+ 804, 805, 806, 807, 808, 809, 810, 811, 812, 813,
+ 814, 815, 816, 817, 818, 819, 822, 823, 826, 827,
+ 830, 834
};
#endif
@@ -778,9 +783,10 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"stmtlist_insideif", "nonemptystmtlist_insideif",
"stmtlistline_insideif", "simpleexpr_nounarymath", "var", "varorchunk",
"varorthe", "chunk", "object", "refargs", "the", "theobj", "menu",
- "writablethe", "thedatetime", "thenumberof", "chunktype", "inof", "list",
- "proplist", "proppair", "unarymath", "simpleexpr", "expr",
- "expr_nounarymath", "sprite", "exprlist", "nonemptyexprlist", YY_NULLPTR
+ "thedatetime", "thenumberof", "chunktype", "inof", "writablethe",
+ "writabletheobj", "list", "proplist", "proppair", "unarymath",
+ "simpleexpr", "expr", "expr_nounarymath", "expr_noeq", "sprite",
+ "exprlist", "nonemptyexprlist", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -805,7 +811,7 @@ static const yytype_int16 yytoknum[] =
};
#endif
-#define YYPACT_NINF (-484)
+#define YYPACT_NINF (-505)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -819,61 +825,65 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2676, -484, -484, -484, -484, -484, -484, -22, -484, 3246,
- 1712, 1809, -484, -484, 3246, -484, 13, -484, -484, 1906,
- 10, 3325, -484, 3246, -484, -484, 3246, 1906, 1712, 3246,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, 1809, 3246, 3246, -43, 3640, -484, 60,
- 2676, -484, -484, -484, -484, 1906, -484, -484, -484, -484,
- -484, -484, -484, -484, -484, -484, -484, 20, -484, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, 21, -30, -484, -484, -484, -484, 2003,
- 2003, 2003, 2003, 1809, 1809, 2100, 1809, 1809, 1809, 1809,
- 3404, 1809, 2100, 2100, 1227, 643, 6, 28, 30, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- 742, -484, 1809, 344, 3246, 37, 43, 839, 3246, 1809,
- 3483, -484, -484, -3, -484, 74, 44, 51, 936, 52,
- 53, 55, 3760, 57, 3246, -484, -484, -484, -484, 66,
- 1033, -484, -484, 3246, 1324, -484, -484, -484, -484, -484,
- 1130, 4112, -484, 424, 455, 528, 3693, -31, -26, -21,
- -20, -17, 47, 137, 140, 4099, -484, -484, -484, 3793,
- -24, 68, 62, -16, -8, -484, 4112, 70, 71, 1421,
- -484, -484, 148, 1809, 1809, 1809, 1809, 2391, 2391, 2585,
- 1809, 2488, 2488, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, -484, -484, 3878, -484, 3865, 2756, 1809, 1809, 1809,
- 1809, 1809, 78, -484, -484, 3562, 3562, 3562, -10, 3935,
- 150, -484, -484, 1809, 1809, -60, -484, 1809, -484, -484,
- -484, 3640, 2836, -484, 83, -484, -484, -484, 3852, 155,
- 4128, 2100, 1809, 2100, 1809, 2100, 1809, 2100, 1809, -484,
- -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
- -484, -484, -484, 46, 2197, 2294, 2100, 2100, 1518, -484,
- 1809, 1809, -484, 1809, 3167, -484, -484, 1809, -484, 84,
- 1809, -29, -29, -29, -29, 4182, 4182, -484, 4, -29,
- -29, -29, -29, 4, -9, -9, -484, -484, 84, 1809,
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, -484, 3076, 167,
- 2836, -484, 94, -484, 96, 97, 1809, 1809, 2836, 2294,
- 3948, 4112, 3246, -484, -484, -484, -60, -484, 3961, -484,
- -484, -484, 109, 2836, -484, 2836, 1615, 1809, -484, 541,
- -484, 3706, -484, 3726, -484, 3780, -484, -484, 2100, 46,
- 46, 46, 46, 2100, 2100, 46, 2100, 2100, -484, -484,
- -484, -484, -484, -484, -484, 84, 4112, 4112, 4112, -24,
- 68, 95, -484, 4112, 1809, 99, 4112, -484, -29, -29,
- -29, -29, 4182, 4182, -484, 4, -29, -29, -29, -29,
- 4, -9, -9, -484, -484, 84, -484, -484, -1, 3076,
- -484, 2916, -484, -484, -484, -484, 4017, 67, 111, -484,
- 3246, -484, -484, 103, -484, 191, -484, 84, 4112, 2100,
- 2100, 2100, 2100, -484, 2100, 2100, 2100, 2100, -484, 174,
- 132, -484, -484, 104, -484, -484, 2996, 108, -484, -484,
- 3076, -484, 2836, 172, 1809, 112, 113, -484, 3246, 114,
- -484, -484, -484, -484, -484, -484, -484, -484, 141, 2100,
- -484, -484, 3076, -484, -484, 126, 129, 1809, 4030, -484,
- 2836, -68, -484, -484, 2100, 126, -484, 119, 4043, 2836,
- -484, -484, 3246, -484, -484, -484, 2836, 131, -484, 133,
- 121, 124, -484, -484
+ 2823, -505, -505, -505, -505, -505, -505, -23, -505, 3393,
+ 1762, 1859, -505, -505, 3393, -505, -7, -505, -505, 1956,
+ 92, 3472, -505, 3393, -505, -505, 3393, 1956, 1762, 3393,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, -505, 1859, 3393, 3393, -67, 3708, -505, 32,
+ 2823, -505, -505, -505, -505, 1956, -505, -505, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -47, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, -505, -44, -43, -505, -505, -505, -505, 2053,
+ 2053, 2053, 2053, 1859, 1859, 2150, 1859, 1859, 1859, 1859,
+ 3551, 1859, 2150, 2150, 1277, 693, 26, -21, -14, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, 792,
+ -505, 1859, 3935, 3393, 44, 51, 889, 3393, 1859, 3393,
+ -505, -505, -6, -505, 40, 53, 65, 986, 70, 72,
+ 78, 3902, 79, 3393, -505, -505, -505, -505, 81, 1083,
+ -505, -505, 3393, 1374, -505, -505, -505, -505, -505, 1180,
+ 4245, -505, 509, 531, 600, 3761, -24, -22, 27, 45,
+ 47, 111, 116, 135, 4216, -505, -505, -505, 436, -5,
+ 80, 71, -2, 4, -505, 4245, 77, 88, 1471, -505,
+ -505, 165, 1859, 1859, 1859, 1859, 2538, 2538, 2732, 1859,
+ 2635, 2635, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
+ -505, -505, 4017, -505, 3989, 2903, 1859, 1859, 1859, 1859,
+ 1859, 102, -505, -505, 3630, 3630, 3630, 2, 4048, 172,
+ -505, -505, 1859, 1859, -57, -505, 1859, -505, -505, -505,
+ 3708, 2983, -505, 104, -505, -505, -505, 3958, 177, 4270,
+ 2150, 1859, 2150, 1859, 2150, 1859, 2150, 1859, -505, -505,
+ -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+ -505, -505, 13, 2247, 2344, 2150, 2150, 1568, -505, 1859,
+ 1859, -505, 1859, 3314, -505, -505, 1859, -505, 107, 1859,
+ -33, -33, -33, -33, 4324, 4324, -505, -29, -33, -33,
+ -33, -33, -29, -26, -26, -505, -505, 107, 1859, 1859,
+ 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
+ 1859, 1859, 1859, 1859, 1859, 1859, -505, 3223, 190, 2983,
+ -505, 110, -505, 112, 117, 1859, 1859, 2983, 2441, 4074,
+ 4245, 3393, -505, -505, -505, -57, -505, 4104, -505, -505,
+ -505, 121, 2983, -505, 2983, 1665, 1859, -505, 3774, -505,
+ 3794, -505, 3848, -505, 3868, -505, -505, 2150, 13, 13,
+ 13, 13, 2150, 2150, 13, 2150, 2150, -505, -505, -505,
+ -505, -505, -505, -505, 107, 4245, 4245, 4245, -5, 80,
+ 113, -505, 4245, 1859, 115, 4245, -505, -33, -33, -33,
+ -33, 4324, 4324, -505, -29, -33, -33, -33, -33, -29,
+ -26, -26, -505, -505, 107, -505, -505, 1, 3223, -505,
+ 3063, -505, -505, -505, -505, 4130, 66, 127, 1859, 1859,
+ 1859, 1859, -505, -505, -505, 3393, -505, -505, 120, -505,
+ 208, -505, 107, 4245, 2150, 2150, 2150, 2150, -505, 2150,
+ 2150, 2150, 2150, -505, 192, 150, -505, -505, 122, -505,
+ -505, 3143, 126, -505, -505, 3223, -505, 2983, 191, 1859,
+ 130, -505, 4299, -505, 3881, 4299, 4299, 131, -505, 3393,
+ 124, -505, -505, -505, -505, -505, -505, -505, -505, 158,
+ 2150, -505, -505, 3223, -505, -505, 145, 146, 1859, 4160,
+ -505, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
+ 1859, 1859, 1859, 1859, 1859, 1859, 1859, 160, 2983, 37,
+ -505, -505, 2150, 145, -505, 137, 4186, 2983, -1, -1,
+ -1, 4353, 4353, -505, 38, -1, -1, -1, -1, 38,
+ -16, -16, -505, -505, 1859, -505, -505, 3393, -505, -505,
+ -505, 2983, 147, 4299, -505, 149, 143, 144, -505, -505
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -894,72 +904,76 @@ static const yytype_int16 yydefact[] =
93, 94, 79, 87, 88, 83, 92, 89, 86, 85,
61, 75, 98, 0, 96, 174, 175, 177, 176, 31,
37, 60, 70, 38, 52, 54, 32, 42, 45, 73,
- 66, 64, 0, 0, 0, 294, 187, 0, 0, 252,
- 182, 183, 184, 185, 208, 209, 210, 186, 253, 254,
- 131, 255, 0, 0, 95, 0, 0, 131, 0, 0,
- 66, 187, 190, 0, 191, 0, 0, 0, 131, 0,
- 0, 0, 0, 0, 95, 101, 122, 1, 4, 0,
- 131, 120, 144, 97, 0, 193, 204, 192, 202, 203,
- 133, 134, 178, 0, 0, 0, 0, 25, 26, 27,
- 47, 62, 44, 55, 218, 0, 250, 251, 128, 0,
- 177, 176, 0, 187, 0, 245, 296, 0, 295, 0,
- 113, 114, 56, 0, 0, 0, 0, 29, 57, 51,
- 0, 34, 65, 0, 0, 0, 0, 0, 0, 0,
- 132, 124, 273, 131, 274, 0, 0, 0, 0, 0,
- 0, 0, 0, 119, 112, 41, 28, 30, 0, 0,
- 55, 142, 143, 0, 0, 13, 117, 71, 115, 116,
- 146, 0, 162, 145, 0, 111, 99, 205, 0, 56,
- 137, 0, 0, 0, 0, 0, 0, 0, 0, 221,
- 222, 223, 224, 225, 226, 227, 228, 229, 230, 236,
- 238, 239, 237, 0, 0, 0, 0, 0, 0, 181,
- 0, 0, 243, 0, 0, 244, 242, 0, 179, 131,
- 0, 265, 266, 263, 264, 267, 268, 260, 270, 271,
- 272, 262, 261, 269, 256, 257, 258, 259, 131, 0,
+ 66, 64, 0, 0, 0, 318, 187, 0, 0, 258,
+ 182, 183, 184, 185, 211, 212, 186, 259, 260, 131,
+ 261, 0, 0, 95, 0, 0, 131, 0, 0, 66,
+ 187, 190, 0, 191, 0, 0, 0, 131, 0, 0,
+ 0, 0, 0, 95, 101, 122, 1, 4, 0, 131,
+ 120, 144, 97, 0, 193, 204, 192, 202, 203, 133,
+ 134, 178, 0, 0, 0, 0, 25, 26, 27, 47,
+ 62, 44, 55, 208, 0, 256, 257, 128, 0, 177,
+ 176, 0, 187, 0, 251, 320, 0, 319, 0, 113,
+ 114, 56, 0, 0, 0, 0, 29, 57, 51, 0,
+ 34, 65, 0, 0, 0, 0, 0, 0, 0, 132,
+ 124, 279, 131, 280, 0, 0, 0, 0, 0, 0,
+ 0, 0, 119, 112, 41, 28, 30, 0, 0, 241,
+ 142, 143, 0, 0, 13, 117, 71, 115, 116, 146,
+ 0, 162, 145, 0, 111, 99, 205, 0, 56, 137,
+ 0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
+ 222, 223, 224, 225, 226, 227, 228, 229, 235, 237,
+ 238, 236, 0, 0, 0, 0, 0, 0, 181, 0,
+ 0, 249, 0, 0, 250, 248, 0, 179, 131, 0,
+ 271, 272, 269, 270, 273, 274, 266, 276, 277, 278,
+ 268, 267, 275, 262, 263, 264, 265, 131, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 132, 126, 168, 147,
- 162, 188, 0, 189, 0, 0, 0, 0, 162, 0,
- 0, 161, 0, 17, 18, 11, 14, 15, 0, 159,
- 166, 167, 0, 163, 164, 162, 0, 0, 194, 0,
- 198, 0, 200, 0, 196, 0, 240, 241, 0, 33,
- 43, 46, 74, 48, 49, 50, 63, 64, 220, 213,
- 212, 219, 292, 293, 129, 131, 249, 247, 248, 0,
- 0, 0, 246, 297, 132, 0, 136, 125, 284, 285,
- 282, 283, 286, 287, 279, 289, 290, 291, 281, 280,
- 288, 275, 276, 277, 278, 131, 172, 173, 153, 169,
- 170, 0, 10, 138, 139, 140, 0, 0, 0, 141,
- 95, 16, 118, 0, 165, 20, 206, 131, 135, 0,
- 0, 0, 0, 211, 0, 0, 0, 0, 217, 0,
- 0, 215, 216, 0, 180, 127, 0, 0, 148, 171,
- 168, 149, 162, 0, 0, 0, 0, 160, 21, 0,
- 195, 199, 201, 197, 231, 233, 234, 232, 0, 0,
- 235, 130, 168, 151, 154, 153, 0, 0, 0, 155,
- 162, 0, 22, 207, 0, 153, 150, 0, 0, 162,
- 12, 19, 0, 214, 152, 158, 162, 0, 23, 0,
- 0, 0, 156, 157
+ 0, 0, 0, 0, 0, 132, 126, 168, 147, 162,
+ 188, 0, 189, 0, 0, 0, 0, 162, 0, 0,
+ 161, 0, 17, 18, 11, 14, 15, 0, 159, 166,
+ 167, 0, 163, 164, 162, 0, 0, 194, 0, 198,
+ 0, 200, 0, 196, 0, 239, 240, 0, 33, 43,
+ 46, 74, 48, 49, 50, 63, 64, 210, 215, 214,
+ 209, 316, 317, 129, 131, 255, 253, 254, 0, 0,
+ 0, 252, 321, 132, 0, 136, 125, 290, 291, 288,
+ 289, 292, 293, 285, 295, 296, 297, 287, 286, 294,
+ 281, 282, 283, 284, 131, 172, 173, 153, 169, 170,
+ 0, 10, 138, 139, 140, 0, 0, 0, 48, 49,
+ 63, 64, 242, 243, 141, 95, 16, 118, 0, 165,
+ 20, 206, 131, 135, 0, 0, 0, 0, 213, 0,
+ 0, 0, 0, 219, 0, 0, 217, 218, 0, 180,
+ 127, 0, 0, 148, 171, 168, 149, 162, 0, 0,
+ 0, 298, 244, 299, 0, 246, 247, 0, 160, 21,
+ 0, 195, 199, 201, 197, 230, 232, 233, 231, 0,
+ 0, 234, 130, 168, 151, 154, 153, 0, 0, 0,
+ 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
+ 22, 207, 0, 153, 150, 0, 0, 162, 308, 309,
+ 307, 310, 311, 304, 313, 314, 315, 306, 305, 312,
+ 300, 301, 302, 303, 0, 12, 19, 0, 216, 152,
+ 158, 162, 0, 245, 23, 0, 0, 0, 156, 157
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -484, -484, -484, 152, -484, -484, -484, -484, -484, -153,
- -484, -484, 0, -7, -28, -484, 8, -346, -63, -484,
- -2, -238, 196, -484, -484, -484, -484, -484, -483, -484,
- -484, -484, -350, -484, -158, -479, -484, -223, -129, -18,
- -180, -484, -164, -484, 17, -484, -78, -252, 209, -484,
- -484, -484, -270, -484, -484, -83, -484, 136, 61, 42,
- -35, -484, -213
+ -505, -505, -505, 173, -505, -505, -505, -505, -505, -133,
+ -505, -505, 0, -8, -27, -505, 5, -343, -60, -505,
+ 7, -233, 221, -505, -505, -505, -505, -505, -504, -505,
+ -505, -505, -355, -505, -131, -484, -505, -196, 15, -18,
+ -102, -505, -212, -505, 76, -505, -51, -231, -505, -505,
+ -505, -261, -505, -505, -505, -505, -54, -505, 136, 61,
+ 73, -25, -72, -505, -208
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 69, 70, 71, 72, 73, 374, 375, 376, 377,
- 74, 521, 111, 136, 113, 114, 381, 77, 78, 79,
- 137, 241, 138, 80, 263, 81, 82, 83, 488, 84,
- 85, 86, 382, 383, 384, 448, 449, 450, 139, 140,
- 362, 163, 141, 142, 185, 143, 408, 409, 144, 145,
- 146, 303, 398, 147, 214, 215, 148, 149, 216, 243,
- 151, 217, 218
+ 0, 69, 70, 71, 72, 73, 373, 374, 375, 376,
+ 74, 549, 111, 136, 113, 114, 380, 77, 78, 79,
+ 137, 240, 138, 80, 262, 81, 82, 83, 493, 84,
+ 85, 86, 381, 382, 383, 447, 448, 449, 139, 140,
+ 361, 162, 141, 142, 184, 143, 407, 408, 144, 145,
+ 302, 397, 163, 462, 146, 213, 214, 147, 148, 215,
+ 242, 502, 150, 216, 217
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -967,73 +981,78 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 75, 171, 112, 162, 176, 357, 319, 154, 76, 87,
- 452, 515, 447, 366, 161, 486, 165, 156, 458, 166,
- 249, 242, 112, 230, 372, 167, 169, 338, 242, 531,
- 532, 261, 526, 525, 367, 465, 173, 373, 289, 242,
- 249, 262, 534, 291, 155, 290, 158, 159, 293, 295,
- 292, 242, 297, 249, 175, 294, 296, 112, 174, 298,
- 177, 242, 235, 236, 237, 238, 239, 75, 183, 396,
- 75, 150, 153, 179, 397, 88, 364, 365, 76, 310,
- 157, 425, 493, 219, 487, 238, 239, 313, 168, 150,
- 314, 363, 363, 363, 315, 415, 236, 237, 238, 239,
- 427, 494, 299, 447, 300, 219, 301, 264, 302, 223,
- 224, 225, 226, 247, 248, 244, 249, 181, 182, 230,
- 250, 251, 244, 204, 172, 220, 252, 221, 213, 474,
- 475, 476, 477, 244, 253, 480, 180, 187, 188, 189,
- 254, 265, 516, 445, 447, 244, 274, 112, 266, 268,
- 269, 258, 270, 204, 273, 244, 233, 234, 235, 236,
- 237, 238, 239, 275, 312, 304, 447, 112, 305, 317,
- 530, 311, 316, 467, 320, 360, 276, 483, 369, 537,
- 385, 387, 424, 451, 190, 191, 539, 193, 194, 195,
- 196, 453, 205, 454, 455, 209, 463, 495, 313, 484,
- 497, 498, 508, 509, 511, 514, 517, 485, 379, 519,
- 520, 487, 524, 245, 523, 527, 535, 540, 542, 541,
- 259, 543, 178, 461, 170, 464, 489, 411, 510, 499,
- 164, 422, 280, 0, 0, 0, 0, 361, 361, 361,
- 0, 0, 0, 0, 0, 278, 75, 0, 161, 161,
- 161, 0, 0, 0, 359, 186, 186, 186, 186, 0,
- 0, 192, 0, 0, 0, 0, 0, 0, 206, 207,
- 0, 75, 75, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
+ 75, 112, 170, 161, 451, 76, 153, 175, 87, 356,
+ 318, 526, 457, 160, 446, 164, 248, 491, 165, 229,
+ 248, 112, 554, 248, 154, 365, 155, 371, 260, 470,
+ 174, 337, 176, 536, 166, 168, 395, 172, 261, 553,
+ 372, 396, 362, 362, 362, 288, 366, 290, 536, 579,
+ 180, 537, 289, 181, 291, 182, 112, 173, 234, 235,
+ 236, 237, 238, 235, 236, 237, 238, 75, 237, 238,
+ 75, 149, 152, 263, 88, 76, 219, 243, 545, 546,
+ 156, 498, 178, 220, 243, 424, 492, 536, 167, 149,
+ 542, 543, 544, 545, 546, 243, 292, 218, 309, 414,
+ 499, 312, 313, 293, 426, 446, 314, 243, 222, 223,
+ 224, 225, 246, 247, 294, 248, 296, 243, 229, 249,
+ 250, 295, 203, 297, 171, 218, 251, 212, 157, 158,
+ 543, 544, 545, 546, 576, 577, 179, 479, 480, 481,
+ 482, 252, 527, 485, 303, 112, 273, 444, 253, 257,
+ 264, 259, 446, 363, 364, 232, 233, 234, 235, 236,
+ 237, 238, 265, 304, 241, 112, 298, 267, 299, 268,
+ 300, 241, 301, 311, 275, 269, 272, 472, 274, 315,
+ 446, 488, 241, 310, 189, 190, 316, 192, 193, 194,
+ 195, 319, 204, 575, 241, 208, 186, 187, 188, 359,
+ 368, 384, 582, 386, 241, 423, 450, 452, 468, 453,
+ 378, 490, 244, 500, 454, 489, 312, 508, 509, 258,
+ 519, 520, 522, 525, 551, 528, 585, 530, 548, 552,
+ 492, 574, 555, 586, 580, 587, 360, 360, 360, 510,
+ 588, 589, 466, 177, 277, 75, 160, 160, 160, 169,
+ 358, 469, 494, 410, 521, 185, 185, 185, 185, 421,
+ 0, 191, 279, 0, 0, 0, 0, 0, 205, 206,
+ 75, 75, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 0, 0, 0, 0, 0, 0, 421, 325, 326,
- 327, 329, 330, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 370, 371, 0, 0, 378, 0,
+ 0, 0, 0, 0, 0, 420, 0, 324, 325, 326,
+ 328, 329, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 369, 370, 0, 0, 377, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 389, 0, 391, 0, 393, 0, 395,
- 0, 0, 0, 0, 0, 0, 0, 0, 75, 0,
- 75, 0, 0, 0, 0, 460, 0, 0, 75, 0,
- 0, 416, 417, 0, 418, 0, 0, 246, 423, 0,
- 0, 426, 0, 75, 0, 75, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
+ 0, 0, 388, 0, 390, 0, 392, 0, 394, 0,
+ 0, 0, 0, 0, 0, 0, 0, 75, 0, 75,
+ 0, 0, 0, 465, 0, 0, 0, 75, 0, 0,
+ 415, 416, 0, 417, 0, 0, 0, 422, 0, 0,
+ 425, 0, 75, 0, 75, 0, 503, 503, 503, 503,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 427,
428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
- 438, 439, 440, 441, 442, 443, 444, 388, 0, 390,
- 0, 392, 0, 394, 0, 0, 0, 456, 457, 0,
- 0, 0, 496, 233, 234, 235, 236, 237, 238, 239,
- 410, 410, 412, 413, 0, 0, 0, 0, 468, 75,
- 0, 75, 281, 112, 0, 0, 0, 0, 282, 491,
- 0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
- 247, 248, 0, 249, 0, 0, 230, 250, 251, 0,
- 0, 0, 0, 283, 0, 423, 75, 0, 0, 284,
- 75, 522, 75, 0, 513, 0, 0, 223, 224, 225,
- 226, 247, 248, 0, 249, 410, 0, 230, 250, 251,
- 0, 0, 75, 233, 234, 235, 236, 237, 238, 239,
- 75, 0, 0, 0, 0, 538, 0, 0, 0, 75,
- 0, 0, 0, 0, 473, 0, 75, 0, 0, 478,
- 479, 0, 481, 482, 233, 234, 235, 236, 237, 238,
- 239, 0, 0, 0, 0, 518, 285, 0, 0, 0,
- 0, 0, 286, 0, 0, 0, 0, 0, 0, 469,
- 223, 224, 225, 226, 247, 248, 0, 249, 528, 0,
- 230, 250, 251, 223, 224, 225, 226, 247, 248, 0,
- 249, 0, 0, 230, 250, 251, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 500, 501, 502, 503, 0,
- 504, 505, 506, 507, 0, 0, 0, 233, 234, 235,
- 236, 237, 238, 239, 0, 0, 0, 0, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 0, 0, 0,
- 0, 0, 0, 0, 0, 478, 0, 0, 115, 116,
- 1, 210, 211, 89, 119, 120, 121, 122, 6, 90,
- 533, 91, 8, 92, 93, 94, 12, 13, 95, 15,
+ 438, 439, 440, 441, 442, 443, 387, 0, 389, 0,
+ 391, 0, 393, 0, 0, 0, 455, 456, 0, 0,
+ 0, 0, 0, 0, 504, 505, 506, 0, 507, 409,
+ 409, 411, 412, 0, 0, 0, 0, 473, 75, 0,
+ 75, 0, 0, 0, 0, 496, 0, 112, 0, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 0, 0, 0, 222, 223,
+ 224, 225, 246, 247, 422, 248, 0, 0, 229, 249,
+ 250, 75, 0, 0, 0, 75, 524, 75, 0, 0,
+ 0, 550, 503, 0, 463, 0, 558, 559, 560, 561,
+ 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 0, 75, 0, 232, 233, 234, 235, 236,
+ 237, 238, 0, 478, 307, 0, 308, 280, 483, 484,
+ 0, 486, 487, 281, 0, 0, 0, 0, 75, 583,
+ 0, 222, 223, 224, 225, 246, 247, 75, 248, 282,
+ 529, 229, 249, 250, 0, 283, 0, 0, 0, 584,
+ 0, 0, 0, 222, 223, 224, 225, 246, 247, 0,
+ 248, 75, 0, 229, 249, 250, 0, 0, 0, 556,
+ 0, 0, 0, 0, 501, 501, 501, 501, 232, 233,
+ 234, 235, 236, 237, 238, 0, 0, 0, 0, 0,
+ 511, 512, 513, 514, 0, 515, 516, 517, 518, 0,
+ 232, 233, 234, 235, 236, 237, 238, 0, 284, 0,
+ 0, 0, 0, 0, 285, 0, 0, 0, 0, 0,
+ 0, 0, 222, 223, 224, 225, 246, 247, 0, 248,
+ 0, 0, 229, 249, 250, 0, 483, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 501, 501, 501,
+ 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
+ 501, 501, 501, 0, 0, 0, 0, 0, 578, 232,
+ 233, 234, 235, 236, 237, 238, 0, 0, 115, 116,
+ 1, 209, 210, 89, 119, 120, 121, 122, 6, 90,
+ 501, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 125, 33, 34, 35, 0, 36, 37, 126, 39,
@@ -1041,55 +1060,55 @@ static const yytype_int16 yytable[] =
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
- 0, 0, 152, 0, 135, 0, 212, 115, 116, 1,
+ 0, 0, 151, 0, 135, 0, 211, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
- 222, 18, 97, 98, 99, 100, 22, 101, 24, 25,
- 102, 103, 104, 105, 223, 224, 225, 226, 227, 228,
- 125, 229, 34, 35, 230, 231, 232, 126, 39, 127,
+ 221, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 222, 223, 224, 225, 226, 227,
+ 125, 228, 34, 35, 229, 230, 231, 126, 39, 127,
41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
- 110, 233, 234, 235, 236, 237, 238, 239, 0, 0,
- 240, 152, 0, 135, 115, 116, 1, 117, 118, 89,
+ 110, 232, 233, 234, 235, 236, 237, 238, 0, 0,
+ 239, 151, 0, 135, 115, 116, 1, 117, 118, 89,
119, 120, 121, 122, 6, 90, 0, 91, 8, 92,
- 93, 94, 12, 255, 95, 15, 96, 17, 18, 97,
+ 93, 94, 12, 254, 95, 15, 96, 17, 18, 97,
98, 99, 100, 22, 101, 24, 25, 102, 103, 104,
- 105, 223, 224, 225, 226, 227, 228, 125, 229, 256,
- 257, 230, 231, 232, 126, 39, 127, 41, 128, 43,
+ 105, 222, 223, 224, 225, 226, 227, 125, 228, 255,
+ 256, 229, 230, 231, 126, 39, 127, 41, 128, 43,
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
- 106, 107, 108, 109, 0, 0, 0, 110, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 240, 152, 0,
+ 106, 107, 108, 109, 0, 0, 0, 110, 232, 233,
+ 234, 235, 236, 237, 238, 0, 0, 239, 151, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 267, 25, 102, 103, 104, 105, 223, 224,
- 225, 226, 227, 228, 125, 229, 34, 35, 230, 231,
- 232, 126, 39, 127, 41, 128, 43, 129, 45, 46,
+ 22, 101, 266, 25, 102, 103, 104, 105, 222, 223,
+ 224, 225, 226, 227, 125, 228, 34, 35, 229, 230,
+ 231, 126, 39, 127, 41, 128, 43, 129, 45, 46,
47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
56, 130, 58, 59, 131, 61, 62, 106, 107, 108,
- 109, 0, 0, 0, 110, 233, 234, 235, 236, 237,
- 238, 239, 0, 0, 240, 152, 0, 135, 115, 116,
+ 109, 0, 0, 0, 110, 232, 233, 234, 235, 236,
+ 237, 238, 0, 0, 239, 151, 0, 135, 115, 116,
1, 117, 118, 89, 119, 120, 121, 122, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
96, 17, 18, 97, 98, 99, 100, 22, 101, 24,
- 25, 102, 103, 104, 105, 223, 224, 225, 226, 227,
- 228, 125, 229, 34, 35, 230, 231, 232, 126, 39,
+ 25, 102, 103, 104, 105, 222, 223, 224, 225, 226,
+ 227, 125, 228, 34, 35, 229, 230, 231, 126, 39,
127, 41, 128, 43, 129, 45, 46, 47, 48, 49,
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 131, 61, 62, 106, 107, 108, 109, 0, 0,
- 0, 110, 233, 234, 235, 236, 237, 238, 239, 0,
- 0, 240, 152, 0, 135, 115, 116, 1, 117, 118,
+ 0, 110, 232, 233, 234, 235, 236, 237, 238, 0,
+ 0, 239, 151, 0, 135, 115, 116, 1, 117, 118,
89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
- 92, 93, 94, 12, 13, 95, 15, 96, 279, 18,
+ 92, 93, 94, 12, 13, 95, 15, 96, 278, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
- 104, 105, 223, 224, 225, 226, 227, 228, 125, 229,
- 34, 35, 230, 231, 232, 126, 39, 127, 41, 128,
+ 104, 105, 222, 223, 224, 225, 226, 227, 125, 228,
+ 34, 35, 229, 230, 231, 126, 39, 127, 41, 128,
43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 130, 58, 59, 131, 61,
- 62, 106, 107, 108, 109, 0, 0, 0, 110, 233,
- 234, 235, 236, 237, 238, 239, 0, 0, 0, 152,
+ 62, 106, 107, 108, 109, 0, 0, 0, 110, 232,
+ 233, 234, 235, 236, 237, 238, 0, 0, 0, 151,
0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
@@ -1099,7 +1118,7 @@ static const yytype_int16 yytable[] =
46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
55, 56, 130, 58, 59, 131, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
- 133, 0, 0, 0, 0, 0, 152, 208, 135, 115,
+ 133, 0, 0, 0, 0, 0, 151, 207, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
@@ -1109,7 +1128,7 @@ static const yytype_int16 yytable[] =
49, 50, 0, 51, 52, 53, 54, 55, 56, 130,
58, 59, 131, 61, 62, 106, 107, 108, 109, 0,
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
- 0, 0, 0, 152, 277, 135, 115, 116, 1, 117,
+ 0, 0, 0, 151, 276, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
@@ -1119,7 +1138,7 @@ static const yytype_int16 yytable[] =
51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 152, 318, 135, 115, 116, 1, 117, 118, 89, 119,
+ 151, 317, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
@@ -1128,7 +1147,7 @@ static const yytype_int16 yytable[] =
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
- 132, 133, 0, 0, 0, 0, 0, 152, 414, 135,
+ 132, 133, 0, 0, 0, 0, 0, 151, 413, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
@@ -1138,7 +1157,7 @@ static const yytype_int16 yytable[] =
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
- 0, 0, 0, 0, 152, 466, 135, 115, 116, 1,
+ 0, 0, 0, 0, 151, 471, 135, 115, 116, 1,
117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
91, 123, 92, 93, 94, 12, 13, 95, 124, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
@@ -1157,7 +1176,7 @@ static const yytype_int16 yytable[] =
129, 45, 46, 47, 48, 49, 50, 0, 51, 52,
53, 54, 55, 56, 130, 58, 59, 131, 61, 62,
106, 107, 108, 109, 0, 0, 0, 110, 0, 0,
- 0, 132, 133, 0, 0, 0, 0, 0, 152, 0,
+ 0, 132, 133, 0, 0, 0, 0, 0, 151, 0,
135, 115, 116, 1, 117, 118, 89, 119, 120, 121,
122, 6, 90, 0, 91, 8, 92, 93, 94, 12,
13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
@@ -1177,7 +1196,7 @@ static const yytype_int16 yytable[] =
50, 0, 51, 52, 53, 54, 55, 56, 130, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 0,
0, 110, 0, 0, 0, 132, 133, 0, 0, 0,
- 0, 0, 184, 0, 135, 115, 116, 1, 117, 118,
+ 0, 0, 183, 0, 135, 115, 116, 1, 117, 118,
89, 119, 120, 121, 122, 6, 90, 0, 91, 8,
92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
@@ -1186,135 +1205,121 @@ static const yytype_int16 yytable[] =
43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 130, 58, 59, 60, 61,
62, 106, 107, 108, 109, 0, 0, 0, 110, 0,
- 0, 0, 132, 133, 0, 0, 0, 0, 0, 152,
+ 0, 0, 132, 133, 0, 0, 0, 0, 0, 151,
0, 135, 115, 116, 1, 117, 118, 89, 119, 120,
121, 122, 6, 90, 0, 91, 8, 92, 93, 94,
12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
0, 0, 0, 30, 31, 125, 33, 34, 35, 0,
- 36, 37, 126, 399, 127, 400, 128, 401, 129, 402,
- 46, 47, 48, 49, 50, 0, 51, 52, 403, 404,
- 405, 56, 130, 58, 406, 407, 61, 62, 106, 107,
+ 36, 37, 126, 398, 127, 399, 128, 400, 129, 401,
+ 46, 47, 48, 49, 50, 0, 51, 52, 402, 403,
+ 404, 56, 130, 58, 405, 406, 61, 62, 106, 107,
108, 109, 0, 0, 0, 110, 0, 0, 0, 132,
- 133, 0, 0, 0, 0, 0, 152, 0, 135, 115,
+ 133, 0, 0, 0, 0, 0, 151, 0, 135, 115,
116, 1, 117, 118, 89, 119, 120, 121, 122, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 125, 33, 34, 35, 0, 36, 37, 126,
39, 127, 41, 128, 43, 129, 45, 46, 47, 48,
- 49, 50, 0, 51, 52, 403, 404, 55, 56, 130,
- 58, 406, 407, 61, 62, 106, 107, 108, 109, 0,
+ 49, 50, 0, 51, 52, 402, 403, 55, 56, 130,
+ 58, 405, 406, 61, 62, 106, 107, 108, 109, 0,
0, 0, 110, 0, 0, 0, 132, 133, 0, 0,
- 0, 0, 0, 152, 0, 135, 115, 116, 1, 117,
+ 0, 0, 0, 151, 0, 135, 115, 116, 1, 117,
118, 89, 119, 120, 121, 122, 6, 90, 0, 91,
8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
- 103, 104, 105, 0, 0, 0, 0, 0, 0, 125,
+ 103, 104, 105, 0, 0, 0, 0, 30, 31, 125,
33, 34, 35, 0, 36, 37, 126, 39, 127, 41,
128, 43, 129, 45, 46, 47, 48, 49, 50, 0,
- 51, 52, 53, 54, 55, 56, 130, 58, 59, 131,
+ 51, 52, 458, 459, 55, 56, 130, 58, 460, 461,
61, 62, 106, 107, 108, 109, 0, 0, 0, 110,
0, 0, 0, 132, 133, 0, 0, 0, 0, 0,
- 152, 0, 135, 115, 116, 1, 117, 118, 89, 119,
+ 151, 0, 135, 115, 116, 1, 117, 118, 89, 119,
120, 121, 122, 6, 90, 0, 91, 8, 92, 93,
94, 12, 13, 95, 15, 96, 17, 18, 97, 98,
99, 100, 22, 101, 24, 25, 102, 103, 104, 105,
0, 0, 0, 0, 0, 0, 125, 33, 34, 35,
- 0, 0, 0, 126, 39, 127, 41, 128, 43, 129,
+ 0, 36, 37, 126, 39, 127, 41, 128, 43, 129,
45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
54, 55, 56, 130, 58, 59, 131, 61, 62, 106,
107, 108, 109, 0, 0, 0, 110, 0, 0, 0,
- 132, 133, 0, 0, 0, 0, 0, 152, 0, 135,
+ 132, 133, 0, 0, 0, 0, 0, 151, 0, 135,
115, 116, 1, 117, 118, 89, 119, 120, 121, 122,
6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 0, 0, 125, 0, 34, 35, 0, 0, 0,
+ 0, 0, 0, 125, 33, 34, 35, 0, 0, 0,
126, 39, 127, 41, 128, 43, 129, 45, 46, 47,
48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
130, 58, 59, 131, 61, 62, 106, 107, 108, 109,
- 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 152, 0, 135, 2, 3, 4,
- 5, 6, 0, 0, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
- 5, 6, 0, 68, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
- 5, 6, 0, 358, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
- 5, 6, 0, 380, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
- 5, 6, 0, 490, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 66, 0, 1, 67, 0, 0, 2, 3, 4,
- 5, 6, 0, 512, 7, 8, 9, 10, 11, 12,
- 13, 0, 15, 16, 17, 18, 19, 20, 21, 0,
- 22, 23, 24, 25, 0, 27, 28, 29, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
- 0, 0, 0, 0, 67, 0, 0, 0, 0, 0,
- 0, 0, 0, 446, 1, 419, 420, 89, 2, 3,
- 4, 5, 6, 90, 0, 91, 8, 92, 93, 94,
- 12, 13, 95, 15, 96, 17, 18, 97, 98, 99,
- 100, 22, 101, 24, 25, 102, 103, 104, 105, 0,
- 0, 0, 0, 30, 31, 32, 33, 34, 35, 0,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 106, 107,
- 108, 109, 0, 1, 0, 110, 89, 2, 3, 4,
- 5, 6, 90, 0, 91, 8, 92, 93, 94, 12,
- 13, 95, 15, 96, 17, 18, 97, 98, 99, 100,
- 22, 101, 24, 25, 102, 103, 104, 105, 0, 0,
- 0, 0, 30, 31, 32, 33, 34, 35, 0, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 106, 107, 108,
- 109, 0, 1, 0, 110, 89, 2, 3, 4, 5,
- 6, 90, 0, 91, 8, 92, 93, 94, 12, 13,
- 95, 15, 96, 17, 18, 97, 98, 99, 100, 22,
- 101, 24, 25, 102, 103, 104, 105, 0, 0, 0,
- 0, 30, 31, 32, 33, 34, 35, 0, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56,
- 160, 58, 59, 60, 61, 62, 106, 107, 108, 109,
- 0, 1, 0, 110, 89, 2, 3, 4, 5, 6,
+ 0, 0, 0, 110, 0, 0, 0, 132, 133, 0,
+ 0, 0, 0, 0, 151, 0, 135, 115, 116, 1,
+ 117, 118, 89, 119, 120, 121, 122, 6, 90, 0,
+ 91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
+ 17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
+ 102, 103, 104, 105, 0, 0, 0, 0, 0, 0,
+ 125, 0, 34, 35, 0, 0, 0, 126, 39, 127,
+ 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 130, 58, 59,
+ 131, 61, 62, 106, 107, 108, 109, 0, 0, 0,
+ 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 151, 0, 135, 2, 3, 4, 5, 6, 0,
+ 0, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 26, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 68, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 357, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 379, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 495, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 66, 0,
+ 1, 67, 0, 0, 2, 3, 4, 5, 6, 0,
+ 523, 7, 8, 9, 10, 11, 12, 13, 0, 15,
+ 16, 17, 18, 19, 20, 21, 0, 22, 23, 24,
+ 25, 0, 27, 28, 29, 0, 0, 0, 0, 30,
+ 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
+ 0, 67, 0, 0, 0, 0, 0, 0, 0, 0,
+ 445, 1, 418, 419, 89, 2, 3, 4, 5, 6,
90, 0, 91, 8, 92, 93, 94, 12, 13, 95,
15, 96, 17, 18, 97, 98, 99, 100, 22, 101,
24, 25, 102, 103, 104, 105, 0, 0, 0, 0,
30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 197, 198, 199,
- 200, 201, 0, 51, 202, 53, 54, 55, 203, 57,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 0, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 106, 107, 108, 109, 0,
1, 0, 110, 89, 2, 3, 4, 5, 6, 90,
0, 91, 8, 92, 93, 94, 12, 13, 95, 15,
@@ -1322,150 +1327,181 @@ static const yytype_int16 yytable[] =
25, 102, 103, 104, 105, 0, 0, 0, 0, 30,
31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 0, 51, 52, 53, 54, 55, 260, 57, 58,
+ 50, 0, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 106, 107, 108, 109, 0, 1,
- 0, 110, 89, 119, 120, 4, 5, 6, 90, 0,
+ 0, 110, 89, 2, 3, 4, 5, 6, 90, 0,
91, 8, 92, 93, 94, 12, 13, 95, 15, 96,
17, 18, 97, 98, 99, 100, 22, 101, 24, 25,
102, 103, 104, 105, 0, 0, 0, 0, 30, 31,
- 32, 33, 34, 35, 0, 36, 37, 126, 39, 127,
- 41, 128, 43, 129, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 106, 107, 108, 109, 1, 0, 0,
- 110, 2, 3, 4, 5, 6, 0, 0, 7, 8,
- 9, 10, 0, 12, 13, 0, 15, 16, 17, 18,
- 19, 98, 21, 0, 22, 0, 24, 25, 0, 27,
- 28, 29, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51,
+ 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 0, 51, 52, 53, 54, 55, 56, 159, 58, 59,
+ 60, 61, 62, 106, 107, 108, 109, 0, 1, 0,
+ 110, 89, 2, 3, 4, 5, 6, 90, 0, 91,
+ 8, 92, 93, 94, 12, 13, 95, 15, 96, 17,
+ 18, 97, 98, 99, 100, 22, 101, 24, 25, 102,
+ 103, 104, 105, 0, 0, 0, 0, 30, 31, 32,
+ 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 196, 197, 198, 199, 200, 0,
+ 51, 201, 53, 54, 55, 202, 57, 58, 59, 60,
+ 61, 62, 106, 107, 108, 109, 0, 1, 0, 110,
+ 89, 119, 120, 4, 5, 6, 90, 0, 91, 8,
+ 92, 93, 94, 12, 13, 95, 15, 96, 17, 18,
+ 97, 98, 99, 100, 22, 101, 24, 25, 102, 103,
+ 104, 105, 0, 0, 0, 0, 30, 31, 32, 33,
+ 34, 35, 0, 36, 37, 126, 39, 127, 41, 128,
+ 43, 129, 45, 46, 47, 48, 49, 50, 0, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 287, 64, 0, 0, 0, 0, 288, 67, 0,
- 0, 0, 0, 0, 470, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 223, 224,
- 225, 226, 247, 248, 471, 249, 0, 0, 230, 250,
- 251, 0, 0, 0, 0, 0, 0, 0, 223, 224,
- 225, 226, 247, 248, 0, 249, 0, 0, 230, 250,
- 251, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 0, 0, 0, 0, 271, 233, 234, 235, 236, 237,
- 238, 239, 223, 224, 225, 226, 247, 248, 472, 249,
- 0, 0, 230, 250, 251, 233, 234, 235, 236, 237,
- 238, 239, 223, 224, 225, 226, 247, 248, 0, 249,
- 0, 0, 230, 250, 251, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 272, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 0, 0, 0,
- 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 0, 308, 0, 309, 223, 224, 225, 226, 247, 248,
- 0, 249, 0, 0, 230, 250, 251, 223, 224, 225,
- 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 339, 340, 341, 342, 343, 344, 0, 345, 0, 0,
- 346, 347, 348, 0, 0, 0, 0, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239, 0, 0,
- 386, 0, 309, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 0, 0, 0, 309, 0, 349, 350, 351,
- 352, 353, 354, 355, 0, 0, 356, 223, 224, 225,
- 226, 247, 248, 0, 249, 0, 0, 230, 250, 251,
- 223, 224, 225, 226, 247, 248, 0, 249, 0, 0,
- 230, 250, 251, 223, 224, 225, 226, 247, 248, 0,
- 249, 0, 0, 230, 250, 251, 0, 0, 0, 0,
- 0, 0, 0, 0, 233, 234, 235, 236, 237, 238,
- 239, 0, 368, 0, 0, 0, 0, 233, 234, 235,
- 236, 237, 238, 239, 0, 459, 0, 0, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 0, 462, 223,
- 224, 225, 226, 247, 248, 0, 249, 0, 0, 230,
- 250, 251, 223, 224, 225, 226, 247, 248, 0, 249,
- 0, 0, 230, 250, 251, 223, 224, 225, 226, 247,
- 248, 0, 249, 0, 0, 230, 250, 251, 0, 0,
- 0, 0, 0, 0, 0, 0, 233, 234, 235, 236,
- 237, 238, 239, 0, 492, 0, 0, 0, 0, 233,
- 234, 235, 236, 237, 238, 239, 0, 529, 0, 0,
- 0, 0, 233, 234, 235, 236, 237, 238, 239, 0,
- 536, 223, 224, 225, 226, 247, 248, 0, 249, 0,
- 0, 230, 250, 251, 223, 224, 225, 226, 247, 248,
- 0, 249, 0, 0, 230, 250, 251, 0, 0, 0,
- 339, 340, 341, 342, 343, 344, 0, 345, 306, 307,
- 346, 347, 348, 0, 0, 0, 0, 0, 233, 234,
- 235, 236, 237, 238, 239, 0, 0, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 349, 350, 351,
- 352, 353, 354, 355, 223, 224, 225, 226, 0, 0,
- 0, 249, 0, 0, 230, 250, 251, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 62, 106, 107, 108, 109, 1, 0, 0, 110, 2,
+ 3, 4, 5, 6, 0, 0, 7, 8, 9, 10,
+ 0, 12, 13, 0, 15, 16, 17, 18, 19, 98,
+ 21, 0, 22, 0, 24, 25, 0, 27, 28, 29,
+ 0, 0, 0, 0, 30, 31, 32, 33, 34, 35,
+ 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 286,
+ 64, 0, 0, 0, 0, 287, 67, 0, 0, 0,
+ 0, 0, 474, 222, 223, 224, 225, 246, 247, 0,
+ 248, 0, 0, 229, 249, 250, 222, 223, 224, 225,
+ 246, 247, 475, 248, 0, 0, 229, 249, 250, 0,
+ 0, 0, 0, 0, 0, 0, 222, 223, 224, 225,
+ 246, 247, 0, 248, 0, 0, 229, 249, 250, 0,
+ 232, 233, 234, 235, 236, 237, 238, 0, 0, 0,
+ 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
+ 0, 0, 0, 0, 0, 0, 476, 0, 0, 0,
+ 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
+ 222, 223, 224, 225, 246, 247, 477, 248, 0, 0,
+ 229, 249, 250, 0, 0, 0, 0, 0, 0, 547,
+ 222, 223, 224, 225, 246, 247, 0, 248, 0, 0,
+ 229, 249, 250, 531, 532, 0, 533, 534, 535, 0,
+ 536, 0, 0, 537, 538, 539, 270, 232, 233, 234,
+ 235, 236, 237, 238, 222, 223, 224, 225, 246, 247,
+ 0, 248, 0, 0, 229, 249, 250, 232, 233, 234,
+ 235, 236, 237, 238, 0, 0, 0, 0, 245, 0,
+ 540, 541, 542, 543, 544, 545, 546, 222, 223, 224,
+ 225, 246, 247, 0, 248, 0, 0, 229, 249, 250,
+ 0, 232, 233, 234, 235, 236, 237, 238, 0, 271,
+ 222, 223, 224, 225, 246, 247, 0, 248, 0, 0,
+ 229, 249, 250, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 232, 233, 234, 235, 236, 237,
+ 238, 222, 223, 224, 225, 246, 247, 0, 248, 0,
+ 0, 229, 249, 250, 0, 0, 0, 232, 233, 234,
+ 235, 236, 237, 238, 0, 0, 385, 0, 308, 338,
+ 339, 340, 341, 342, 343, 0, 344, 0, 0, 345,
+ 346, 347, 0, 0, 0, 0, 0, 0, 232, 233,
+ 234, 235, 236, 237, 238, 0, 0, 0, 0, 308,
+ 222, 223, 224, 225, 246, 247, 0, 248, 0, 0,
+ 229, 249, 250, 0, 0, 0, 348, 349, 350, 351,
+ 352, 353, 354, 0, 0, 355, 222, 223, 224, 225,
+ 246, 247, 0, 248, 0, 0, 229, 249, 250, 0,
+ 0, 0, 0, 0, 0, 0, 0, 232, 233, 234,
+ 235, 236, 237, 238, 0, 367, 222, 223, 224, 225,
+ 246, 247, 0, 248, 0, 0, 229, 249, 250, 0,
+ 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
+ 0, 464, 222, 223, 224, 225, 246, 247, 0, 248,
+ 0, 0, 229, 249, 250, 0, 0, 0, 0, 0,
+ 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
+ 0, 467, 222, 223, 224, 225, 246, 247, 0, 248,
+ 0, 0, 229, 249, 250, 0, 0, 0, 0, 232,
+ 233, 234, 235, 236, 237, 238, 0, 497, 222, 223,
+ 224, 225, 246, 247, 0, 248, 0, 0, 229, 249,
+ 250, 0, 0, 0, 0, 0, 0, 0, 0, 232,
+ 233, 234, 235, 236, 237, 238, 0, 557, 222, 223,
+ 224, 225, 246, 247, 0, 248, 0, 0, 229, 249,
+ 250, 0, 0, 0, 0, 232, 233, 234, 235, 236,
+ 237, 238, 0, 581, 0, 0, 0, 222, 223, 224,
+ 225, 246, 247, 0, 248, 305, 306, 229, 249, 250,
+ 0, 0, 0, 0, 0, 232, 233, 234, 235, 236,
+ 237, 238, 338, 339, 340, 341, 342, 343, 0, 344,
+ 0, 0, 345, 346, 347, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 232, 233, 234, 235, 236, 237,
+ 238, 531, 532, 0, 533, 534, 535, 0, 536, 0,
+ 0, 537, 538, 539, 0, 0, 0, 0, 0, 348,
+ 349, 350, 351, 352, 353, 354, 222, 223, 224, 225,
+ 0, 0, 0, 248, 0, 0, 229, 249, 250, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 540, 541,
+ 542, 543, 544, 545, 546, 531, 532, 0, 533, 0,
+ 0, 0, 536, 0, 0, 537, 538, 539, 0, 0,
+ 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 233, 234, 235, 236, 237, 238, 239
+ 0, 0, 540, 541, 542, 543, 544, 545, 546
};
static const yytype_int16 yycheck[] =
{
- 0, 29, 9, 21, 67, 243, 219, 14, 0, 31,
- 360, 490, 358, 23, 21, 16, 23, 19, 368, 26,
- 49, 150, 29, 52, 84, 27, 28, 240, 157, 97,
- 98, 34, 515, 512, 44, 385, 64, 97, 69, 168,
- 49, 44, 525, 69, 31, 76, 36, 37, 69, 69,
- 76, 180, 69, 49, 97, 76, 76, 64, 65, 76,
- 0, 190, 91, 92, 93, 94, 95, 67, 98, 23,
- 70, 10, 11, 75, 28, 97, 256, 257, 70, 103,
- 19, 319, 15, 99, 85, 94, 95, 103, 27, 28,
- 98, 255, 256, 257, 102, 308, 92, 93, 94, 95,
- 338, 34, 55, 449, 57, 99, 59, 33, 61, 42,
- 43, 44, 45, 46, 47, 150, 49, 97, 97, 52,
- 53, 54, 157, 130, 63, 97, 154, 97, 135, 399,
- 400, 401, 402, 168, 97, 405, 75, 120, 121, 122,
- 97, 97, 492, 356, 490, 180, 174, 154, 97, 97,
- 97, 158, 97, 160, 97, 190, 89, 90, 91, 92,
- 93, 94, 95, 97, 102, 28, 512, 174, 28, 98,
- 520, 103, 102, 386, 26, 97, 183, 415, 28, 529,
- 97, 26, 98, 16, 123, 124, 536, 126, 127, 128,
- 129, 97, 131, 97, 97, 134, 87, 86, 103, 100,
- 97, 10, 28, 71, 100, 97, 34, 445, 271, 97,
- 97, 85, 71, 152, 100, 86, 97, 86, 97, 86,
- 159, 97, 70, 376, 28, 383, 449, 305, 480, 467,
- 21, 314, 190, -1, -1, -1, -1, 255, 256, 257,
- -1, -1, -1, -1, -1, 184, 246, -1, 255, 256,
- 257, -1, -1, -1, 246, 119, 120, 121, 122, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, 132, 133,
- -1, 271, 272, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 223, 224, 225, 226, 227, 228,
+ 0, 9, 29, 21, 359, 0, 14, 67, 31, 242,
+ 218, 495, 367, 21, 357, 23, 49, 16, 26, 52,
+ 49, 29, 526, 49, 31, 23, 19, 84, 34, 384,
+ 97, 239, 0, 49, 27, 28, 23, 64, 44, 523,
+ 97, 28, 254, 255, 256, 69, 44, 69, 49, 553,
+ 97, 52, 76, 97, 76, 98, 64, 65, 91, 92,
+ 93, 94, 95, 92, 93, 94, 95, 67, 94, 95,
+ 70, 10, 11, 33, 97, 70, 97, 149, 94, 95,
+ 19, 15, 75, 97, 156, 318, 85, 49, 27, 28,
+ 91, 92, 93, 94, 95, 167, 69, 99, 103, 307,
+ 34, 103, 98, 76, 337, 448, 102, 179, 42, 43,
+ 44, 45, 46, 47, 69, 49, 69, 189, 52, 53,
+ 54, 76, 130, 76, 63, 99, 153, 135, 36, 37,
+ 92, 93, 94, 95, 97, 98, 75, 398, 399, 400,
+ 401, 97, 497, 404, 28, 153, 173, 355, 97, 157,
+ 97, 159, 495, 255, 256, 89, 90, 91, 92, 93,
+ 94, 95, 97, 28, 149, 173, 55, 97, 57, 97,
+ 59, 156, 61, 102, 182, 97, 97, 385, 97, 102,
+ 523, 414, 167, 103, 123, 124, 98, 126, 127, 128,
+ 129, 26, 131, 548, 179, 134, 120, 121, 122, 97,
+ 28, 97, 557, 26, 189, 98, 16, 97, 87, 97,
+ 270, 444, 151, 86, 97, 100, 103, 97, 10, 158,
+ 28, 71, 100, 97, 100, 34, 581, 97, 97, 71,
+ 85, 71, 86, 86, 97, 86, 254, 255, 256, 472,
+ 97, 97, 375, 70, 183, 245, 254, 255, 256, 28,
+ 245, 382, 448, 304, 485, 119, 120, 121, 122, 313,
+ -1, 125, 189, -1, -1, -1, -1, -1, 132, 133,
+ 270, 271, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 222, 223, 224, 225, 226, 227, 228,
229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, -1, -1, -1, -1, -1, -1, 314, 247, 248,
- 249, 250, 251, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 263, 264, -1, -1, 267, -1,
+ -1, -1, -1, -1, -1, 313, -1, 246, 247, 248,
+ 249, 250, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 262, 263, -1, -1, 266, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 282, -1, 284, -1, 286, -1, 288,
- -1, -1, -1, -1, -1, -1, -1, -1, 358, -1,
- 360, -1, -1, -1, -1, 372, -1, -1, 368, -1,
- -1, 310, 311, -1, 313, -1, -1, 33, 317, -1,
- -1, 320, -1, 383, -1, 385, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, 281, -1, 283, -1, 285, -1, 287, -1,
+ -1, -1, -1, -1, -1, -1, -1, 357, -1, 359,
+ -1, -1, -1, 371, -1, -1, -1, 367, -1, -1,
+ 309, 310, -1, 312, -1, -1, -1, 316, -1, -1,
+ 319, -1, 382, -1, 384, -1, 458, 459, 460, 461,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 281, -1, 283,
- -1, 285, -1, 287, -1, -1, -1, 366, 367, -1,
- -1, -1, 460, 89, 90, 91, 92, 93, 94, 95,
- 304, 305, 306, 307, -1, -1, -1, -1, 387, 449,
- -1, 451, 28, 460, -1, -1, -1, -1, 34, 451,
- -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
- 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
- -1, -1, -1, 28, -1, 424, 486, -1, -1, 34,
- 490, 498, 492, -1, 486, -1, -1, 42, 43, 44,
- 45, 46, 47, -1, 49, 369, -1, 52, 53, 54,
- -1, -1, 512, 89, 90, 91, 92, 93, 94, 95,
- 520, -1, -1, -1, -1, 532, -1, -1, -1, 529,
- -1, -1, -1, -1, 398, -1, 536, -1, -1, 403,
- 404, -1, 406, 407, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, 494, 28, -1, -1, -1,
- -1, -1, 34, -1, -1, -1, -1, -1, -1, 28,
- 42, 43, 44, 45, 46, 47, -1, 49, 517, -1,
- 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 469, 470, 471, 472, -1,
- 474, 475, 476, 477, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
- -1, -1, -1, -1, -1, 509, -1, -1, 5, 6,
+ 349, 350, 351, 352, 353, 354, 280, -1, 282, -1,
+ 284, -1, 286, -1, -1, -1, 365, 366, -1, -1,
+ -1, -1, -1, -1, 459, 460, 461, -1, 465, 303,
+ 304, 305, 306, -1, -1, -1, -1, 386, 448, -1,
+ 450, -1, -1, -1, -1, 450, -1, 465, -1, 531,
+ 532, 533, 534, 535, 536, 537, 538, 539, 540, 541,
+ 542, 543, 544, 545, 546, -1, -1, -1, 42, 43,
+ 44, 45, 46, 47, 423, 49, -1, -1, 52, 53,
+ 54, 491, -1, -1, -1, 495, 491, 497, -1, -1,
+ -1, 509, 574, -1, 368, -1, 531, 532, 533, 534,
+ 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
+ 545, 546, -1, 523, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 397, 98, -1, 100, 28, 402, 403,
+ -1, 405, 406, 34, -1, -1, -1, -1, 548, 574,
+ -1, 42, 43, 44, 45, 46, 47, 557, 49, 28,
+ 499, 52, 53, 54, -1, 34, -1, -1, -1, 577,
+ -1, -1, -1, 42, 43, 44, 45, 46, 47, -1,
+ 49, 581, -1, 52, 53, 54, -1, -1, -1, 528,
+ -1, -1, -1, -1, 458, 459, 460, 461, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
+ 474, 475, 476, 477, -1, 479, 480, 481, 482, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, 28, -1,
+ -1, -1, -1, -1, 34, -1, -1, -1, -1, -1,
+ -1, -1, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, 520, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 531, 532, 533,
+ 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
+ 544, 545, 546, -1, -1, -1, -1, -1, 552, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 524, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 574, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
@@ -1642,7 +1678,7 @@ static const yytype_int16 yycheck[] =
9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, -1, -1, -1, -1, -1, -1, 48,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
@@ -1653,7 +1689,7 @@ static const yytype_int16 yycheck[] =
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- -1, -1, -1, 55, 56, 57, 58, 59, 60, 61,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, -1, -1, -1, 88, -1, -1, -1,
@@ -1662,85 +1698,71 @@ static const yytype_int16 yycheck[] =
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, -1, -1, 48, -1, 50, 51, -1, -1, -1,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 7, 99, -1, 101, 11, 12, 13,
- 14, 15, -1, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, 85, -1, 7, 88, -1, -1, 11, 12, 13,
- 14, 15, -1, 97, 18, 19, 20, 21, 22, 23,
- 24, -1, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, -1,
- -1, -1, -1, -1, 88, -1, -1, -1, -1, -1,
- -1, -1, -1, 97, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
- -1, -1, -1, 46, 47, 48, 49, 50, 51, -1,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, 7, -1, 88, 10, 11, 12, 13,
- 14, 15, 16, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, -1, -1,
- -1, -1, 46, 47, 48, 49, 50, 51, -1, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, -1, 7, -1, 88, 10, 11, 12, 13, 14,
- 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, -1,
- -1, 46, 47, 48, 49, 50, 51, -1, 53, 54,
+ -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 7, -1, 88, 10, 11, 12, 13, 14, 15,
+ -1, -1, -1, 88, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, -1, -1, -1, -1, -1, -1,
+ 48, -1, 50, 51, -1, -1, -1, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
+ 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, 99, -1, 101, 11, 12, 13, 14, 15, -1,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, 38, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, 85, -1,
+ 7, 88, -1, -1, 11, 12, 13, 14, 15, -1,
+ 97, 18, 19, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
+ 37, -1, 39, 40, 41, -1, -1, -1, -1, 46,
+ 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
+ -1, 88, -1, -1, -1, -1, -1, -1, -1, -1,
+ 97, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, -1, -1, -1,
@@ -1763,70 +1785,96 @@ static const yytype_int16 yycheck[] =
48, 49, 50, 51, -1, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
-1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 7, -1, -1,
- 88, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- 20, 21, -1, 23, 24, -1, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, -1, 36, 37, -1, 39,
+ 78, 79, 80, 81, 82, 83, 84, -1, 7, -1,
+ 88, 10, 11, 12, 13, 14, 15, 16, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, -1, -1, -1, -1, 46, 47, 48,
+ 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, -1,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 7, -1, 88,
+ 10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, -1, -1, -1, -1, 46, 47, 48, 49,
50, 51, -1, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, -1, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 28, 82, -1, -1, -1, -1, 34, 88, -1,
- -1, -1, -1, -1, 28, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, 42, 43,
- 44, 45, 46, 47, 28, 49, -1, -1, 52, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, 42, 43,
- 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
- 54, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, -1, -1, 34, 89, 90, 91, 92, 93,
- 94, 95, 42, 43, 44, 45, 46, 47, 28, 49,
- -1, -1, 52, 53, 54, 89, 90, 91, 92, 93,
- 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, 98, -1, 100, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, 42, 43, 44,
- 45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ 80, 81, 82, 83, 84, 7, -1, -1, 88, 11,
+ 12, 13, 14, 15, -1, -1, 18, 19, 20, 21,
+ -1, 23, 24, -1, 26, 27, 28, 29, 30, 31,
+ 32, -1, 34, -1, 36, 37, -1, 39, 40, 41,
+ -1, -1, -1, -1, 46, 47, 48, 49, 50, 51,
+ -1, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 28,
+ 82, -1, -1, -1, -1, 34, 88, -1, -1, -1,
+ -1, -1, 28, 42, 43, 44, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, 42, 43, 44, 45,
+ 46, 47, 28, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, -1, -1, 28, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ 42, 43, 44, 45, 46, 47, 28, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, 28,
42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
- 98, -1, 100, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, -1, -1, -1, 100, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, 98, 42, 43, 44,
+ 52, 53, 54, 42, 43, -1, 45, 46, 47, -1,
+ 49, -1, -1, 52, 53, 54, 34, 89, 90, 91,
+ 92, 93, 94, 95, 42, 43, 44, 45, 46, 47,
+ -1, 49, -1, -1, 52, 53, 54, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, 33, -1,
+ 89, 90, 91, 92, 93, 94, 95, 42, 43, 44,
45, 46, 47, -1, 49, -1, -1, 52, 53, 54,
+ -1, 89, 90, 91, 92, 93, 94, 95, -1, 97,
42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
- 52, 53, 54, 42, 43, 44, 45, 46, 47, -1,
- 49, -1, -1, 52, 53, 54, -1, -1, -1, -1,
+ 52, 53, 54, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
- 95, -1, 97, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, 97, -1, -1, -1, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, 97, 42,
+ 95, 42, 43, 44, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, 98, -1, 100, 42,
43, 44, 45, 46, 47, -1, 49, -1, -1, 52,
- 53, 54, 42, 43, 44, 45, 46, 47, -1, 49,
- -1, -1, 52, 53, 54, 42, 43, 44, 45, 46,
- 47, -1, 49, -1, -1, 52, 53, 54, -1, -1,
- -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
- 93, 94, 95, -1, 97, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
- -1, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, 42, 43, 44, 45, 46, 47, -1, 49, -1,
- -1, 52, 53, 54, 42, 43, 44, 45, 46, 47,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- 42, 43, 44, 45, 46, 47, -1, 49, 79, 80,
- 52, 53, 54, -1, -1, -1, -1, -1, 89, 90,
- 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, -1, -1,
+ 53, 54, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, -1, -1, -1, -1, 100,
+ 42, 43, 44, 45, 46, 47, -1, 49, -1, -1,
+ 52, 53, 54, -1, -1, -1, 89, 90, 91, 92,
+ 93, 94, 95, -1, -1, 98, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
-1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, 42, 43, 44, 45, -1, -1,
- -1, 49, -1, -1, 52, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 92, 93, 94, 95, -1, 97, 42, 43, 44, 45,
+ 46, 47, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, 97, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, 97, 42, 43,
+ 44, 45, 46, 47, -1, 49, -1, -1, 52, 53,
+ 54, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, -1, 97, -1, -1, -1, 42, 43, 44,
+ 45, 46, 47, -1, 49, 79, 80, 52, 53, 54,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, 42, 43, 44, 45, 46, 47, -1, 49,
+ -1, -1, 52, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95, 42, 43, -1, 45, 46, 47, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, 42, 43, 44, 45,
+ -1, -1, -1, 49, -1, -1, 52, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
+ 91, 92, 93, 94, 95, 42, 43, -1, 45, -1,
+ -1, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95
+ -1, -1, 89, 90, 91, 92, 93, 94, 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1847,47 +1895,51 @@ static const yytype_uint8 yystos[] =
88, 116, 117, 118, 119, 5, 6, 8, 9, 11,
12, 13, 14, 19, 26, 48, 55, 57, 59, 61,
75, 78, 92, 93, 99, 101, 117, 124, 126, 142,
- 143, 146, 147, 149, 152, 153, 154, 157, 160, 161,
- 162, 164, 99, 162, 117, 31, 124, 162, 36, 37,
- 75, 117, 143, 145, 152, 117, 117, 124, 162, 124,
- 126, 118, 162, 118, 117, 97, 122, 0, 107, 124,
- 162, 97, 97, 98, 99, 148, 161, 148, 148, 148,
- 162, 162, 161, 162, 162, 162, 162, 63, 64, 65,
- 66, 67, 70, 74, 117, 162, 161, 161, 100, 162,
- 8, 9, 103, 117, 158, 159, 162, 165, 166, 99,
- 97, 97, 28, 42, 43, 44, 45, 46, 47, 49,
- 52, 53, 54, 89, 90, 91, 92, 93, 94, 95,
- 98, 125, 142, 163, 164, 162, 33, 46, 47, 49,
- 53, 54, 118, 97, 97, 24, 50, 51, 117, 162,
- 74, 34, 44, 128, 33, 97, 97, 36, 97, 97,
- 97, 34, 97, 97, 118, 97, 117, 100, 162, 28,
- 163, 28, 34, 28, 34, 28, 34, 28, 34, 69,
- 76, 69, 76, 69, 76, 69, 76, 69, 76, 55,
- 57, 59, 61, 155, 28, 28, 79, 80, 98, 100,
- 103, 103, 102, 103, 98, 102, 102, 98, 100, 166,
- 26, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 166, 42,
- 43, 44, 45, 46, 47, 49, 52, 53, 54, 89,
- 90, 91, 92, 93, 94, 95, 98, 125, 97, 120,
- 97, 143, 144, 146, 144, 144, 23, 44, 97, 28,
- 162, 162, 84, 97, 110, 111, 112, 113, 162, 122,
- 97, 120, 136, 137, 138, 97, 98, 26, 161, 162,
- 161, 162, 161, 162, 161, 162, 23, 28, 156, 56,
- 58, 60, 62, 71, 72, 73, 77, 78, 150, 151,
- 161, 150, 161, 161, 100, 166, 162, 162, 162, 8,
- 9, 117, 159, 162, 98, 125, 162, 125, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 166, 97, 121, 139, 140,
- 141, 16, 136, 97, 97, 97, 162, 162, 136, 97,
- 117, 113, 97, 87, 138, 136, 100, 166, 162, 28,
- 28, 28, 28, 161, 156, 156, 156, 156, 161, 161,
- 156, 161, 161, 125, 100, 125, 16, 85, 132, 141,
- 97, 120, 97, 15, 34, 86, 118, 97, 10, 125,
- 161, 161, 161, 161, 161, 161, 161, 161, 28, 71,
- 151, 100, 97, 120, 97, 139, 136, 34, 162, 97,
- 97, 115, 117, 100, 71, 139, 132, 86, 162, 97,
- 136, 97, 98, 161, 132, 97, 97, 136, 117, 136,
- 86, 86, 97, 97
+ 143, 146, 147, 149, 152, 153, 158, 161, 162, 163,
+ 166, 99, 163, 117, 31, 124, 163, 36, 37, 75,
+ 117, 143, 145, 156, 117, 117, 124, 163, 124, 126,
+ 118, 163, 118, 117, 97, 122, 0, 107, 124, 163,
+ 97, 97, 98, 99, 148, 162, 148, 148, 148, 163,
+ 163, 162, 163, 163, 163, 163, 63, 64, 65, 66,
+ 67, 70, 74, 117, 163, 162, 162, 100, 163, 8,
+ 9, 103, 117, 159, 160, 163, 167, 168, 99, 97,
+ 97, 28, 42, 43, 44, 45, 46, 47, 49, 52,
+ 53, 54, 89, 90, 91, 92, 93, 94, 95, 98,
+ 125, 142, 164, 166, 163, 33, 46, 47, 49, 53,
+ 54, 118, 97, 97, 24, 50, 51, 117, 163, 117,
+ 34, 44, 128, 33, 97, 97, 36, 97, 97, 97,
+ 34, 97, 97, 118, 97, 117, 100, 163, 28, 164,
+ 28, 34, 28, 34, 28, 34, 28, 34, 69, 76,
+ 69, 76, 69, 76, 69, 76, 69, 76, 55, 57,
+ 59, 61, 154, 28, 28, 79, 80, 98, 100, 103,
+ 103, 102, 103, 98, 102, 102, 98, 100, 168, 26,
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
+ 163, 163, 163, 163, 163, 163, 163, 168, 42, 43,
+ 44, 45, 46, 47, 49, 52, 53, 54, 89, 90,
+ 91, 92, 93, 94, 95, 98, 125, 97, 120, 97,
+ 143, 144, 146, 144, 144, 23, 44, 97, 28, 163,
+ 163, 84, 97, 110, 111, 112, 113, 163, 122, 97,
+ 120, 136, 137, 138, 97, 98, 26, 162, 163, 162,
+ 163, 162, 163, 162, 163, 23, 28, 155, 56, 58,
+ 60, 62, 71, 72, 73, 77, 78, 150, 151, 162,
+ 150, 162, 162, 100, 168, 163, 163, 163, 8, 9,
+ 117, 160, 163, 98, 125, 163, 125, 163, 163, 163,
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
+ 163, 163, 163, 163, 168, 97, 121, 139, 140, 141,
+ 16, 136, 97, 97, 97, 163, 163, 136, 71, 72,
+ 77, 78, 157, 162, 97, 117, 113, 97, 87, 138,
+ 136, 100, 168, 163, 28, 28, 28, 28, 162, 155,
+ 155, 155, 155, 162, 162, 155, 162, 162, 125, 100,
+ 125, 16, 85, 132, 141, 97, 120, 97, 15, 34,
+ 86, 162, 165, 166, 165, 165, 165, 118, 97, 10,
+ 125, 162, 162, 162, 162, 162, 162, 162, 162, 28,
+ 71, 151, 100, 97, 120, 97, 139, 136, 34, 163,
+ 97, 42, 43, 45, 46, 47, 49, 52, 53, 54,
+ 89, 90, 91, 92, 93, 94, 95, 28, 97, 115,
+ 117, 100, 71, 139, 132, 86, 163, 97, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 71, 136, 97, 98, 162, 132,
+ 97, 97, 136, 165, 117, 136, 86, 86, 97, 97
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1914,15 +1966,18 @@ static const yytype_uint8 yyr1[] =
142, 142, 142, 142, 142, 142, 142, 143, 144, 144,
145, 145, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 147, 147, 148, 148, 148, 148, 149, 149,
- 149, 149, 150, 150, 150, 150, 150, 151, 152, 152,
- 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 154, 154, 154, 154, 154, 155, 155, 155, 155,
- 156, 156, 157, 157, 157, 158, 158, 159, 159, 159,
- 160, 160, 161, 161, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 163, 163, 163, 163, 163, 163, 163,
+ 149, 149, 149, 149, 150, 150, 150, 150, 150, 151,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 153, 153, 153, 153, 153, 154, 154, 154, 154, 155,
+ 155, 156, 156, 157, 157, 157, 157, 157, 158, 158,
+ 158, 159, 159, 160, 160, 160, 161, 161, 162, 162,
163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
- 163, 163, 164, 164, 165, 165, 166, 166
+ 163, 163, 163, 163, 163, 163, 163, 163, 163, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 166, 166, 167, 167,
+ 168, 168
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1948,16 +2003,19 @@ static const yytype_int8 yyr2[] =
1, 2, 1, 1, 1, 1, 1, 1, 2, 3,
5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 4, 6, 4, 6, 4, 6,
- 4, 6, 2, 2, 1, 2, 4, 6, 1, 1,
- 1, 5, 1, 1, 5, 2, 2, 2, 2, 4,
- 4, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 6, 6, 6, 6, 6, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 1, 3, 3, 3, 3,
- 2, 2, 1, 1, 1, 1, 3, 3, 3, 3,
+ 4, 6, 2, 2, 1, 2, 4, 6, 2, 4,
+ 4, 1, 1, 5, 1, 1, 5, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 1, 1, 3, 3, 3, 3, 3,
+ 6, 6, 6, 6, 6, 1, 1, 1, 1, 1,
+ 1, 2, 4, 1, 2, 5, 2, 2, 3, 3,
+ 3, 1, 3, 3, 3, 3, 2, 2, 1, 1,
+ 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 1, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 4, 0, 1, 1, 3
+ 3, 3, 3, 3, 3, 3, 4, 4, 0, 1,
+ 1, 3
};
@@ -2229,39 +2287,39 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_tVARID: /* tVARID */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2235 "engines/director/lingo/lingo-gr.cpp"
+#line 2293 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSTRING: /* tSTRING */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2241 "engines/director/lingo/lingo-gr.cpp"
+#line 2299 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tSYMBOL: /* tSYMBOL */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2247 "engines/director/lingo/lingo-gr.cpp"
+#line 2305 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2253 "engines/director/lingo/lingo-gr.cpp"
+#line 2311 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_CMDID: /* CMDID */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2259 "engines/director/lingo/lingo-gr.cpp"
+#line 2317 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 189 "engines/director/lingo/lingo-gr.y"
+#line 190 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 2265 "engines/director/lingo/lingo-gr.cpp"
+#line 2323 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2527,1620 +2585,1752 @@ yyreduce:
switch (yyn)
{
case 2: /* script: scriptpartlist */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 196 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 3: /* scriptpartlist: scriptpart */
-#line 197 "engines/director/lingo/lingo-gr.y"
+#line 198 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2544 "engines/director/lingo/lingo-gr.cpp"
+#line 2602 "engines/director/lingo/lingo-gr.cpp"
break;
case 4: /* scriptpartlist: scriptpartlist scriptpart */
-#line 203 "engines/director/lingo/lingo-gr.y"
+#line 204 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2554 "engines/director/lingo/lingo-gr.cpp"
+#line 2612 "engines/director/lingo/lingo-gr.cpp"
break;
case 5: /* scriptpart: '\n' */
-#line 210 "engines/director/lingo/lingo-gr.y"
+#line 211 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2560 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* macro: tMACRO ID idlist '\n' stmtlist */
-#line 243 "engines/director/lingo/lingo-gr.y"
+#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2566 "engines/director/lingo/lingo-gr.cpp"
+#line 2624 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* factory: tFACTORY ID '\n' methodlist */
-#line 247 "engines/director/lingo/lingo-gr.y"
+#line 248 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2572 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* method: tMETHOD ID idlist '\n' stmtlist */
-#line 249 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2578 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* methodlist: %empty */
-#line 251 "engines/director/lingo/lingo-gr.y"
+#line 252 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 2584 "engines/director/lingo/lingo-gr.cpp"
+#line 2642 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* nonemptymethodlist: methodlistline */
-#line 255 "engines/director/lingo/lingo-gr.y"
+#line 256 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2653 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* nonemptymethodlist: nonemptymethodlist methodlistline */
-#line 261 "engines/director/lingo/lingo-gr.y"
+#line 262 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* methodlistline: '\n' */
-#line 268 "engines/director/lingo/lingo-gr.y"
+#line 269 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 2611 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n' */
-#line 274 "engines/director/lingo/lingo-gr.y"
+#line 275 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
delete (yyvsp[-2].s); }
-#line 2620 "engines/director/lingo/lingo-gr.cpp"
+#line 2678 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* handler: tON ID idlist '\n' stmtlist */
-#line 278 "engines/director/lingo/lingo-gr.y"
+#line 279 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2685 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* endargdef: ID */
-#line 283 "engines/director/lingo/lingo-gr.y"
+#line 284 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2633 "engines/director/lingo/lingo-gr.cpp"
+#line 2691 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* endargdef: endargdef ',' ID */
-#line 284 "engines/director/lingo/lingo-gr.y"
+#line 285 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 2639 "engines/director/lingo/lingo-gr.cpp"
+#line 2697 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* CMDID: tABBREVIATED */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbreviated"); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2703 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* CMDID: tABBREV */
-#line 293 "engines/director/lingo/lingo-gr.y"
+#line 294 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbrev"); }
-#line 2651 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* CMDID: tABBR */
-#line 294 "engines/director/lingo/lingo-gr.y"
+#line 295 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("abbr"); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* CMDID: tAFTER */
-#line 295 "engines/director/lingo/lingo-gr.y"
+#line 296 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("after"); }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
break;
case 29: /* CMDID: tAND */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 297 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("and"); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2727 "engines/director/lingo/lingo-gr.cpp"
break;
case 30: /* CMDID: tBEFORE */
-#line 297 "engines/director/lingo/lingo-gr.y"
+#line 298 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("before"); }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2733 "engines/director/lingo/lingo-gr.cpp"
break;
case 31: /* CMDID: tCAST */
-#line 298 "engines/director/lingo/lingo-gr.y"
+#line 299 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2739 "engines/director/lingo/lingo-gr.cpp"
break;
case 32: /* CMDID: tCHAR */
-#line 299 "engines/director/lingo/lingo-gr.y"
+#line 300 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("char"); }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* CMDID: tCHARS */
-#line 300 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("chars"); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* CMDID: tCONTAINS */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("contains"); }
-#line 2699 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* CMDID: tDATE */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 303 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("date"); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* CMDID: tDOWN */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("down"); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* CMDID: tFIELD */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 305 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* CMDID: tFRAME */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("frame"); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* CMDID: tIN */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("in"); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* CMDID: tINTERSECTS */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 308 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("intersects"); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* CMDID: tINTO */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("into"); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* CMDID: tITEM */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("item"); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* CMDID: tITEMS */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("items"); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* CMDID: tLAST */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("last"); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* CMDID: tLINE */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("line"); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* CMDID: tLINES */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("lines"); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* CMDID: tLONG */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("long"); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* CMDID: tMENU */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menu"); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* CMDID: tMENUITEM */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItem"); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* CMDID: tMENUITEMS */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("menuItems"); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* CMDID: tMOD */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("mod"); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* CMDID: tMOVIE */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("movie"); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* CMDID: tNEXT */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("next"); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* CMDID: tNOT */
-#line 321 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("not"); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* CMDID: tNUMBER */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("number"); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* CMDID: tOF */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 324 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("of"); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* CMDID: tOR */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("or"); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* CMDID: tPREVIOUS */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("previous"); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* CMDID: tREPEAT */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("repeat"); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* CMDID: tSCRIPT */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* CMDID: tASSERTERROR */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* CMDID: tSHORT */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("short"); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* CMDID: tSOUND */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sound"); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* CMDID: tSPRITE */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("sprite"); }
-#line 2879 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
break;
case 65: /* CMDID: tSTARTS */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("starts"); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2943 "engines/director/lingo/lingo-gr.cpp"
break;
case 66: /* CMDID: tTHE */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("the"); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2949 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* CMDID: tTIME */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("time"); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2955 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* CMDID: tTO */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("to"); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2961 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* CMDID: tWHILE */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("while"); }
-#line 2909 "engines/director/lingo/lingo-gr.cpp"
+#line 2967 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* CMDID: tWINDOW */
-#line 337 "engines/director/lingo/lingo-gr.y"
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2915 "engines/director/lingo/lingo-gr.cpp"
+#line 2973 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* CMDID: tWITH */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("with"); }
-#line 2921 "engines/director/lingo/lingo-gr.cpp"
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* CMDID: tWITHIN */
-#line 339 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("within"); }
-#line 2927 "engines/director/lingo/lingo-gr.cpp"
+#line 2985 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* CMDID: tWORD */
-#line 340 "engines/director/lingo/lingo-gr.y"
+#line 341 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("word"); }
-#line 2933 "engines/director/lingo/lingo-gr.cpp"
+#line 2991 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* CMDID: tWORDS */
-#line 341 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("words"); }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* ID: tELSE */
-#line 345 "engines/director/lingo/lingo-gr.y"
+#line 346 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("else"); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* ID: tENDCLAUSE */
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("end"); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* ID: tEXIT */
-#line 347 "engines/director/lingo/lingo-gr.y"
+#line 348 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("exit"); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* ID: tFACTORY */
-#line 348 "engines/director/lingo/lingo-gr.y"
+#line 349 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("factory"); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* ID: tGLOBAL */
-#line 349 "engines/director/lingo/lingo-gr.y"
+#line 350 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("global"); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* ID: tGO */
-#line 350 "engines/director/lingo/lingo-gr.y"
+#line 351 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("go"); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* ID: tIF */
-#line 351 "engines/director/lingo/lingo-gr.y"
+#line 352 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("if"); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* ID: tINSTANCE */
-#line 352 "engines/director/lingo/lingo-gr.y"
+#line 353 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("instance"); }
-#line 2987 "engines/director/lingo/lingo-gr.cpp"
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* ID: tMACRO */
-#line 353 "engines/director/lingo/lingo-gr.y"
+#line 354 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("macro"); }
-#line 2993 "engines/director/lingo/lingo-gr.cpp"
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* ID: tMETHOD */
-#line 354 "engines/director/lingo/lingo-gr.y"
+#line 355 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("method"); }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* ID: tON */
-#line 355 "engines/director/lingo/lingo-gr.y"
+#line 356 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("on"); }
-#line 3005 "engines/director/lingo/lingo-gr.cpp"
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* ID: tOPEN */
-#line 356 "engines/director/lingo/lingo-gr.y"
+#line 357 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("open"); }
-#line 3011 "engines/director/lingo/lingo-gr.cpp"
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* ID: tPLAY */
-#line 357 "engines/director/lingo/lingo-gr.y"
+#line 358 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("play"); }
-#line 3017 "engines/director/lingo/lingo-gr.cpp"
+#line 3075 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* ID: tPROPERTY */
-#line 358 "engines/director/lingo/lingo-gr.y"
+#line 359 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("property"); }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* ID: tPUT */
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 360 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("put"); }
-#line 3029 "engines/director/lingo/lingo-gr.cpp"
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* ID: tSET */
-#line 360 "engines/director/lingo/lingo-gr.y"
+#line 361 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("set"); }
-#line 3035 "engines/director/lingo/lingo-gr.cpp"
+#line 3093 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* ID: tTELL */
-#line 361 "engines/director/lingo/lingo-gr.y"
+#line 362 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("tell"); }
-#line 3041 "engines/director/lingo/lingo-gr.cpp"
+#line 3099 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* ID: tTHEN */
-#line 362 "engines/director/lingo/lingo-gr.y"
+#line 363 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("then"); }
-#line 3047 "engines/director/lingo/lingo-gr.cpp"
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* ID: tWHEN */
-#line 363 "engines/director/lingo/lingo-gr.y"
+#line 364 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("when"); }
-#line 3053 "engines/director/lingo/lingo-gr.cpp"
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* idlist: %empty */
-#line 366 "engines/director/lingo/lingo-gr.y"
+#line 367 "engines/director/lingo/lingo-gr.y"
{ (yyval.idlist) = new IDList; }
-#line 3059 "engines/director/lingo/lingo-gr.cpp"
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* nonemptyidlist: ID */
-#line 371 "engines/director/lingo/lingo-gr.y"
+#line 372 "engines/director/lingo/lingo-gr.y"
{
Common::Array<Common::String *> *list = new IDList;
list->push_back((yyvsp[0].s));
(yyval.idlist) = list; }
-#line 3068 "engines/director/lingo/lingo-gr.cpp"
+#line 3126 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* nonemptyidlist: nonemptyidlist ',' ID */
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 376 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3076 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* stmt: tENDIF '\n' */
-#line 386 "engines/director/lingo/lingo-gr.y"
+#line 387 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* proc: CMDID cmdargs '\n' */
-#line 402 "engines/director/lingo/lingo-gr.y"
+#line 403 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist)); }
-#line 3088 "engines/director/lingo/lingo-gr.cpp"
+#line 3146 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* proc: tPUT cmdargs '\n' */
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 404 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist)); }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* proc: tGO cmdargs '\n' */
-#line 404 "engines/director/lingo/lingo-gr.y"
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3100 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* proc: tGO frameargs '\n' */
-#line 405 "engines/director/lingo/lingo-gr.y"
+#line 406 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist)); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3164 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* proc: tPLAY cmdargs '\n' */
-#line 406 "engines/director/lingo/lingo-gr.y"
+#line 407 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3112 "engines/director/lingo/lingo-gr.cpp"
+#line 3170 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* proc: tPLAY frameargs '\n' */
-#line 407 "engines/director/lingo/lingo-gr.y"
+#line 408 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist)); }
-#line 3118 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* proc: tOPEN cmdargs '\n' */
-#line 408 "engines/director/lingo/lingo-gr.y"
+#line 409 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist)); }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 3182 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* proc: tOPEN expr tWITH expr '\n' */
-#line 409 "engines/director/lingo/lingo-gr.y"
+#line 410 "engines/director/lingo/lingo-gr.y"
{
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back((yyvsp[-1].node));
(yyval.node) = new CmdNode(new Common::String("open"), args); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3192 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* proc: tNEXT tREPEAT '\n' */
-#line 414 "engines/director/lingo/lingo-gr.y"
+#line 415 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new NextRepeatNode(); }
-#line 3140 "engines/director/lingo/lingo-gr.cpp"
+#line 3198 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* proc: tEXIT tREPEAT '\n' */
-#line 415 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitRepeatNode(); }
-#line 3146 "engines/director/lingo/lingo-gr.cpp"
+#line 3204 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tEXIT '\n' */
-#line 416 "engines/director/lingo/lingo-gr.y"
+#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ExitNode(); }
-#line 3152 "engines/director/lingo/lingo-gr.cpp"
+#line 3210 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* proc: tASSERTERROR stmtoneliner */
-#line 417 "engines/director/lingo/lingo-gr.y"
+#line 418 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3216 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* cmdargs: %empty */
-#line 420 "engines/director/lingo/lingo-gr.y"
+#line 421 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd`
(yyval.nodelist) = new NodeList; }
-#line 3166 "engines/director/lingo/lingo-gr.cpp"
+#line 3224 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* cmdargs: expr trailingcomma */
-#line 423 "engines/director/lingo/lingo-gr.y"
+#line 424 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg` and `cmd(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3234 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* cmdargs: expr ',' nonemptyexprlist trailingcomma */
-#line 428 "engines/director/lingo/lingo-gr.y"
+#line 429 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd args, ...)
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3185 "engines/director/lingo/lingo-gr.cpp"
+#line 3243 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* cmdargs: expr expr_nounarymath trailingcomma */
-#line 432 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg`
NodeList *args = new NodeList;
args->push_back((yyvsp[-2].node));
args->push_back((yyvsp[-1].node));
(yyval.nodelist) = args; }
-#line 3196 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma */
-#line 438 "engines/director/lingo/lingo-gr.y"
+#line 439 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd arg arg, ...`
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3264 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* cmdargs: '(' ')' */
-#line 443 "engines/director/lingo/lingo-gr.y"
+#line 444 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd()`
(yyval.nodelist) = new NodeList; }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
+#line 3272 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* cmdargs: '(' expr ',' ')' */
-#line 446 "engines/director/lingo/lingo-gr.y"
+#line 447 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args,)`
NodeList *args = new NodeList;
args->push_back((yyvsp[-2].node));
(yyval.nodelist) = args; }
-#line 3224 "engines/director/lingo/lingo-gr.cpp"
+#line 3282 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')' */
-#line 451 "engines/director/lingo/lingo-gr.y"
+#line 452 "engines/director/lingo/lingo-gr.y"
{
// This matches `cmd(args, ...)`
(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3233 "engines/director/lingo/lingo-gr.cpp"
+#line 3291 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* frameargs: tFRAME expr */
-#line 463 "engines/director/lingo/lingo-gr.y"
+#line 464 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3243 "engines/director/lingo/lingo-gr.cpp"
+#line 3301 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* frameargs: tMOVIE expr */
-#line 468 "engines/director/lingo/lingo-gr.y"
+#line 469 "engines/director/lingo/lingo-gr.y"
{
// This matches `play movie arg`
NodeList *args = new NodeList;
args->push_back(new IntNode(1));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3254 "engines/director/lingo/lingo-gr.cpp"
+#line 3312 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* frameargs: tFRAME expr tOF tMOVIE expr */
-#line 474 "engines/director/lingo/lingo-gr.y"
+#line 475 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg of movie arg`
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-3].node)));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3265 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* frameargs: expr tOF tMOVIE expr */
-#line 480 "engines/director/lingo/lingo-gr.y"
+#line 481 "engines/director/lingo/lingo-gr.y"
{
// This matches `play arg of movie arg` (weird but valid)
NodeList *args = new NodeList;
args->push_back((yyvsp[-3].node));
args->push_back(new MovieNode((yyvsp[0].node)));
(yyval.nodelist) = args; }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3334 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* frameargs: tFRAME expr expr_nounarymath */
-#line 486 "engines/director/lingo/lingo-gr.y"
+#line 487 "engines/director/lingo/lingo-gr.y"
{
// This matches `play frame arg arg` (also weird but valid)
NodeList *args = new NodeList;
args->push_back(new FrameNode((yyvsp[-1].node)));
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3287 "engines/director/lingo/lingo-gr.cpp"
+#line 3345 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* asgn: tPUT expr tINTO varorchunk '\n' */
-#line 494 "engines/director/lingo/lingo-gr.y"
+#line 495 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3293 "engines/director/lingo/lingo-gr.cpp"
+#line 3351 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* asgn: tPUT expr tAFTER varorchunk '\n' */
-#line 495 "engines/director/lingo/lingo-gr.y"
+#line 496 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3299 "engines/director/lingo/lingo-gr.cpp"
+#line 3357 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* asgn: tPUT expr tBEFORE varorchunk '\n' */
-#line 496 "engines/director/lingo/lingo-gr.y"
+#line 497 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3305 "engines/director/lingo/lingo-gr.cpp"
+#line 3363 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* asgn: tSET varorthe to expr '\n' */
-#line 497 "engines/director/lingo/lingo-gr.y"
+#line 498 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3311 "engines/director/lingo/lingo-gr.cpp"
+#line 3369 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* definevars: tGLOBAL idlist '\n' */
-#line 502 "engines/director/lingo/lingo-gr.y"
+#line 503 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3317 "engines/director/lingo/lingo-gr.cpp"
+#line 3375 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* definevars: tPROPERTY idlist '\n' */
-#line 503 "engines/director/lingo/lingo-gr.y"
+#line 504 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3323 "engines/director/lingo/lingo-gr.cpp"
+#line 3381 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* definevars: tINSTANCE idlist '\n' */
-#line 504 "engines/director/lingo/lingo-gr.y"
+#line 505 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3387 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* ifstmt: tIF expr tTHEN stmt */
-#line 507 "engines/director/lingo/lingo-gr.y"
+#line 508 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3338 "engines/director/lingo/lingo-gr.cpp"
+#line 3396 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif */
-#line 511 "engines/director/lingo/lingo-gr.y"
+#line 512 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
-#line 3345 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt */
-#line 515 "engines/director/lingo/lingo-gr.y"
+#line 516 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-2].node));
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3356 "engines/director/lingo/lingo-gr.cpp"
+#line 3414 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif */
-#line 521 "engines/director/lingo/lingo-gr.y"
+#line 522 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist1 = new NodeList;
stmtlist1->push_back((yyvsp[-4].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3423 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt */
-#line 525 "engines/director/lingo/lingo-gr.y"
+#line 526 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist2 = new NodeList;
stmtlist2->push_back((yyvsp[0].node));
(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3374 "engines/director/lingo/lingo-gr.cpp"
+#line 3432 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif */
-#line 529 "engines/director/lingo/lingo-gr.y"
+#line 530 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
-#line 3381 "engines/director/lingo/lingo-gr.cpp"
+#line 3439 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* endif: %empty */
-#line 533 "engines/director/lingo/lingo-gr.y"
+#line 534 "engines/director/lingo/lingo-gr.y"
{ warning("LingoCompiler::parse: no end if"); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3445 "engines/director/lingo/lingo-gr.cpp"
break;
case 155: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n' */
-#line 536 "engines/director/lingo/lingo-gr.y"
+#line 537 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3394 "engines/director/lingo/lingo-gr.cpp"
+#line 3452 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 538 "engines/director/lingo/lingo-gr.y"
+#line 539 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3401 "engines/director/lingo/lingo-gr.cpp"
+#line 3459 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n' */
-#line 540 "engines/director/lingo/lingo-gr.y"
+#line 541 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3408 "engines/director/lingo/lingo-gr.cpp"
+#line 3466 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n' */
-#line 542 "engines/director/lingo/lingo-gr.y"
+#line 543 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3473 "engines/director/lingo/lingo-gr.cpp"
break;
case 159: /* tell: tTELL expr tTO stmtoneliner */
-#line 546 "engines/director/lingo/lingo-gr.y"
+#line 547 "engines/director/lingo/lingo-gr.y"
{
NodeList *stmtlist = new NodeList;
stmtlist->push_back((yyvsp[0].node));
(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+#line 3482 "engines/director/lingo/lingo-gr.cpp"
break;
case 160: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n' */
-#line 550 "engines/director/lingo/lingo-gr.y"
+#line 551 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3489 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* when: tWHEN ID tTHEN expr */
-#line 554 "engines/director/lingo/lingo-gr.y"
+#line 555 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WhenNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3437 "engines/director/lingo/lingo-gr.cpp"
+#line 3495 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* stmtlist: %empty */
-#line 556 "engines/director/lingo/lingo-gr.y"
+#line 557 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3443 "engines/director/lingo/lingo-gr.cpp"
+#line 3501 "engines/director/lingo/lingo-gr.cpp"
break;
case 164: /* nonemptystmtlist: stmtlistline */
-#line 561 "engines/director/lingo/lingo-gr.y"
+#line 562 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3454 "engines/director/lingo/lingo-gr.cpp"
+#line 3512 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* nonemptystmtlist: nonemptystmtlist stmtlistline */
-#line 567 "engines/director/lingo/lingo-gr.y"
+#line 568 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3464 "engines/director/lingo/lingo-gr.cpp"
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
break;
case 166: /* stmtlistline: '\n' */
-#line 574 "engines/director/lingo/lingo-gr.y"
+#line 575 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3470 "engines/director/lingo/lingo-gr.cpp"
+#line 3528 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* stmtlist_insideif: %empty */
-#line 578 "engines/director/lingo/lingo-gr.y"
+#line 579 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 3476 "engines/director/lingo/lingo-gr.cpp"
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
break;
case 170: /* nonemptystmtlist_insideif: stmtlistline_insideif */
-#line 583 "engines/director/lingo/lingo-gr.y"
+#line 584 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
if ((yyvsp[0].node)) {
list->push_back((yyvsp[0].node));
}
(yyval.nodelist) = list; }
-#line 3487 "engines/director/lingo/lingo-gr.cpp"
+#line 3545 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif */
-#line 589 "engines/director/lingo/lingo-gr.y"
+#line 590 "engines/director/lingo/lingo-gr.y"
{
if ((yyvsp[0].node)) {
(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
}
(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3497 "engines/director/lingo/lingo-gr.cpp"
+#line 3555 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* stmtlistline_insideif: '\n' */
-#line 596 "engines/director/lingo/lingo-gr.y"
+#line 597 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = nullptr; }
-#line 3503 "engines/director/lingo/lingo-gr.cpp"
+#line 3561 "engines/director/lingo/lingo-gr.cpp"
break;
case 174: /* simpleexpr_nounarymath: tINT */
-#line 603 "engines/director/lingo/lingo-gr.y"
+#line 604 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3509 "engines/director/lingo/lingo-gr.cpp"
+#line 3567 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* simpleexpr_nounarymath: tFLOAT */
-#line 604 "engines/director/lingo/lingo-gr.y"
+#line 605 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3515 "engines/director/lingo/lingo-gr.cpp"
+#line 3573 "engines/director/lingo/lingo-gr.cpp"
break;
case 176: /* simpleexpr_nounarymath: tSYMBOL */
-#line 605 "engines/director/lingo/lingo-gr.y"
+#line 606 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3521 "engines/director/lingo/lingo-gr.cpp"
+#line 3579 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* simpleexpr_nounarymath: tSTRING */
-#line 606 "engines/director/lingo/lingo-gr.y"
+#line 607 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3527 "engines/director/lingo/lingo-gr.cpp"
+#line 3585 "engines/director/lingo/lingo-gr.cpp"
break;
case 178: /* simpleexpr_nounarymath: tNOT simpleexpr */
-#line 607 "engines/director/lingo/lingo-gr.y"
+#line 608 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3533 "engines/director/lingo/lingo-gr.cpp"
+#line 3591 "engines/director/lingo/lingo-gr.cpp"
break;
case 179: /* simpleexpr_nounarymath: ID '(' ')' */
-#line 608 "engines/director/lingo/lingo-gr.y"
+#line 609 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-2].s), new NodeList); }
-#line 3539 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
break;
case 180: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')' */
-#line 609 "engines/director/lingo/lingo-gr.y"
+#line 610 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 3545 "engines/director/lingo/lingo-gr.cpp"
+#line 3603 "engines/director/lingo/lingo-gr.cpp"
break;
case 181: /* simpleexpr_nounarymath: '(' expr ')' */
-#line 610 "engines/director/lingo/lingo-gr.y"
+#line 611 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3551 "engines/director/lingo/lingo-gr.cpp"
+#line 3609 "engines/director/lingo/lingo-gr.cpp"
break;
case 187: /* var: ID */
-#line 618 "engines/director/lingo/lingo-gr.y"
+#line 619 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3557 "engines/director/lingo/lingo-gr.cpp"
+#line 3615 "engines/director/lingo/lingo-gr.cpp"
break;
case 192: /* chunk: tFIELD refargs */
-#line 628 "engines/director/lingo/lingo-gr.y"
+#line 629 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3563 "engines/director/lingo/lingo-gr.cpp"
+#line 3621 "engines/director/lingo/lingo-gr.cpp"
break;
case 193: /* chunk: tCAST refargs */
-#line 629 "engines/director/lingo/lingo-gr.y"
+#line 630 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3569 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
break;
case 194: /* chunk: tCHAR expr tOF simpleexpr */
-#line 630 "engines/director/lingo/lingo-gr.y"
+#line 631 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 3634 "engines/director/lingo/lingo-gr.cpp"
break;
case 195: /* chunk: tCHAR expr tTO expr tOF simpleexpr */
-#line 632 "engines/director/lingo/lingo-gr.y"
+#line 633 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3583 "engines/director/lingo/lingo-gr.cpp"
+#line 3641 "engines/director/lingo/lingo-gr.cpp"
break;
case 196: /* chunk: tWORD expr tOF simpleexpr */
-#line 634 "engines/director/lingo/lingo-gr.y"
+#line 635 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3590 "engines/director/lingo/lingo-gr.cpp"
+#line 3648 "engines/director/lingo/lingo-gr.cpp"
break;
case 197: /* chunk: tWORD expr tTO expr tOF simpleexpr */
-#line 636 "engines/director/lingo/lingo-gr.y"
+#line 637 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3655 "engines/director/lingo/lingo-gr.cpp"
break;
case 198: /* chunk: tITEM expr tOF simpleexpr */
-#line 638 "engines/director/lingo/lingo-gr.y"
+#line 639 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3604 "engines/director/lingo/lingo-gr.cpp"
+#line 3662 "engines/director/lingo/lingo-gr.cpp"
break;
case 199: /* chunk: tITEM expr tTO expr tOF simpleexpr */
-#line 640 "engines/director/lingo/lingo-gr.y"
+#line 641 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3611 "engines/director/lingo/lingo-gr.cpp"
+#line 3669 "engines/director/lingo/lingo-gr.cpp"
break;
case 200: /* chunk: tLINE expr tOF simpleexpr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+#line 643 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+#line 3676 "engines/director/lingo/lingo-gr.cpp"
break;
case 201: /* chunk: tLINE expr tTO expr tOF simpleexpr */
-#line 644 "engines/director/lingo/lingo-gr.y"
+#line 645 "engines/director/lingo/lingo-gr.y"
{
(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3625 "engines/director/lingo/lingo-gr.cpp"
+#line 3683 "engines/director/lingo/lingo-gr.cpp"
break;
case 202: /* object: tSCRIPT refargs */
-#line 648 "engines/director/lingo/lingo-gr.y"
+#line 649 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3631 "engines/director/lingo/lingo-gr.cpp"
+#line 3689 "engines/director/lingo/lingo-gr.cpp"
break;
case 203: /* object: tWINDOW refargs */
-#line 649 "engines/director/lingo/lingo-gr.y"
+#line 650 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3637 "engines/director/lingo/lingo-gr.cpp"
+#line 3695 "engines/director/lingo/lingo-gr.cpp"
break;
case 204: /* refargs: simpleexpr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+#line 653 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref arg` and `ref(arg)`
NodeList *args = new NodeList;
args->push_back((yyvsp[0].node));
(yyval.nodelist) = args; }
-#line 3647 "engines/director/lingo/lingo-gr.cpp"
+#line 3705 "engines/director/lingo/lingo-gr.cpp"
break;
case 205: /* refargs: '(' ')' */
-#line 657 "engines/director/lingo/lingo-gr.y"
+#line 658 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref()`
(yyval.nodelist) = new NodeList; }
-#line 3655 "engines/director/lingo/lingo-gr.cpp"
+#line 3713 "engines/director/lingo/lingo-gr.cpp"
break;
case 206: /* refargs: '(' expr ',' ')' */
-#line 660 "engines/director/lingo/lingo-gr.y"
+#line 661 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref(args,)`
NodeList *args = new NodeList;
args->push_back((yyvsp[-2].node));
(yyval.nodelist) = args; }
-#line 3665 "engines/director/lingo/lingo-gr.cpp"
+#line 3723 "engines/director/lingo/lingo-gr.cpp"
break;
case 207: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')' */
-#line 665 "engines/director/lingo/lingo-gr.y"
+#line 666 "engines/director/lingo/lingo-gr.y"
{
// This matches `ref(args, ...)`
(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3674 "engines/director/lingo/lingo-gr.cpp"
+#line 3732 "engines/director/lingo/lingo-gr.cpp"
break;
- case 211: /* the: tTHE tLAST chunktype inof simpleexpr */
-#line 674 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3680 "engines/director/lingo/lingo-gr.cpp"
+ case 208: /* the: tTHE ID */
+#line 672 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNode((yyvsp[0].s)); }
+#line 3738 "engines/director/lingo/lingo-gr.cpp"
break;
- case 214: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
-#line 679 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3686 "engines/director/lingo/lingo-gr.cpp"
+ case 209: /* the: tTHE ID tOF theobj */
+#line 673 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
+#line 3744 "engines/director/lingo/lingo-gr.cpp"
break;
- case 215: /* theobj: tSOUND simpleexpr */
-#line 680 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3692 "engines/director/lingo/lingo-gr.cpp"
+ case 210: /* the: tTHE tNUMBER tOF theobj */
+#line 674 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
+#line 3750 "engines/director/lingo/lingo-gr.cpp"
break;
- case 216: /* theobj: tSPRITE simpleexpr */
-#line 681 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3698 "engines/director/lingo/lingo-gr.cpp"
+ case 213: /* the: tTHE tLAST chunktype inof simpleexpr */
+#line 677 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
+#line 3756 "engines/director/lingo/lingo-gr.cpp"
break;
- case 217: /* menu: tMENU simpleexpr */
-#line 684 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3704 "engines/director/lingo/lingo-gr.cpp"
+ case 216: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr */
+#line 682 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
+#line 3762 "engines/director/lingo/lingo-gr.cpp"
break;
- case 218: /* writablethe: tTHE ID */
-#line 686 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3710 "engines/director/lingo/lingo-gr.cpp"
+ case 217: /* theobj: tSOUND simpleexpr */
+#line 683 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SoundNode((yyvsp[0].node)); }
+#line 3768 "engines/director/lingo/lingo-gr.cpp"
break;
- case 219: /* writablethe: tTHE ID tOF theobj */
-#line 687 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3716 "engines/director/lingo/lingo-gr.cpp"
+ case 218: /* theobj: tSPRITE simpleexpr */
+#line 684 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
+#line 3774 "engines/director/lingo/lingo-gr.cpp"
break;
- case 220: /* writablethe: tTHE tNUMBER tOF theobj */
-#line 688 "engines/director/lingo/lingo-gr.y"
- { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3722 "engines/director/lingo/lingo-gr.cpp"
+ case 219: /* menu: tMENU simpleexpr */
+#line 687 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuNode((yyvsp[0].node)); }
+#line 3780 "engines/director/lingo/lingo-gr.cpp"
break;
- case 221: /* thedatetime: tTHE tABBREVIATED tDATE */
-#line 691 "engines/director/lingo/lingo-gr.y"
+ case 220: /* thedatetime: tTHE tABBREVIATED tDATE */
+#line 689 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3728 "engines/director/lingo/lingo-gr.cpp"
+#line 3786 "engines/director/lingo/lingo-gr.cpp"
break;
- case 222: /* thedatetime: tTHE tABBREVIATED tTIME */
-#line 692 "engines/director/lingo/lingo-gr.y"
+ case 221: /* thedatetime: tTHE tABBREVIATED tTIME */
+#line 690 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3734 "engines/director/lingo/lingo-gr.cpp"
+#line 3792 "engines/director/lingo/lingo-gr.cpp"
break;
- case 223: /* thedatetime: tTHE tABBREV tDATE */
-#line 693 "engines/director/lingo/lingo-gr.y"
+ case 222: /* thedatetime: tTHE tABBREV tDATE */
+#line 691 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3740 "engines/director/lingo/lingo-gr.cpp"
+#line 3798 "engines/director/lingo/lingo-gr.cpp"
break;
- case 224: /* thedatetime: tTHE tABBREV tTIME */
-#line 694 "engines/director/lingo/lingo-gr.y"
+ case 223: /* thedatetime: tTHE tABBREV tTIME */
+#line 692 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3746 "engines/director/lingo/lingo-gr.cpp"
+#line 3804 "engines/director/lingo/lingo-gr.cpp"
break;
- case 225: /* thedatetime: tTHE tABBR tDATE */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 224: /* thedatetime: tTHE tABBR tDATE */
+#line 693 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3752 "engines/director/lingo/lingo-gr.cpp"
+#line 3810 "engines/director/lingo/lingo-gr.cpp"
break;
- case 226: /* thedatetime: tTHE tABBR tTIME */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 225: /* thedatetime: tTHE tABBR tTIME */
+#line 694 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3758 "engines/director/lingo/lingo-gr.cpp"
+#line 3816 "engines/director/lingo/lingo-gr.cpp"
break;
- case 227: /* thedatetime: tTHE tLONG tDATE */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 226: /* thedatetime: tTHE tLONG tDATE */
+#line 695 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3764 "engines/director/lingo/lingo-gr.cpp"
+#line 3822 "engines/director/lingo/lingo-gr.cpp"
break;
- case 228: /* thedatetime: tTHE tLONG tTIME */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 227: /* thedatetime: tTHE tLONG tTIME */
+#line 696 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3770 "engines/director/lingo/lingo-gr.cpp"
+#line 3828 "engines/director/lingo/lingo-gr.cpp"
break;
- case 229: /* thedatetime: tTHE tSHORT tDATE */
-#line 699 "engines/director/lingo/lingo-gr.y"
+ case 228: /* thedatetime: tTHE tSHORT tDATE */
+#line 697 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3776 "engines/director/lingo/lingo-gr.cpp"
+#line 3834 "engines/director/lingo/lingo-gr.cpp"
break;
- case 230: /* thedatetime: tTHE tSHORT tTIME */
-#line 700 "engines/director/lingo/lingo-gr.y"
+ case 229: /* thedatetime: tTHE tSHORT tTIME */
+#line 698 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3782 "engines/director/lingo/lingo-gr.cpp"
+#line 3840 "engines/director/lingo/lingo-gr.cpp"
break;
- case 231: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
-#line 704 "engines/director/lingo/lingo-gr.y"
+ case 230: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3788 "engines/director/lingo/lingo-gr.cpp"
+#line 3846 "engines/director/lingo/lingo-gr.cpp"
break;
- case 232: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 231: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3794 "engines/director/lingo/lingo-gr.cpp"
+#line 3852 "engines/director/lingo/lingo-gr.cpp"
break;
- case 233: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
-#line 706 "engines/director/lingo/lingo-gr.y"
+ case 232: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr */
+#line 704 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3800 "engines/director/lingo/lingo-gr.cpp"
+#line 3858 "engines/director/lingo/lingo-gr.cpp"
break;
- case 234: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
-#line 707 "engines/director/lingo/lingo-gr.y"
+ case 233: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr */
+#line 705 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3806 "engines/director/lingo/lingo-gr.cpp"
+#line 3864 "engines/director/lingo/lingo-gr.cpp"
break;
- case 235: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
-#line 708 "engines/director/lingo/lingo-gr.y"
+ case 234: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu */
+#line 706 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3812 "engines/director/lingo/lingo-gr.cpp"
+#line 3870 "engines/director/lingo/lingo-gr.cpp"
break;
- case 236: /* chunktype: tCHAR */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 235: /* chunktype: tCHAR */
+#line 709 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkChar; }
-#line 3818 "engines/director/lingo/lingo-gr.cpp"
+#line 3876 "engines/director/lingo/lingo-gr.cpp"
break;
- case 237: /* chunktype: tWORD */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 236: /* chunktype: tWORD */
+#line 710 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkWord; }
-#line 3824 "engines/director/lingo/lingo-gr.cpp"
+#line 3882 "engines/director/lingo/lingo-gr.cpp"
break;
- case 238: /* chunktype: tITEM */
-#line 713 "engines/director/lingo/lingo-gr.y"
+ case 237: /* chunktype: tITEM */
+#line 711 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkItem; }
-#line 3830 "engines/director/lingo/lingo-gr.cpp"
+#line 3888 "engines/director/lingo/lingo-gr.cpp"
break;
- case 239: /* chunktype: tLINE */
-#line 714 "engines/director/lingo/lingo-gr.y"
+ case 238: /* chunktype: tLINE */
+#line 712 "engines/director/lingo/lingo-gr.y"
{ (yyval.chunktype) = kChunkLine; }
-#line 3836 "engines/director/lingo/lingo-gr.cpp"
+#line 3894 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 241: /* writablethe: tTHE ID */
+#line 717 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheNode((yyvsp[0].s)); }
+#line 3900 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 242: /* writablethe: tTHE ID tOF writabletheobj */
+#line 718 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
+#line 3906 "engines/director/lingo/lingo-gr.cpp"
break;
- case 242: /* list: '[' exprlist ']' */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 244: /* writabletheobj: tMENU expr_noeq */
+#line 722 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuNode((yyvsp[0].node)); }
+#line 3912 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 245: /* writabletheobj: tMENUITEM expr_noeq tOF tMENU expr_noeq */
+#line 723 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
+#line 3918 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 246: /* writabletheobj: tSOUND expr_noeq */
+#line 724 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SoundNode((yyvsp[0].node)); }
+#line 3924 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 247: /* writabletheobj: tSPRITE expr_noeq */
+#line 725 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
+#line 3930 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 248: /* list: '[' exprlist ']' */
+#line 728 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3842 "engines/director/lingo/lingo-gr.cpp"
+#line 3936 "engines/director/lingo/lingo-gr.cpp"
break;
- case 243: /* list: '[' ':' ']' */
-#line 720 "engines/director/lingo/lingo-gr.y"
+ case 249: /* list: '[' ':' ']' */
+#line 729 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode(new NodeList); }
-#line 3848 "engines/director/lingo/lingo-gr.cpp"
+#line 3942 "engines/director/lingo/lingo-gr.cpp"
break;
- case 244: /* list: '[' proplist ']' */
-#line 721 "engines/director/lingo/lingo-gr.y"
+ case 250: /* list: '[' proplist ']' */
+#line 730 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3854 "engines/director/lingo/lingo-gr.cpp"
+#line 3948 "engines/director/lingo/lingo-gr.cpp"
break;
- case 245: /* proplist: proppair */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 251: /* proplist: proppair */
+#line 733 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 3863 "engines/director/lingo/lingo-gr.cpp"
+#line 3957 "engines/director/lingo/lingo-gr.cpp"
break;
- case 246: /* proplist: proplist ',' proppair */
-#line 728 "engines/director/lingo/lingo-gr.y"
+ case 252: /* proplist: proplist ',' proppair */
+#line 737 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3871 "engines/director/lingo/lingo-gr.cpp"
+#line 3965 "engines/director/lingo/lingo-gr.cpp"
break;
- case 247: /* proppair: tSYMBOL ':' expr */
-#line 733 "engines/director/lingo/lingo-gr.y"
+ case 253: /* proppair: tSYMBOL ':' expr */
+#line 742 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3877 "engines/director/lingo/lingo-gr.cpp"
+#line 3971 "engines/director/lingo/lingo-gr.cpp"
break;
- case 248: /* proppair: ID ':' expr */
-#line 734 "engines/director/lingo/lingo-gr.y"
+ case 254: /* proppair: ID ':' expr */
+#line 743 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3883 "engines/director/lingo/lingo-gr.cpp"
+#line 3977 "engines/director/lingo/lingo-gr.cpp"
break;
- case 249: /* proppair: tSTRING ':' expr */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 255: /* proppair: tSTRING ':' expr */
+#line 744 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3889 "engines/director/lingo/lingo-gr.cpp"
+#line 3983 "engines/director/lingo/lingo-gr.cpp"
break;
- case 250: /* unarymath: '+' simpleexpr */
-#line 738 "engines/director/lingo/lingo-gr.y"
+ case 256: /* unarymath: '+' simpleexpr */
+#line 747 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3895 "engines/director/lingo/lingo-gr.cpp"
+#line 3989 "engines/director/lingo/lingo-gr.cpp"
break;
- case 251: /* unarymath: '-' simpleexpr */
-#line 739 "engines/director/lingo/lingo-gr.y"
+ case 257: /* unarymath: '-' simpleexpr */
+#line 748 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 3901 "engines/director/lingo/lingo-gr.cpp"
+#line 3995 "engines/director/lingo/lingo-gr.cpp"
break;
- case 256: /* expr: expr '+' expr */
-#line 749 "engines/director/lingo/lingo-gr.y"
+ case 262: /* expr: expr '+' expr */
+#line 758 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3907 "engines/director/lingo/lingo-gr.cpp"
+#line 4001 "engines/director/lingo/lingo-gr.cpp"
break;
- case 257: /* expr: expr '-' expr */
-#line 750 "engines/director/lingo/lingo-gr.y"
+ case 263: /* expr: expr '-' expr */
+#line 759 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3913 "engines/director/lingo/lingo-gr.cpp"
+#line 4007 "engines/director/lingo/lingo-gr.cpp"
break;
- case 258: /* expr: expr '*' expr */
-#line 751 "engines/director/lingo/lingo-gr.y"
+ case 264: /* expr: expr '*' expr */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3919 "engines/director/lingo/lingo-gr.cpp"
+#line 4013 "engines/director/lingo/lingo-gr.cpp"
break;
- case 259: /* expr: expr '/' expr */
-#line 752 "engines/director/lingo/lingo-gr.y"
+ case 265: /* expr: expr '/' expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3925 "engines/director/lingo/lingo-gr.cpp"
+#line 4019 "engines/director/lingo/lingo-gr.cpp"
break;
- case 260: /* expr: expr tMOD expr */
-#line 753 "engines/director/lingo/lingo-gr.y"
+ case 266: /* expr: expr tMOD expr */
+#line 762 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3931 "engines/director/lingo/lingo-gr.cpp"
+#line 4025 "engines/director/lingo/lingo-gr.cpp"
break;
- case 261: /* expr: expr '>' expr */
-#line 754 "engines/director/lingo/lingo-gr.y"
+ case 267: /* expr: expr '>' expr */
+#line 763 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3937 "engines/director/lingo/lingo-gr.cpp"
+#line 4031 "engines/director/lingo/lingo-gr.cpp"
break;
- case 262: /* expr: expr '<' expr */
-#line 755 "engines/director/lingo/lingo-gr.y"
+ case 268: /* expr: expr '<' expr */
+#line 764 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3943 "engines/director/lingo/lingo-gr.cpp"
+#line 4037 "engines/director/lingo/lingo-gr.cpp"
break;
- case 263: /* expr: expr tEQ expr */
-#line 756 "engines/director/lingo/lingo-gr.y"
+ case 269: /* expr: expr tEQ expr */
+#line 765 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3949 "engines/director/lingo/lingo-gr.cpp"
+#line 4043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 264: /* expr: expr tNEQ expr */
-#line 757 "engines/director/lingo/lingo-gr.y"
+ case 270: /* expr: expr tNEQ expr */
+#line 766 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3955 "engines/director/lingo/lingo-gr.cpp"
+#line 4049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 265: /* expr: expr tGE expr */
-#line 758 "engines/director/lingo/lingo-gr.y"
+ case 271: /* expr: expr tGE expr */
+#line 767 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3961 "engines/director/lingo/lingo-gr.cpp"
+#line 4055 "engines/director/lingo/lingo-gr.cpp"
break;
- case 266: /* expr: expr tLE expr */
-#line 759 "engines/director/lingo/lingo-gr.y"
+ case 272: /* expr: expr tLE expr */
+#line 768 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3967 "engines/director/lingo/lingo-gr.cpp"
+#line 4061 "engines/director/lingo/lingo-gr.cpp"
break;
- case 267: /* expr: expr tAND expr */
-#line 760 "engines/director/lingo/lingo-gr.y"
+ case 273: /* expr: expr tAND expr */
+#line 769 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3973 "engines/director/lingo/lingo-gr.cpp"
+#line 4067 "engines/director/lingo/lingo-gr.cpp"
break;
- case 268: /* expr: expr tOR expr */
-#line 761 "engines/director/lingo/lingo-gr.y"
+ case 274: /* expr: expr tOR expr */
+#line 770 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3979 "engines/director/lingo/lingo-gr.cpp"
+#line 4073 "engines/director/lingo/lingo-gr.cpp"
break;
- case 269: /* expr: expr '&' expr */
-#line 762 "engines/director/lingo/lingo-gr.y"
+ case 275: /* expr: expr '&' expr */
+#line 771 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3985 "engines/director/lingo/lingo-gr.cpp"
+#line 4079 "engines/director/lingo/lingo-gr.cpp"
break;
- case 270: /* expr: expr tCONCAT expr */
-#line 763 "engines/director/lingo/lingo-gr.y"
+ case 276: /* expr: expr tCONCAT expr */
+#line 772 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3991 "engines/director/lingo/lingo-gr.cpp"
+#line 4085 "engines/director/lingo/lingo-gr.cpp"
break;
- case 271: /* expr: expr tCONTAINS expr */
-#line 764 "engines/director/lingo/lingo-gr.y"
+ case 277: /* expr: expr tCONTAINS expr */
+#line 773 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3997 "engines/director/lingo/lingo-gr.cpp"
+#line 4091 "engines/director/lingo/lingo-gr.cpp"
break;
- case 272: /* expr: expr tSTARTS expr */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 278: /* expr: expr tSTARTS expr */
+#line 774 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4003 "engines/director/lingo/lingo-gr.cpp"
+#line 4097 "engines/director/lingo/lingo-gr.cpp"
break;
- case 275: /* expr_nounarymath: expr_nounarymath '+' expr */
-#line 774 "engines/director/lingo/lingo-gr.y"
+ case 281: /* expr_nounarymath: expr_nounarymath '+' expr */
+#line 783 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4009 "engines/director/lingo/lingo-gr.cpp"
+#line 4103 "engines/director/lingo/lingo-gr.cpp"
break;
- case 276: /* expr_nounarymath: expr_nounarymath '-' expr */
-#line 775 "engines/director/lingo/lingo-gr.y"
+ case 282: /* expr_nounarymath: expr_nounarymath '-' expr */
+#line 784 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4015 "engines/director/lingo/lingo-gr.cpp"
+#line 4109 "engines/director/lingo/lingo-gr.cpp"
break;
- case 277: /* expr_nounarymath: expr_nounarymath '*' expr */
-#line 776 "engines/director/lingo/lingo-gr.y"
+ case 283: /* expr_nounarymath: expr_nounarymath '*' expr */
+#line 785 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4021 "engines/director/lingo/lingo-gr.cpp"
+#line 4115 "engines/director/lingo/lingo-gr.cpp"
break;
- case 278: /* expr_nounarymath: expr_nounarymath '/' expr */
-#line 777 "engines/director/lingo/lingo-gr.y"
+ case 284: /* expr_nounarymath: expr_nounarymath '/' expr */
+#line 786 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4027 "engines/director/lingo/lingo-gr.cpp"
+#line 4121 "engines/director/lingo/lingo-gr.cpp"
break;
- case 279: /* expr_nounarymath: expr_nounarymath tMOD expr */
-#line 778 "engines/director/lingo/lingo-gr.y"
+ case 285: /* expr_nounarymath: expr_nounarymath tMOD expr */
+#line 787 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4033 "engines/director/lingo/lingo-gr.cpp"
+#line 4127 "engines/director/lingo/lingo-gr.cpp"
break;
- case 280: /* expr_nounarymath: expr_nounarymath '>' expr */
-#line 779 "engines/director/lingo/lingo-gr.y"
+ case 286: /* expr_nounarymath: expr_nounarymath '>' expr */
+#line 788 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4039 "engines/director/lingo/lingo-gr.cpp"
+#line 4133 "engines/director/lingo/lingo-gr.cpp"
break;
- case 281: /* expr_nounarymath: expr_nounarymath '<' expr */
-#line 780 "engines/director/lingo/lingo-gr.y"
+ case 287: /* expr_nounarymath: expr_nounarymath '<' expr */
+#line 789 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4045 "engines/director/lingo/lingo-gr.cpp"
+#line 4139 "engines/director/lingo/lingo-gr.cpp"
break;
- case 282: /* expr_nounarymath: expr_nounarymath tEQ expr */
-#line 781 "engines/director/lingo/lingo-gr.y"
+ case 288: /* expr_nounarymath: expr_nounarymath tEQ expr */
+#line 790 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4051 "engines/director/lingo/lingo-gr.cpp"
+#line 4145 "engines/director/lingo/lingo-gr.cpp"
break;
- case 283: /* expr_nounarymath: expr_nounarymath tNEQ expr */
-#line 782 "engines/director/lingo/lingo-gr.y"
+ case 289: /* expr_nounarymath: expr_nounarymath tNEQ expr */
+#line 791 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4057 "engines/director/lingo/lingo-gr.cpp"
+#line 4151 "engines/director/lingo/lingo-gr.cpp"
break;
- case 284: /* expr_nounarymath: expr_nounarymath tGE expr */
-#line 783 "engines/director/lingo/lingo-gr.y"
+ case 290: /* expr_nounarymath: expr_nounarymath tGE expr */
+#line 792 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4063 "engines/director/lingo/lingo-gr.cpp"
+#line 4157 "engines/director/lingo/lingo-gr.cpp"
break;
- case 285: /* expr_nounarymath: expr_nounarymath tLE expr */
-#line 784 "engines/director/lingo/lingo-gr.y"
+ case 291: /* expr_nounarymath: expr_nounarymath tLE expr */
+#line 793 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4069 "engines/director/lingo/lingo-gr.cpp"
+#line 4163 "engines/director/lingo/lingo-gr.cpp"
break;
- case 286: /* expr_nounarymath: expr_nounarymath tAND expr */
-#line 785 "engines/director/lingo/lingo-gr.y"
+ case 292: /* expr_nounarymath: expr_nounarymath tAND expr */
+#line 794 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4075 "engines/director/lingo/lingo-gr.cpp"
+#line 4169 "engines/director/lingo/lingo-gr.cpp"
break;
- case 287: /* expr_nounarymath: expr_nounarymath tOR expr */
-#line 786 "engines/director/lingo/lingo-gr.y"
+ case 293: /* expr_nounarymath: expr_nounarymath tOR expr */
+#line 795 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4081 "engines/director/lingo/lingo-gr.cpp"
+#line 4175 "engines/director/lingo/lingo-gr.cpp"
break;
- case 288: /* expr_nounarymath: expr_nounarymath '&' expr */
-#line 787 "engines/director/lingo/lingo-gr.y"
+ case 294: /* expr_nounarymath: expr_nounarymath '&' expr */
+#line 796 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4087 "engines/director/lingo/lingo-gr.cpp"
+#line 4181 "engines/director/lingo/lingo-gr.cpp"
break;
- case 289: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
-#line 788 "engines/director/lingo/lingo-gr.y"
+ case 295: /* expr_nounarymath: expr_nounarymath tCONCAT expr */
+#line 797 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4093 "engines/director/lingo/lingo-gr.cpp"
+#line 4187 "engines/director/lingo/lingo-gr.cpp"
break;
- case 290: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
-#line 789 "engines/director/lingo/lingo-gr.y"
+ case 296: /* expr_nounarymath: expr_nounarymath tCONTAINS expr */
+#line 798 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4099 "engines/director/lingo/lingo-gr.cpp"
+#line 4193 "engines/director/lingo/lingo-gr.cpp"
break;
- case 291: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
-#line 790 "engines/director/lingo/lingo-gr.y"
+ case 297: /* expr_nounarymath: expr_nounarymath tSTARTS expr */
+#line 799 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4105 "engines/director/lingo/lingo-gr.cpp"
+#line 4199 "engines/director/lingo/lingo-gr.cpp"
break;
- case 292: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
-#line 793 "engines/director/lingo/lingo-gr.y"
+ case 300: /* expr_noeq: expr_noeq '+' expr_noeq */
+#line 804 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4205 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 301: /* expr_noeq: expr_noeq '-' expr_noeq */
+#line 805 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4211 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 302: /* expr_noeq: expr_noeq '*' expr_noeq */
+#line 806 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4217 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 303: /* expr_noeq: expr_noeq '/' expr_noeq */
+#line 807 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4223 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 304: /* expr_noeq: expr_noeq tMOD expr_noeq */
+#line 808 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4229 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 305: /* expr_noeq: expr_noeq '>' expr_noeq */
+#line 809 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4235 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 306: /* expr_noeq: expr_noeq '<' expr_noeq */
+#line 810 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4241 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 307: /* expr_noeq: expr_noeq tNEQ expr_noeq */
+#line 811 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4247 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 308: /* expr_noeq: expr_noeq tGE expr_noeq */
+#line 812 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4253 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 309: /* expr_noeq: expr_noeq tLE expr_noeq */
+#line 813 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4259 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 310: /* expr_noeq: expr_noeq tAND expr_noeq */
+#line 814 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4265 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 311: /* expr_noeq: expr_noeq tOR expr_noeq */
+#line 815 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4271 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 312: /* expr_noeq: expr_noeq '&' expr_noeq */
+#line 816 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4277 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 313: /* expr_noeq: expr_noeq tCONCAT expr_noeq */
+#line 817 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4283 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 314: /* expr_noeq: expr_noeq tCONTAINS expr_noeq */
+#line 818 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4289 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 315: /* expr_noeq: expr_noeq tSTARTS expr_noeq */
+#line 819 "engines/director/lingo/lingo-gr.y"
+ { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
+#line 4295 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 316: /* sprite: tSPRITE expr tINTERSECTS simpleexpr */
+#line 822 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4111 "engines/director/lingo/lingo-gr.cpp"
+#line 4301 "engines/director/lingo/lingo-gr.cpp"
break;
- case 293: /* sprite: tSPRITE expr tWITHIN simpleexpr */
-#line 794 "engines/director/lingo/lingo-gr.y"
+ case 317: /* sprite: tSPRITE expr tWITHIN simpleexpr */
+#line 823 "engines/director/lingo/lingo-gr.y"
{ (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4117 "engines/director/lingo/lingo-gr.cpp"
+#line 4307 "engines/director/lingo/lingo-gr.cpp"
break;
- case 294: /* exprlist: %empty */
-#line 797 "engines/director/lingo/lingo-gr.y"
+ case 318: /* exprlist: %empty */
+#line 826 "engines/director/lingo/lingo-gr.y"
{ (yyval.nodelist) = new NodeList; }
-#line 4123 "engines/director/lingo/lingo-gr.cpp"
+#line 4313 "engines/director/lingo/lingo-gr.cpp"
break;
- case 296: /* nonemptyexprlist: expr */
-#line 801 "engines/director/lingo/lingo-gr.y"
+ case 320: /* nonemptyexprlist: expr */
+#line 830 "engines/director/lingo/lingo-gr.y"
{
NodeList *list = new NodeList;
list->push_back((yyvsp[0].node));
(yyval.nodelist) = list; }
-#line 4132 "engines/director/lingo/lingo-gr.cpp"
+#line 4322 "engines/director/lingo/lingo-gr.cpp"
break;
- case 297: /* nonemptyexprlist: nonemptyexprlist ',' expr */
-#line 805 "engines/director/lingo/lingo-gr.y"
+ case 321: /* nonemptyexprlist: nonemptyexprlist ',' expr */
+#line 834 "engines/director/lingo/lingo-gr.y"
{
(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4140 "engines/director/lingo/lingo-gr.cpp"
+#line 4330 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 4144 "engines/director/lingo/lingo-gr.cpp"
+#line 4334 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -4339,7 +4529,7 @@ yyreturn:
return yyresult;
}
-#line 810 "engines/director/lingo/lingo-gr.y"
+#line 839 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 457afca6ed..c1b86e8f9d 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -169,10 +169,11 @@ static void checkEnd(Common::String *token, Common::String *expect, bool require
// EXPRESSION
%type<node> simpleexpr_nounarymath simpleexpr
%type<node> unarymath
-%type<node> expr expr_nounarymath sprite
+%type<node> expr expr_nounarymath expr_noeq sprite
%type<node> var varorchunk varorthe
%type<chunktype> chunktype
-%type<node> the writablethe theobj menu thedatetime thenumberof
+%type<node> the theobj menu thedatetime thenumberof
+%type<node> writablethe writabletheobj
%type<node> list proppair
%type<node> chunk object
%type<nodelist> refargs proplist exprlist nonemptyexprlist
@@ -668,7 +669,9 @@ refargs: simpleexpr {
$$ = $args; }
;
-the: writablethe
+the: tTHE ID { $$ = new TheNode($ID); }
+ | tTHE ID tOF theobj { $$ = new TheOfNode($ID, $theobj); }
+ | tTHE tNUMBER tOF theobj { $$ = new TheOfNode(new Common::String("number"), $theobj); }
| thedatetime
| thenumberof
| tTHE tLAST chunktype inof simpleexpr { $$ = new TheLastNode($chunktype, $simpleexpr); }
@@ -676,18 +679,13 @@ the: writablethe
theobj: simpleexpr
| menu
- | tMENUITEM simpleexpr[item] tOF tMENU simpleexpr[menu] { $$ = new MenuItemNode($item, $menu); }
+ | tMENUITEM simpleexpr[item] tOF tMENU simpleexpr[menu] { $$ = new MenuItemNode($item, $menu); }
| tSOUND simpleexpr[arg] { $$ = new SoundNode($arg); }
| tSPRITE simpleexpr[arg] { $$ = new SpriteNode($arg); }
;
menu: tMENU simpleexpr[arg] { $$ = new MenuNode($arg); } ;
-writablethe: tTHE ID { $$ = new TheNode($ID); }
- | tTHE ID tOF theobj { $$ = new TheOfNode($ID, $theobj); }
- | tTHE tNUMBER tOF theobj { $$ = new TheOfNode(new Common::String("number"), $theobj); }
- ;
-
thedatetime: tTHE tABBREVIATED tDATE { $$ = new TheDateTimeNode(kTheAbbr, kTheDate); }
| tTHE tABBREVIATED tTIME { $$ = new TheDateTimeNode(kTheAbbr, kTheTime); }
| tTHE tABBREV tDATE { $$ = new TheDateTimeNode(kTheAbbr, kTheDate); }
@@ -716,6 +714,17 @@ chunktype: tCHAR { $$ = kChunkChar; }
inof: tIN | tOF ;
+writablethe: tTHE ID { $$ = new TheNode($ID); }
+ | tTHE ID tOF writabletheobj { $$ = new TheOfNode($ID, $writabletheobj); }
+ ;
+
+writabletheobj: simpleexpr
+ | tMENU expr_noeq[arg] { $$ = new MenuNode($arg); } ;
+ | tMENUITEM expr_noeq[item] tOF tMENU expr_noeq[menu] { $$ = new MenuItemNode($item, $menu); }
+ | tSOUND expr_noeq[arg] { $$ = new SoundNode($arg); }
+ | tSPRITE expr_noeq[arg] { $$ = new SpriteNode($arg); }
+ ;
+
list: '[' exprlist ']' { $$ = new ListNode($exprlist); }
| '[' ':' ']' { $$ = new PropListNode(new NodeList); }
| '[' proplist ']' { $$ = new PropListNode($proplist); }
@@ -743,7 +752,7 @@ simpleexpr: simpleexpr_nounarymath
| unarymath
;
-// REMEMBER TO SYNC THIS WITH expr_nounarymath!
+// REMEMBER TO SYNC THIS WITH expr_nounarymath and expr_noeq!
expr: simpleexpr
| sprite
| expr[a] '+' expr[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
@@ -790,6 +799,26 @@ expr_nounarymath: simpleexpr_nounarymath
| expr_nounarymath[a] tSTARTS expr[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
;
+expr_noeq: simpleexpr
+ | sprite
+ | expr_noeq[a] '+' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_add, $a, $b); }
+ | expr_noeq[a] '-' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_sub, $a, $b); }
+ | expr_noeq[a] '*' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_mul, $a, $b); }
+ | expr_noeq[a] '/' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_div, $a, $b); }
+ | expr_noeq[a] tMOD expr_noeq[b] { $$ = new BinaryOpNode(LC::c_mod, $a, $b); }
+ | expr_noeq[a] '>' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_gt, $a, $b); }
+ | expr_noeq[a] '<' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_lt, $a, $b); }
+ | expr_noeq[a] tNEQ expr_noeq[b] { $$ = new BinaryOpNode(LC::c_neq, $a, $b); }
+ | expr_noeq[a] tGE expr_noeq[b] { $$ = new BinaryOpNode(LC::c_ge, $a, $b); }
+ | expr_noeq[a] tLE expr_noeq[b] { $$ = new BinaryOpNode(LC::c_le, $a, $b); }
+ | expr_noeq[a] tAND expr_noeq[b] { $$ = new BinaryOpNode(LC::c_and, $a, $b); }
+ | expr_noeq[a] tOR expr_noeq[b] { $$ = new BinaryOpNode(LC::c_or, $a, $b); }
+ | expr_noeq[a] '&' expr_noeq[b] { $$ = new BinaryOpNode(LC::c_ampersand, $a, $b); }
+ | expr_noeq[a] tCONCAT expr_noeq[b] { $$ = new BinaryOpNode(LC::c_concat, $a, $b); }
+ | expr_noeq[a] tCONTAINS expr_noeq[b] { $$ = new BinaryOpNode(LC::c_contains, $a, $b); }
+ | expr_noeq[a] tSTARTS expr_noeq[b] { $$ = new BinaryOpNode(LC::c_starts, $a, $b); }
+ ;
+
sprite: tSPRITE expr tINTERSECTS simpleexpr { $$ = new IntersectsNode($expr, $simpleexpr); }
| tSPRITE expr tWITHIN simpleexpr { $$ = new WithinNode($expr, $simpleexpr); }
;
More information about the Scummvm-git-logs
mailing list