[Scummvm-git-logs] scummvm master -> 992213b97cec00d58fc9978417c9a4a97b642f3b
djsrv
dservilla at gmail.com
Fri Aug 14 22:00:54 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
502e2e60bd DIRECTOR: Clean up switch statement
d277b0279e DIRECTOR: LINGO: Handle getting kTheField
a0c7ce4bca DIRECTOR: LINGO: Fix copy/paste error
992213b97c DIRECTOR: LINGO: Lazily fetch cast members
Commit: 502e2e60bd2d06c966c5e93d19b3decc0810dacb
https://github.com/scummvm/scummvm/commit/502e2e60bd2d06c966c5e93d19b3decc0810dacb
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-14T18:00:38-04:00
Commit Message:
DIRECTOR: Clean up switch statement
Changed paths:
engines/director/lingo/lingo.cpp
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 4e9521b074..26dc6c2a71 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -796,14 +796,11 @@ void Datum::reset() {
if (*refCount <= 0) {
switch (type) {
case VAR:
- // fallthrough
case STRING:
delete u.s;
break;
case ARRAY:
- // fallthrough
case POINT:
- // fallthrough
case RECT:
delete u.farr;
break;
@@ -819,13 +816,6 @@ void Datum::reset() {
delete u.obj;
}
break;
- case CASTREF:
- case FIELDREF:
- // fallthrough
- case INT:
- // fallthrough
- case FLOAT:
- // fallthrough
default:
break;
}
Commit: d277b0279e58447271caefe28f7021cb0aeb1150
https://github.com/scummvm/scummvm/commit/d277b0279e58447271caefe28f7021cb0aeb1150
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-14T18:00:38-04:00
Commit Message:
DIRECTOR: LINGO: Handle getting kTheField
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 1705f338fb..1344c6b7b1 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -428,6 +428,9 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
case kTheExitLock:
getTheEntitySTUB(kTheExitLock);
break;
+ case kTheField:
+ d = getTheField(id, field);
+ break;
case kTheFixStageSize:
getTheEntitySTUB(kTheFixStageSize);
break;
Commit: a0c7ce4bcad95e7992713b1018d8039a2bd6452e
https://github.com/scummvm/scummvm/commit/a0c7ce4bcad95e7992713b1018d8039a2bd6452e
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-14T18:00:38-04:00
Commit Message:
DIRECTOR: LINGO: Fix copy/paste error
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 e7bfd54a6c..a326fa86de 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -257,15 +257,15 @@ static LingoV4TheEntity lingoV4TheEntity[] = {
{ 0x09, 0x11, kTheCast, kTheForeColor, true, kTEAItemId },
{ 0x09, 0x12, kTheCast, kTheBackColor, true, kTEAItemId },
- { 0x09, 0x01, kTheField, kTheName, true, kTEAItemId },
- { 0x09, 0x02, kTheField, kTheText, true, kTEAItemId },
- { 0x09, 0x09, kTheField, kTheHilite, true, kTEAItemId },
+ { 0x0b, 0x01, kTheField, kTheName, true, kTEAItemId },
+ { 0x0b, 0x02, kTheField, kTheText, true, kTEAItemId },
+ { 0x0b, 0x09, kTheField, kTheHilite, true, kTEAItemId },
{ 0x0b, 0x03, kTheField, kTheTextStyle, true, kTEAItemId },
{ 0x0b, 0x04, kTheField, kTheTextFont, true, kTEAItemId },
{ 0x0b, 0x05, kTheField, kTheTextHeight, true, kTEAItemId },
{ 0x0b, 0x06, kTheField, kTheTextAlign, true, kTEAItemId },
{ 0x0b, 0x07, kTheField, kTheTextSize, true, kTEAItemId },
- { 0x09, 0x11, kTheCast, kTheForeColor, true, kTEAItemId },
+ { 0x0b, 0x11, kTheCast, kTheForeColor, true, kTEAItemId },
{ 0x0d, 0x0c, kTheCast, kTheLoop, true, kTEAItemId },
{ 0x0d, 0x0d, kTheCast, kTheDuration, true, kTEAItemId },
Commit: 992213b97cec00d58fc9978417c9a4a97b642f3b
https://github.com/scummvm/scummvm/commit/992213b97cec00d58fc9978417c9a4a97b642f3b
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-14T18:00:38-04:00
Commit Message:
DIRECTOR: LINGO: Lazily fetch cast members
Cast members should be fetched until they're actually needed, so
`the loaded of cast x`, etc. will work.
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 760e1032f2..ba1d6bb109 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -67,6 +67,12 @@ namespace Director {
return; \
}
+#define TYPECHECK3(datum, t1, t2, t3) \
+ if ((datum).type != (t1) && (datum).type != (t2) && (datum).type != (t3)) { \
+ warning("%s: %s arg should be of type %s, %s, or %s, not %s", __FUNCTION__, #datum, #t1, #t2, #t3, (datum).type2str()); \
+ return; \
+ }
+
#define ARRBOUNDSCHECK(idx,array) \
if ((idx)-1 < 0 || (idx) > (int)(array).u.farr->size()) { \
warning("%s: index out of bounds (%d of %d)", __FUNCTION__, (idx), (array).u.farr->size()); \
@@ -449,7 +455,7 @@ void LB::b_chars(int nargs) {
Datum d3 = g_lingo->pop();
Datum d2 = g_lingo->pop();
Datum s = g_lingo->pop();
- TYPECHECK2(s, STRING, FIELDREF);
+ TYPECHECK3(s, STRING, FIELDNAME, FIELDNUM);
if (g_director->getVersion() < 400 && (d2.type == FLOAT || d3.type == FLOAT)) {
warning("LB::b_chars: Called with a float in Director 2 and 3 mode. chars' can't handle floats");
@@ -510,7 +516,7 @@ void LB::b_hilite(int nargs) {
void LB::b_length(int nargs) {
Datum d = g_lingo->pop();
- TYPECHECK2(d, STRING, FIELDREF);
+ TYPECHECK3(d, STRING, FIELDNAME, FIELDNUM);
int len = strlen(d.asString().c_str());
@@ -597,7 +603,7 @@ void LB::b_addProp(int nargs) {
Datum list = g_lingo->pop();
TYPECHECK(list, PARRAY);
- if (prop.type == FIELDREF)
+ if (prop.type == FIELDNAME || prop.type == FIELDNUM)
prop = g_lingo->varFetch(prop);
PCell cell = PCell(prop, value);
@@ -1028,7 +1034,7 @@ void LB::b_setProp(int nargs) {
Datum prop = g_lingo->pop();
Datum list = g_lingo->pop();
TYPECHECK(list, PARRAY);
- if (prop.type == FIELDREF)
+ if (prop.type == FIELDNAME || prop.type == FIELDNUM)
prop = g_lingo->varFetch(prop);
int index = LC::compareArrays(LC::eqData, list, prop, true).u.i;
@@ -2315,16 +2321,28 @@ void LB::b_version(int nargs) {
void LB::b_cast(int nargs) {
Datum d = g_lingo->pop();
- Datum res(g_lingo->castIdFetch(d));
- res.type = CASTREF;
+ Datum res;
+ if (d.type == STRING) {
+ res = d;
+ res.type = CASTNAME;
+ } else {
+ res = d.asInt();
+ res.type = CASTNUM;
+ }
g_lingo->push(res);
}
void LB::b_field(int nargs) {
Datum d = g_lingo->pop();
- Datum res(g_lingo->castIdFetch(d));
- res.type = FIELDREF;
+ Datum res;
+ if (d.type == STRING) {
+ res = d;
+ res.type = FIELDNAME;
+ } else {
+ res = d.asInt();
+ res.type = FIELDNUM;
+ }
g_lingo->push(res);
}
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 3587cfba96..1a0ba4a479 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -225,167 +225,169 @@ enum yysymbol_kind_t
YYSYMBOL_YYerror = 1, /* error */
YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
YYSYMBOL_UNARY = 3, /* UNARY */
- YYSYMBOL_CASTREF = 4, /* CASTREF */
- YYSYMBOL_VOID = 5, /* VOID */
- YYSYMBOL_VAR = 6, /* VAR */
- YYSYMBOL_POINT = 7, /* POINT */
- YYSYMBOL_RECT = 8, /* RECT */
- YYSYMBOL_ARRAY = 9, /* ARRAY */
- YYSYMBOL_OBJECT = 10, /* OBJECT */
- YYSYMBOL_FIELDREF = 11, /* FIELDREF */
- YYSYMBOL_LEXERROR = 12, /* LEXERROR */
- YYSYMBOL_PARRAY = 13, /* PARRAY */
- YYSYMBOL_INT = 14, /* INT */
- YYSYMBOL_ARGC = 15, /* ARGC */
- YYSYMBOL_ARGCNORET = 16, /* ARGCNORET */
- YYSYMBOL_THEENTITY = 17, /* THEENTITY */
- YYSYMBOL_THEENTITYWITHID = 18, /* THEENTITYWITHID */
- YYSYMBOL_THEMENUITEMENTITY = 19, /* THEMENUITEMENTITY */
- YYSYMBOL_THEMENUITEMSENTITY = 20, /* THEMENUITEMSENTITY */
- YYSYMBOL_FLOAT = 21, /* FLOAT */
- YYSYMBOL_THEFUNC = 22, /* THEFUNC */
- YYSYMBOL_THEFUNCINOF = 23, /* THEFUNCINOF */
- YYSYMBOL_VARID = 24, /* VARID */
- YYSYMBOL_STRING = 25, /* STRING */
- YYSYMBOL_SYMBOL = 26, /* SYMBOL */
- YYSYMBOL_ENDCLAUSE = 27, /* ENDCLAUSE */
- YYSYMBOL_tPLAYACCEL = 28, /* tPLAYACCEL */
- YYSYMBOL_tMETHOD = 29, /* tMETHOD */
- YYSYMBOL_THEOBJECTPROP = 30, /* THEOBJECTPROP */
- YYSYMBOL_tCAST = 31, /* tCAST */
- YYSYMBOL_tFIELD = 32, /* tFIELD */
- YYSYMBOL_tSCRIPT = 33, /* tSCRIPT */
- YYSYMBOL_tWINDOW = 34, /* tWINDOW */
- YYSYMBOL_tDOWN = 35, /* tDOWN */
- YYSYMBOL_tELSE = 36, /* tELSE */
- YYSYMBOL_tELSIF = 37, /* tELSIF */
- YYSYMBOL_tEXIT = 38, /* tEXIT */
- YYSYMBOL_tGLOBAL = 39, /* tGLOBAL */
- YYSYMBOL_tGO = 40, /* tGO */
- YYSYMBOL_tGOLOOP = 41, /* tGOLOOP */
- YYSYMBOL_tIF = 42, /* tIF */
- YYSYMBOL_tIN = 43, /* tIN */
- YYSYMBOL_tINTO = 44, /* tINTO */
- YYSYMBOL_tMACRO = 45, /* tMACRO */
- YYSYMBOL_tMOVIE = 46, /* tMOVIE */
- YYSYMBOL_tNEXT = 47, /* tNEXT */
- YYSYMBOL_tOF = 48, /* tOF */
- YYSYMBOL_tPREVIOUS = 49, /* tPREVIOUS */
- YYSYMBOL_tPUT = 50, /* tPUT */
- YYSYMBOL_tREPEAT = 51, /* tREPEAT */
- YYSYMBOL_tSET = 52, /* tSET */
- YYSYMBOL_tTHEN = 53, /* tTHEN */
- YYSYMBOL_tTO = 54, /* tTO */
- YYSYMBOL_tWHEN = 55, /* tWHEN */
- YYSYMBOL_tWITH = 56, /* tWITH */
- YYSYMBOL_tWHILE = 57, /* tWHILE */
- YYSYMBOL_tFACTORY = 58, /* tFACTORY */
- YYSYMBOL_tOPEN = 59, /* tOPEN */
- YYSYMBOL_tPLAY = 60, /* tPLAY */
- YYSYMBOL_tINSTANCE = 61, /* tINSTANCE */
- YYSYMBOL_tGE = 62, /* tGE */
- YYSYMBOL_tLE = 63, /* tLE */
- YYSYMBOL_tEQ = 64, /* tEQ */
- YYSYMBOL_tNEQ = 65, /* tNEQ */
- YYSYMBOL_tAND = 66, /* tAND */
- YYSYMBOL_tOR = 67, /* tOR */
- YYSYMBOL_tNOT = 68, /* tNOT */
- YYSYMBOL_tMOD = 69, /* tMOD */
- YYSYMBOL_tAFTER = 70, /* tAFTER */
- YYSYMBOL_tBEFORE = 71, /* tBEFORE */
- YYSYMBOL_tCONCAT = 72, /* tCONCAT */
- YYSYMBOL_tCONTAINS = 73, /* tCONTAINS */
- YYSYMBOL_tSTARTS = 74, /* tSTARTS */
- YYSYMBOL_tCHAR = 75, /* tCHAR */
- YYSYMBOL_tITEM = 76, /* tITEM */
- YYSYMBOL_tLINE = 77, /* tLINE */
- YYSYMBOL_tWORD = 78, /* tWORD */
- YYSYMBOL_tSPRITE = 79, /* tSPRITE */
- YYSYMBOL_tINTERSECTS = 80, /* tINTERSECTS */
- YYSYMBOL_tWITHIN = 81, /* tWITHIN */
- YYSYMBOL_tTELL = 82, /* tTELL */
- YYSYMBOL_tPROPERTY = 83, /* tPROPERTY */
- YYSYMBOL_tON = 84, /* tON */
- YYSYMBOL_tENDIF = 85, /* tENDIF */
- YYSYMBOL_tENDREPEAT = 86, /* tENDREPEAT */
- YYSYMBOL_tENDTELL = 87, /* tENDTELL */
- YYSYMBOL_88_ = 88, /* '<' */
- YYSYMBOL_89_ = 89, /* '>' */
- YYSYMBOL_90_ = 90, /* '&' */
- YYSYMBOL_91_ = 91, /* '+' */
- YYSYMBOL_92_ = 92, /* '-' */
- YYSYMBOL_93_ = 93, /* '*' */
- YYSYMBOL_94_ = 94, /* '/' */
- YYSYMBOL_95_ = 95, /* '%' */
- YYSYMBOL_96_n_ = 96, /* '\n' */
- YYSYMBOL_97_ = 97, /* '(' */
- YYSYMBOL_98_ = 98, /* ')' */
- YYSYMBOL_99_ = 99, /* ',' */
- YYSYMBOL_100_ = 100, /* '[' */
- YYSYMBOL_101_ = 101, /* ']' */
- YYSYMBOL_102_ = 102, /* ':' */
- YYSYMBOL_YYACCEPT = 103, /* $accept */
- YYSYMBOL_program = 104, /* program */
- YYSYMBOL_programline = 105, /* programline */
- YYSYMBOL_ID = 106, /* ID */
- YYSYMBOL_asgn = 107, /* asgn */
- YYSYMBOL_stmtoneliner = 108, /* stmtoneliner */
- YYSYMBOL_stmt = 109, /* stmt */
- YYSYMBOL_110_1 = 110, /* $@1 */
- YYSYMBOL_111_2 = 111, /* $@2 */
- YYSYMBOL_112_3 = 112, /* $@3 */
- YYSYMBOL_113_4 = 113, /* $@4 */
- YYSYMBOL_114_5 = 114, /* $@5 */
- YYSYMBOL_115_6 = 115, /* $@6 */
- YYSYMBOL_116_7 = 116, /* $@7 */
- YYSYMBOL_117_8 = 117, /* $@8 */
- YYSYMBOL_118_9 = 118, /* $@9 */
- YYSYMBOL_startrepeat = 119, /* startrepeat */
- YYSYMBOL_tellstart = 120, /* tellstart */
- YYSYMBOL_ifstmt = 121, /* ifstmt */
- YYSYMBOL_elseifstmtlist = 122, /* elseifstmtlist */
- YYSYMBOL_elseifstmt = 123, /* elseifstmt */
- YYSYMBOL_jumpifz = 124, /* jumpifz */
- YYSYMBOL_jump = 125, /* jump */
- YYSYMBOL_varassign = 126, /* varassign */
- YYSYMBOL_if = 127, /* if */
- YYSYMBOL_lbl = 128, /* lbl */
- YYSYMBOL_stmtlist = 129, /* stmtlist */
- YYSYMBOL_stmtlistline = 130, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 131, /* simpleexprnoparens */
- YYSYMBOL_132_10 = 132, /* $@10 */
- YYSYMBOL_simpleexpr = 133, /* simpleexpr */
- YYSYMBOL_expr = 134, /* expr */
- YYSYMBOL_chunkexpr = 135, /* chunkexpr */
- YYSYMBOL_reference = 136, /* reference */
- YYSYMBOL_proc = 137, /* proc */
- YYSYMBOL_138_11 = 138, /* $@11 */
- YYSYMBOL_139_12 = 139, /* $@12 */
- YYSYMBOL_140_13 = 140, /* $@13 */
- YYSYMBOL_141_14 = 141, /* $@14 */
- YYSYMBOL_globallist = 142, /* globallist */
- YYSYMBOL_propertylist = 143, /* propertylist */
- YYSYMBOL_instancelist = 144, /* instancelist */
- YYSYMBOL_gotofunc = 145, /* gotofunc */
- YYSYMBOL_gotomovie = 146, /* gotomovie */
- YYSYMBOL_playfunc = 147, /* playfunc */
- YYSYMBOL_148_15 = 148, /* $@15 */
- YYSYMBOL_defn = 149, /* defn */
- YYSYMBOL_150_16 = 150, /* $@16 */
- YYSYMBOL_151_17 = 151, /* $@17 */
- YYSYMBOL_on = 152, /* on */
- YYSYMBOL_153_18 = 153, /* $@18 */
- YYSYMBOL_argname = 154, /* argname */
- YYSYMBOL_argdef = 155, /* argdef */
- YYSYMBOL_endargdef = 156, /* endargdef */
- YYSYMBOL_argstore = 157, /* argstore */
- YYSYMBOL_arglist = 158, /* arglist */
- YYSYMBOL_nonemptyarglist = 159, /* nonemptyarglist */
- YYSYMBOL_list = 160, /* list */
- YYSYMBOL_valuelist = 161, /* valuelist */
- YYSYMBOL_linearlist = 162, /* linearlist */
- YYSYMBOL_proplist = 163, /* proplist */
- YYSYMBOL_proppair = 164 /* proppair */
+ 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_CASTNAME = 12, /* CASTNAME */
+ YYSYMBOL_CASTNUM = 13, /* CASTNUM */
+ YYSYMBOL_FIELDNAME = 14, /* FIELDNAME */
+ YYSYMBOL_FIELDNUM = 15, /* FIELDNUM */
+ YYSYMBOL_INT = 16, /* INT */
+ YYSYMBOL_ARGC = 17, /* ARGC */
+ YYSYMBOL_ARGCNORET = 18, /* ARGCNORET */
+ YYSYMBOL_THEENTITY = 19, /* THEENTITY */
+ YYSYMBOL_THEENTITYWITHID = 20, /* THEENTITYWITHID */
+ YYSYMBOL_THEMENUITEMENTITY = 21, /* THEMENUITEMENTITY */
+ YYSYMBOL_THEMENUITEMSENTITY = 22, /* THEMENUITEMSENTITY */
+ YYSYMBOL_FLOAT = 23, /* FLOAT */
+ YYSYMBOL_THEFUNC = 24, /* THEFUNC */
+ YYSYMBOL_THEFUNCINOF = 25, /* THEFUNCINOF */
+ YYSYMBOL_VARID = 26, /* VARID */
+ YYSYMBOL_STRING = 27, /* STRING */
+ YYSYMBOL_SYMBOL = 28, /* SYMBOL */
+ YYSYMBOL_ENDCLAUSE = 29, /* ENDCLAUSE */
+ YYSYMBOL_tPLAYACCEL = 30, /* tPLAYACCEL */
+ YYSYMBOL_tMETHOD = 31, /* tMETHOD */
+ YYSYMBOL_THEOBJECTPROP = 32, /* THEOBJECTPROP */
+ YYSYMBOL_tCAST = 33, /* tCAST */
+ YYSYMBOL_tFIELD = 34, /* tFIELD */
+ YYSYMBOL_tSCRIPT = 35, /* tSCRIPT */
+ YYSYMBOL_tWINDOW = 36, /* tWINDOW */
+ YYSYMBOL_tDOWN = 37, /* tDOWN */
+ YYSYMBOL_tELSE = 38, /* tELSE */
+ YYSYMBOL_tELSIF = 39, /* tELSIF */
+ YYSYMBOL_tEXIT = 40, /* tEXIT */
+ YYSYMBOL_tGLOBAL = 41, /* tGLOBAL */
+ YYSYMBOL_tGO = 42, /* tGO */
+ YYSYMBOL_tGOLOOP = 43, /* tGOLOOP */
+ YYSYMBOL_tIF = 44, /* tIF */
+ YYSYMBOL_tIN = 45, /* tIN */
+ YYSYMBOL_tINTO = 46, /* tINTO */
+ YYSYMBOL_tMACRO = 47, /* tMACRO */
+ YYSYMBOL_tMOVIE = 48, /* tMOVIE */
+ YYSYMBOL_tNEXT = 49, /* tNEXT */
+ YYSYMBOL_tOF = 50, /* tOF */
+ YYSYMBOL_tPREVIOUS = 51, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 52, /* tPUT */
+ YYSYMBOL_tREPEAT = 53, /* tREPEAT */
+ YYSYMBOL_tSET = 54, /* tSET */
+ YYSYMBOL_tTHEN = 55, /* tTHEN */
+ YYSYMBOL_tTO = 56, /* tTO */
+ YYSYMBOL_tWHEN = 57, /* tWHEN */
+ YYSYMBOL_tWITH = 58, /* tWITH */
+ YYSYMBOL_tWHILE = 59, /* tWHILE */
+ YYSYMBOL_tFACTORY = 60, /* tFACTORY */
+ YYSYMBOL_tOPEN = 61, /* tOPEN */
+ YYSYMBOL_tPLAY = 62, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 63, /* tINSTANCE */
+ YYSYMBOL_tGE = 64, /* tGE */
+ YYSYMBOL_tLE = 65, /* tLE */
+ YYSYMBOL_tEQ = 66, /* tEQ */
+ YYSYMBOL_tNEQ = 67, /* tNEQ */
+ YYSYMBOL_tAND = 68, /* tAND */
+ YYSYMBOL_tOR = 69, /* tOR */
+ YYSYMBOL_tNOT = 70, /* tNOT */
+ YYSYMBOL_tMOD = 71, /* tMOD */
+ YYSYMBOL_tAFTER = 72, /* tAFTER */
+ YYSYMBOL_tBEFORE = 73, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 74, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 75, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 76, /* tSTARTS */
+ YYSYMBOL_tCHAR = 77, /* tCHAR */
+ YYSYMBOL_tITEM = 78, /* tITEM */
+ YYSYMBOL_tLINE = 79, /* tLINE */
+ YYSYMBOL_tWORD = 80, /* tWORD */
+ YYSYMBOL_tSPRITE = 81, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 82, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 83, /* tWITHIN */
+ YYSYMBOL_tTELL = 84, /* tTELL */
+ YYSYMBOL_tPROPERTY = 85, /* tPROPERTY */
+ YYSYMBOL_tON = 86, /* tON */
+ YYSYMBOL_tENDIF = 87, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 88, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 89, /* tENDTELL */
+ 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_ifstmt = 123, /* ifstmt */
+ YYSYMBOL_elseifstmtlist = 124, /* elseifstmtlist */
+ YYSYMBOL_elseifstmt = 125, /* elseifstmt */
+ YYSYMBOL_jumpifz = 126, /* jumpifz */
+ YYSYMBOL_jump = 127, /* jump */
+ YYSYMBOL_varassign = 128, /* varassign */
+ YYSYMBOL_if = 129, /* if */
+ YYSYMBOL_lbl = 130, /* lbl */
+ YYSYMBOL_stmtlist = 131, /* stmtlist */
+ YYSYMBOL_stmtlistline = 132, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 133, /* simpleexprnoparens */
+ YYSYMBOL_134_10 = 134, /* $@10 */
+ YYSYMBOL_simpleexpr = 135, /* simpleexpr */
+ YYSYMBOL_expr = 136, /* expr */
+ YYSYMBOL_chunkexpr = 137, /* chunkexpr */
+ YYSYMBOL_reference = 138, /* reference */
+ YYSYMBOL_proc = 139, /* proc */
+ YYSYMBOL_140_11 = 140, /* $@11 */
+ YYSYMBOL_141_12 = 141, /* $@12 */
+ YYSYMBOL_142_13 = 142, /* $@13 */
+ YYSYMBOL_143_14 = 143, /* $@14 */
+ YYSYMBOL_globallist = 144, /* globallist */
+ YYSYMBOL_propertylist = 145, /* propertylist */
+ YYSYMBOL_instancelist = 146, /* instancelist */
+ YYSYMBOL_gotofunc = 147, /* gotofunc */
+ YYSYMBOL_gotomovie = 148, /* gotomovie */
+ YYSYMBOL_playfunc = 149, /* playfunc */
+ YYSYMBOL_150_15 = 150, /* $@15 */
+ YYSYMBOL_defn = 151, /* defn */
+ YYSYMBOL_152_16 = 152, /* $@16 */
+ YYSYMBOL_153_17 = 153, /* $@17 */
+ YYSYMBOL_on = 154, /* on */
+ YYSYMBOL_155_18 = 155, /* $@18 */
+ YYSYMBOL_argname = 156, /* argname */
+ YYSYMBOL_argdef = 157, /* argdef */
+ YYSYMBOL_endargdef = 158, /* endargdef */
+ YYSYMBOL_argstore = 159, /* argstore */
+ YYSYMBOL_arglist = 160, /* arglist */
+ YYSYMBOL_nonemptyarglist = 161, /* nonemptyarglist */
+ YYSYMBOL_list = 162, /* list */
+ YYSYMBOL_valuelist = 163, /* valuelist */
+ YYSYMBOL_linearlist = 164, /* linearlist */
+ YYSYMBOL_proplist = 165, /* proplist */
+ YYSYMBOL_proppair = 166 /* proppair */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -695,10 +697,10 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 100
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1886
+#define YYLAST 1844
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 103
+#define YYNTOKENS 105
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 62
/* YYNRULES -- Number of rules. */
@@ -707,7 +709,7 @@ union yyalloc
#define YYNSTATES 391
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 342
+#define YYMAXUTOK 344
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -722,15 +724,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 98, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 95, 90, 2,
- 97, 98, 93, 91, 99, 92, 2, 94, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 102, 2,
- 88, 2, 89, 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, 100, 2, 101, 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,
@@ -755,33 +757,33 @@ static const yytype_int8 yytranslate[] =
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
+ 85, 86, 87, 88, 89
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 234, 234, 235, 237, 238, 239, 241, 242, 243,
- 244, 245, 247, 254, 258, 269, 276, 279, 286, 289,
- 296, 303, 310, 317, 323, 330, 341, 352, 359, 367,
- 368, 370, 371, 376, 389, 393, 396, 388, 423, 427,
- 430, 422, 457, 464, 470, 456, 500, 508, 511, 512,
- 513, 515, 517, 519, 526, 534, 535, 537, 543, 547,
- 551, 555, 558, 560, 561, 563, 564, 566, 569, 572,
- 576, 580, 581, 582, 583, 584, 592, 598, 601, 604,
- 610, 611, 612, 613, 619, 619, 624, 627, 636, 637,
- 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
- 649, 650, 651, 652, 653, 654, 655, 656, 658, 661,
- 664, 665, 666, 667, 668, 669, 670, 671, 673, 674,
- 677, 681, 684, 685, 686, 694, 695, 695, 696, 696,
- 697, 697, 698, 701, 704, 710, 710, 715, 718, 722,
- 723, 726, 730, 731, 734, 738, 739, 742, 753, 754,
- 755, 756, 760, 764, 769, 770, 772, 776, 780, 784,
- 784, 814, 814, 820, 821, 821, 827, 835, 841, 841,
- 843, 845, 846, 847, 849, 850, 851, 853, 855, 856,
- 857, 859, 860, 861, 863, 865, 866, 867, 868, 870,
- 871, 873, 874, 876, 880, 884
+ 0, 235, 235, 236, 238, 239, 240, 242, 243, 244,
+ 245, 246, 248, 255, 259, 270, 277, 280, 287, 290,
+ 297, 304, 311, 318, 324, 331, 342, 353, 360, 368,
+ 369, 371, 372, 377, 390, 394, 397, 389, 424, 428,
+ 431, 423, 458, 465, 471, 457, 501, 509, 512, 513,
+ 514, 516, 518, 520, 527, 535, 536, 538, 544, 548,
+ 552, 556, 559, 561, 562, 564, 565, 567, 570, 573,
+ 577, 581, 582, 583, 584, 585, 593, 599, 602, 605,
+ 611, 612, 613, 614, 620, 620, 625, 628, 637, 638,
+ 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
+ 650, 651, 652, 653, 654, 655, 656, 657, 659, 662,
+ 665, 666, 667, 668, 669, 670, 671, 672, 674, 675,
+ 678, 682, 685, 686, 687, 695, 696, 696, 697, 697,
+ 698, 698, 699, 702, 705, 711, 711, 716, 719, 723,
+ 724, 727, 731, 732, 735, 739, 740, 743, 754, 755,
+ 756, 757, 761, 765, 770, 771, 773, 777, 781, 785,
+ 785, 815, 815, 821, 822, 822, 828, 836, 842, 842,
+ 844, 846, 847, 848, 850, 851, 852, 854, 856, 857,
+ 858, 860, 861, 862, 864, 866, 867, 868, 869, 871,
+ 872, 874, 875, 877, 881, 885
};
#endif
@@ -798,14 +800,15 @@ yysymbol_name (yysymbol_kind_t yysymbol)
{
static const char *const yy_sname[] =
{
- "end of file", "error", "invalid token", "UNARY", "CASTREF", "VOID",
- "VAR", "POINT", "RECT", "ARRAY", "OBJECT", "FIELDREF", "LEXERROR",
- "PARRAY", "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",
+ "end of file", "error", "invalid token", "UNARY", "VOID", "VAR",
+ "POINT", "RECT", "ARRAY", "OBJECT", "LEXERROR", "PARRAY", "CASTNAME",
+ "CASTNUM", "FIELDNAME", "FIELDNUM", "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",
@@ -841,13 +844,13 @@ static const yytype_int16 yytoknum[] =
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 60, 62,
- 38, 43, 45, 42, 47, 37, 10, 40, 41, 44,
- 91, 93, 58
+ 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
};
#endif
-#define YYPACT_NINF (-357)
+#define YYPACT_NINF (-352)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -861,46 +864,46 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 362, -82, -357, -357, -357, -357, -357, -357, -357, -34,
- -357, 892, -357, -357, -357, -30, 1012, -14, 188, 55,
- 55, 1038, 931, -357, 1038, -357, -357, 8, -357, 1119,
- -357, -357, -357, -357, 1038, -357, -357, -357, -357, -357,
- -357, 1038, -357, -357, 55, -357, -357, 1038, -357, -12,
- 1038, -357, -357, -357, 1145, 1145, 1145, 1145, 1038, -357,
- 17, -357, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 148, -63, -357, -357, 1230, -357, -357, -357, -357,
- 55, -357, 55, 1197, 55, -357, 5, 1038, 1038, 6,
- 27, 1, -357, 1607, 1230, -357, 55, 1527, 55, 55,
- -357, 362, 1038, 1658, -357, 1779, 55, -357, 55, -9,
- -357, -357, 1038, -357, -357, -357, -357, -357, 1779, 1038,
- -357, 1263, 1296, 1329, 1362, 1746, -357, -357, 1709, 11,
- 12, -357, -87, 1779, 19, 23, 24, -357, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, -357, -357, 1038, -2,
- -2, -2, -31, 1038, 1038, 1038, 1568, 78, 1038, 1038,
- 1038, 1038, 1038, 1038, -357, 29, -357, -357, -357, 35,
- -357, -357, -357, -32, 1620, 9, 1038, 83, -357, 41,
- 46, 48, 55, -357, 1779, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, -357, 1038, 1038, 1038, -357,
- 1038, 204, 59, 47, -45, -45, -45, -45, 1792, 1792,
- -357, -53, -45, -45, -45, -45, -53, -43, -43, -357,
- -357, 55, 103, -357, -357, -357, -357, -357, -357, 1038,
- 1038, 1779, 1779, 1779, 1038, 1038, 55, 1779, 1779, 1779,
- 1779, 1779, 1779, 55, 493, 716, 55, -357, -357, -357,
- -357, 650, 55, -357, -357, -357, -357, 1395, -357, 1428,
- -357, 1461, -357, 1494, -357, -357, 1779, 1779, 1779, 1779,
- 11, 12, 51, -357, -357, -357, -357, 53, 1038, 1779,
- 1164, -357, 1779, 25, 1038, -357, -357, -357, -357, 67,
- -357, 1038, -357, -357, 563, 616, 1038, 1038, 1038, 1038,
- 1038, -357, 1779, -357, -357, -357, 750, 31, -357, 80,
- 455, 1671, 70, -357, 156, -357, -357, -357, -357, -357,
- 86, 616, -357, -357, -357, -357, 1038, 1038, -357, -357,
- 1038, -357, 56, 55, -357, -357, -357, 131, 151, 101,
- 1779, 1779, -357, 816, 1038, -357, 104, -357, 91, -357,
- 1038, 137, -357, -357, 1779, -357, 55, -357, 1779, 1038,
- 113, 146, -357, 750, -357, 1779, -357, 650, 116, -357,
- -357, -357, -357, 750, -357, -357, 117, 750, -357, 118,
- -357
+ 461, -88, -352, -352, -352, -352, -352, -352, -352, -39,
+ -352, 855, -352, -352, -352, -27, 975, -8, 186, 53,
+ 53, 1001, 894, -352, 1001, -352, -352, 6, -352, 1082,
+ -352, -352, -352, -352, 1001, -352, -352, -352, -352, -352,
+ -352, 1001, -352, -352, 53, -352, -352, 1001, -352, -16,
+ 1001, -352, -352, -352, 1108, 1108, 1108, 1108, 1001, -352,
+ 37, -352, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 146, -36, -352, -352, 1232, -352, -352, -352, -352,
+ 53, -352, 53, 1199, 53, -352, -45, 1001, 1001, -41,
+ -13, 40, -352, 1576, 1232, -352, 53, 1496, 53, 53,
+ -352, 461, 1001, 1627, -352, 1748, 53, -352, 53, 12,
+ -352, -352, 1001, -352, -352, -352, -352, -352, 1748, 1001,
+ -352, 1265, 1298, 1331, 1364, 1715, -352, -352, 1678, 10,
+ 18, -352, -34, 1748, 4, 19, 22, -352, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, -352, -352, 1001, -4,
+ -4, -4, 15, 1001, 1001, 1001, 1537, 76, 1001, 1001,
+ 1001, 1001, 1001, 1001, -352, 27, -352, -352, -352, 32,
+ -352, -352, -352, 31, 1589, 34, 1001, 81, -352, 39,
+ 44, 46, 53, -352, 1748, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, -352, 1001, 1001, 1001, -352,
+ 1001, 202, 57, 45, -47, -47, -47, -47, 363, 363,
+ -352, -54, -47, -47, -47, -47, -54, -59, -59, -352,
+ -352, 53, 101, -352, -352, -352, -352, -352, -352, 1001,
+ 1001, 1748, 1748, 1748, 1001, 1001, 53, 1748, 1748, 1748,
+ 1748, 1748, 1748, 53, 1198, 703, 53, -352, -352, -352,
+ -352, 637, 53, -352, -352, -352, -352, 462, -352, 1397,
+ -352, 1430, -352, 1463, -352, -352, 1748, 1748, 1748, 1748,
+ 10, 18, 49, -352, -352, -352, -352, 51, 1001, 1748,
+ 1127, -352, 1748, 23, 1001, -352, -352, -352, -352, 65,
+ -352, 1001, -352, -352, 561, 599, 1001, 1001, 1001, 1001,
+ 1001, -352, 1748, -352, -352, -352, 741, 3, -352, 78,
+ 362, 1640, 68, -352, 154, -352, -352, -352, -352, -352,
+ 84, 599, -352, -352, -352, -352, 1001, 1001, -352, -352,
+ 1001, -352, 28, 53, -352, -352, -352, 129, 149, 99,
+ 1748, 1748, -352, 779, 1001, -352, 102, -352, 89, -352,
+ 1001, 135, -352, -352, 1748, -352, 53, -352, 1748, 1001,
+ 111, 144, -352, 741, -352, 1748, -352, 637, 114, -352,
+ -352, -352, -352, 741, -352, -352, 115, 741, -352, 116,
+ -352
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -953,13 +956,13 @@ static const yytype_uint8 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -357, -357, 107, 0, -357, -44, 2, -357, -357, -357,
- -357, -357, -357, -357, -357, -357, -356, 36, -357, -357,
- -357, -237, -326, -106, -357, -7, -248, -357, 76, -357,
- 277, 130, 16, -357, -357, -357, -357, -357, -357, 21,
- -41, -20, -357, -17, -357, -357, -357, -357, -357, -357,
- -357, -357, -107, -357, -258, -38, -303, -357, -357, -357,
- -357, 30
+ -352, -352, 107, 0, -352, -44, 2, -352, -352, -352,
+ -352, -352, -352, -352, -352, -352, -351, 35, -352, -352,
+ -352, -237, -326, -106, -352, -7, -248, -352, 36, -352,
+ 277, 130, 16, -352, -352, -352, -352, -352, -352, 41,
+ -42, -19, -352, -17, -352, -352, -352, -352, -352, -352,
+ -352, -352, -107, -352, -257, -38, -302, -352, -352, -352,
+ -352, 30
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -979,20 +982,20 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 29, 191, 32, 107, 291, 95, 305, 330, 100, 349,
- 138, 373, 239, 302, 40, 208, 145, 43, 90, 91,
- 92, 81, 2, 383, 145, -24, 145, 146, 387, 54,
- 55, 7, 8, 240, 138, 108, 112, 352, 152, 153,
- 154, 155, 84, 85, 109, 151, 152, 153, 154, 155,
- 154, 155, -24, 331, 172, 385, 324, 325, 156, 164,
- 168, -24, -24, 119, 185, 138, 257, 258, 335, 165,
- 169, 132, 339, 63, 64, 65, 66, 174, 163, 2,
- 157, 170, 158, 345, 162, 336, 5, 6, 7, 8,
- 192, 171, 353, 354, 145, 337, 175, 146, 179, 181,
- 213, 29, 183, 32, 101, 363, 188, 259, 188, 359,
- -24, -24, -24, 206, 207, 151, 152, 153, 154, 155,
- 209, -24, 210, 211, 287, 378, 246, 371, 253, 381,
- 114, 115, 116, 117, 256, 386, 261, 379, 212, 389,
+ 29, 191, 32, 107, 291, 95, 100, 305, 330, 349,
+ 40, 164, 145, 302, 43, 168, 373, 145, 90, 91,
+ 92, 165, 2, -24, 145, 169, 81, 146, 383, 54,
+ 55, 7, 8, 387, 112, 108, 154, 155, 352, 152,
+ 153, 154, 155, 170, 109, 151, 152, 153, 154, 155,
+ 84, 85, -24, 171, 331, 385, 324, 325, 156, 336,
+ 239, -24, -24, 138, 185, 138, 353, 354, 335, 337,
+ 208, 132, 339, 63, 64, 65, 66, 174, 163, 2,
+ 157, 240, 158, 345, 162, 119, 5, 6, 7, 8,
+ 114, 115, 116, 117, 145, 172, 175, 146, 179, 181,
+ 213, 29, 183, 32, 101, 363, 188, 209, 188, 359,
+ -24, -24, -24, 192, 206, 151, 152, 153, 154, 155,
+ 210, -24, 207, 211, 287, 378, 246, 371, 253, 381,
+ 138, 257, 258, 256, 259, 386, 261, 379, 212, 389,
262, 75, 263, 384, 264, 286, 83, 288, 260, 311,
231, 93, 94, 208, 97, 303, 138, 284, 285, 233,
235, 237, 45, 320, 105, 46, 47, 338, 341, 48,
@@ -1000,9 +1003,9 @@ static const yytype_int16 yytable[] =
55, 56, 57, 343, 344, 360, 361, 362, 118, 365,
366, 369, 109, 121, 122, 123, 124, 125, 376, 377,
128, 133, 382, 388, 390, 86, 87, 88, 182, 334,
- 296, 282, 2, 265, 255, 300, 62, 166, 89, 5,
+ 296, 282, 2, 255, 300, 0, 62, 166, 89, 5,
6, 7, 8, 63, 64, 65, 66, 67, 2, 280,
- 281, 188, 184, 295, 0, 5, 6, 7, 8, 68,
+ 281, 188, 184, 265, 295, 5, 6, 7, 8, 68,
69, 283, 0, 0, 0, 70, 294, 0, 71, 194,
131, 0, 0, 175, 29, 29, 179, 0, 0, 0,
0, 29, 188, 0, 0, 0, 0, 0, 0, 214,
@@ -1015,189 +1018,185 @@ static const yytype_int16 yytable[] =
271, 29, 273, 0, 0, 356, 276, 277, 278, 120,
279, 0, 0, 357, 0, 126, 127, 0, 0, 0,
0, 0, 0, 29, 0, 0, 370, 0, 0, 0,
- 0, 0, -4, 1, 0, 167, 372, 0, 0, 289,
+ 0, 0, -65, 1, 0, 167, 372, 0, 0, 289,
290, 0, 0, 29, 292, 293, 0, 29, 0, 0,
- 0, 0, 0, 29, 0, 0, 2, 29, 0, 193,
- 3, 4, 0, 5, 6, 7, 8, 0, 0, 0,
- 9, 10, 11, 12, 13, 0, 0, 14, 0, 15,
- 0, 0, 16, 17, 18, 0, 0, 19, 312, 0,
- 20, 21, 22, 23, 0, 0, 0, 0, 0, 0,
- 0, 321, 0, 0, 0, 232, 0, 0, 0, 0,
- 321, 0, 0, 0, 24, 25, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, -65, 1, 0, -4, 0,
- 0, 0, 0, 0, 0, 0, 350, 351, 0, 0,
- 321, 0, 266, 0, 268, 0, 270, 0, 272, 2,
- 274, 275, -65, 3, 364, 0, 5, 6, 7, 8,
- 368, -65, -65, 9, 10, 11, 12, 13, 0, 375,
+ 0, 0, 0, 29, 0, 0, 0, 29, 2, 193,
+ 0, -65, 3, 0, 0, 5, 6, 7, 8, 0,
+ -65, -65, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 15, 0, 0, 16, 17, 18, 0, 312, 19,
+ 0, 0, 0, 21, 22, 23, 0, 139, 140, 141,
+ 142, 321, 0, 0, 145, 232, 0, 146, 147, 148,
+ 321, 0, 0, 0, 0, 0, 24, 25, 0, -65,
+ -65, -65, 0, 149, 150, 151, 152, 153, 154, 155,
+ -65, -4, 1, 0, 0, 0, 350, 351, 0, 0,
+ 321, 0, 266, 0, 268, 0, 270, 0, 272, 0,
+ 274, 275, 0, 0, 364, 0, 0, 2, 0, 0,
+ 368, 3, 4, 0, 5, 6, 7, 8, 0, 375,
+ 0, 9, 10, 11, 12, 13, 0, 0, 14, 0,
+ 15, 0, 306, 16, 17, 18, 0, 0, 19, 0,
+ 0, 20, 21, 22, 23, 0, 139, 140, 141, 142,
+ 143, 144, 0, 145, 0, 0, 146, 147, 148, 0,
+ 0, 0, 0, 0, 0, 24, 25, 26, 0, 0,
+ 0, 0, 149, 150, 151, 152, 153, 154, 155, -4,
+ 0, -65, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 317, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 326, 327, 328, 329, 2, 0, 0,
+ -65, 3, 0, 0, 5, 6, 7, 8, 0, -65,
+ 1, 9, 10, 11, 12, 13, 0, 0, 0, 0,
+ 15, 0, 0, 16, 17, 18, 0, 0, 19, 0,
+ 0, 0, 21, 22, 23, 2, 0, 0, 0, 3,
+ 0, 0, 5, 6, 7, 8, 0, 0, 1, 9,
+ 10, 11, 12, 13, 0, 24, 25, 0, 15, 0,
+ 0, 16, 17, 18, 0, 0, 19, 0, 0, -65,
+ 21, 22, 23, 2, 0, 0, 0, 3, 0, 0,
+ 5, 6, 7, 8, 0, -65, -65, 9, 10, 11,
+ 12, 13, 0, 24, 25, 0, 15, 0, 0, 16,
+ 17, 18, 0, 0, 19, 0, 0, -65, 21, 22,
+ 23, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 24, 25, 0, -65, 0, 0, 0, 0, 2,
+ 0, 0, 0, 3, 0, -65, 5, 6, 7, 8,
+ 0, 0, 1, 9, 10, 11, 12, 13, 0, 0,
0, 0, 15, 0, 0, 16, 17, 18, 0, 0,
19, 0, 0, 0, 21, 22, 23, 2, 0, 0,
0, 3, 0, 0, 5, 6, 7, 8, 0, 0,
- 0, 9, 10, 11, 12, 0, 0, 24, 25, 0,
- -65, -65, -65, 16, 0, 18, 0, 0, 0, 0,
- 0, -65, 21, 22, 23, 0, 0, 0, 0, 0,
- 0, 0, 0, -65, 1, 0, 0, 0, 0, 0,
- 0, 317, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 326, 327, 328, 329, 2, 0, 0,
- -65, 3, 0, 0, 5, 6, 7, 8, 0, 0,
- 0, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 15, 0, 0, 16, 17, 18, -65, 1, 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, 1, 0, 0, 9, 10, 11, 12, 13, -65,
- 0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 2, 21, 22, 23, 3, 0,
- 0, 5, 6, 7, 8, 0, -65, -65, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 15, 24, 25,
- 16, 17, 18, 0, 0, 19, 0, 0, 0, 21,
- 22, 23, -65, 0, 0, 0, 0, 1, 0, 0,
+ 1, 9, 10, 11, 12, 13, 0, 24, 25, 0,
+ 15, 0, -65, 16, 17, 18, 0, 0, 19, 0,
+ 0, -65, 21, 22, 23, 2, 0, 0, 0, 3,
+ 0, 0, 5, 6, 7, 8, 0, 0, 0, 9,
+ 10, 11, 12, 13, 0, 24, 25, 0, 15, -65,
+ 0, 16, 17, 18, 0, 0, 19, 0, 0, -65,
+ 21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 25, 0, -65, 0, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, -65, 5, 6, 7,
- 8, 1, 0, 0, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 2, 21, 22, 23, 3, 0,
+ 0, 0, 0, 24, 25, 0, -65, 0, 0, 0,
+ 0, 45, 0, 0, 46, 47, 0, -65, 48, 49,
+ 50, 2, 51, 52, 0, 0, 0, 53, 54, 55,
+ 56, 57, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 58, 59, 60, 61, 0, 0, 0,
+ 45, 0, 0, 46, 47, 0, 0, 48, 49, 50,
+ 2, 51, 52, 0, 0, 62, 53, 54, 55, 56,
+ 57, 0, 63, 64, 65, 66, 67, 0, 0, 0,
+ 0, 0, 58, 0, 60, 0, 0, 0, 68, 69,
+ 0, 0, 0, 0, 70, 0, 0, 71, 0, 0,
+ 0, 0, 0, 0, 62, 0, 0, 0, 0, 0,
+ 0, 63, 64, 65, 66, 67, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 68, 69, 0,
+ 0, 45, 0, 70, 46, 47, 71, 82, 48, 49,
+ 50, 2, 51, 52, 0, 0, 0, 53, 54, 55,
+ 56, 57, 0, 0, 0, 0, 0, 45, 0, 0,
+ 46, 47, 0, 0, 48, 49, 50, 2, 51, 52,
+ 0, 0, 0, 53, 54, 55, 56, 57, 0, 0,
+ 0, 0, 0, 0, 0, 62, 0, 0, 0, 0,
+ 0, 0, 63, 64, 65, 66, 67, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 69,
+ 0, 62, 0, 0, 70, 0, 0, 71, 63, 64,
+ 65, 66, 67, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 69, 0, 0, 45, 0,
+ 70, 46, 47, 71, 0, 48, 49, 50, 2, 51,
+ 52, 0, 0, 0, 53, 54, 55, 56, 57, 0,
+ 0, 0, 0, 0, 45, 0, 0, 46, 47, 0,
+ 0, 48, 49, 50, 2, 51, 52, 0, 0, 0,
+ 53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
+ 0, 0, 62, 0, 0, 0, 0, 0, 0, 63,
+ 64, 65, 66, 67, -38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 68, 69, 0, 62, 0,
+ 0, 102, 0, 0, 71, 63, 64, 65, 66, 67,
+ 0, 139, 140, 141, 142, 143, 144, 0, 145, 0,
+ 0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
+ 71, 0, 0, 0, 0, 0, 0, 149, 150, 151,
+ 152, 153, 154, 155, 2, 0, 0, 0, 3, 0,
0, 5, 6, 7, 8, 0, 0, 0, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 15, 24, 25,
- 16, 17, 18, -65, 0, 19, 0, 0, 0, 21,
- 22, 23, -65, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 25, 0, 0, -65, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, -65, 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
- 0, -65, 0, 0, 0, 0, 45, 0, 0, 46,
- 47, 0, -65, 48, 49, 50, 2, 51, 52, 0,
- 0, 0, 53, 54, 55, 56, 57, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 58, 59,
- 60, 61, 0, 0, 0, 45, 0, 0, 46, 47,
- 0, 0, 48, 49, 50, 2, 51, 52, 0, 0,
- 62, 53, 54, 55, 56, 57, 0, 63, 64, 65,
- 66, 67, 0, 0, 0, 0, 0, 58, 0, 60,
- 0, 0, 0, 68, 69, 0, 0, 0, 0, 70,
- 0, 0, 71, 0, 0, 0, 0, 0, 0, 62,
- 0, 0, 0, 0, 0, 0, 63, 64, 65, 66,
- 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 68, 69, 0, 0, 45, 0, 70, 46,
- 47, 71, 82, 48, 49, 50, 2, 51, 52, 0,
- 0, 0, 53, 54, 55, 56, 57, 0, 0, 0,
- 0, 0, 45, 0, 0, 46, 47, 0, 0, 48,
- 49, 50, 2, 51, 52, 0, 0, 0, 53, 54,
- 55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
- 62, 0, 0, 0, 0, 0, 0, 63, 64, 65,
- 66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 68, 69, 0, 62, 0, 0, 70,
- 0, 0, 71, 63, 64, 65, 66, 67, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,
- 69, 0, 0, 45, 0, 70, 46, 47, 71, 0,
- 48, 49, 50, 2, 51, 52, 0, 0, 0, 53,
- 54, 55, 56, 57, 0, 0, 0, 0, 0, 45,
- 0, 0, 46, 47, 0, 0, 48, 49, 50, 2,
- 51, 52, 0, 0, 0, 53, 54, 55, 56, 57,
- 0, 0, 0, 0, 0, 0, 0, 62, 0, 0,
- 0, 0, 0, 0, 63, 64, 65, 66, 67, -38,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 69, 0, 62, 0, 0, 102, 0, 0, 71,
- 63, 64, 65, 66, 67, 0, 139, 140, 141, 142,
+ 11, 12, 0, 0, 0, 159, 0, 0, 0, 0,
+ 16, 0, 18, 0, 0, 0, 0, 0, 0, 21,
+ 22, 23, 0, 139, 140, 141, 142, 143, 144, 0,
+ 145, 160, 161, 146, 147, 148, 0, 0, 0, 0,
+ 58, 0, 60, 25, 0, 0, 0, 0, 0, 149,
+ 150, 151, 152, 153, 154, 155, 139, 140, 141, 142,
143, 144, 0, 145, 0, 0, 146, 147, 148, 0,
- 0, 159, 0, 0, 0, 71, 0, 0, 0, 0,
- 0, 0, 149, 150, 151, 152, 153, 154, 155, 139,
- 140, 141, 142, 143, 144, 0, 145, 160, 161, 146,
- 147, 148, 0, 0, 0, 0, 58, 0, 60, 0,
- 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
+ 0, 0, 0, 0, 0, 195, 0, 0, 0, 0,
+ 0, 196, 149, 150, 151, 152, 153, 154, 155, 139,
+ 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
+ 147, 148, 0, 0, 0, 0, 0, 0, 197, 0,
+ 0, 0, 0, 0, 198, 149, 150, 151, 152, 153,
154, 155, 139, 140, 141, 142, 143, 144, 0, 145,
0, 0, 146, 147, 148, 0, 0, 0, 0, 0,
- 0, 195, 0, 0, 0, 0, 0, 196, 149, 150,
+ 0, 199, 0, 0, 0, 0, 0, 200, 149, 150,
151, 152, 153, 154, 155, 139, 140, 141, 142, 143,
144, 0, 145, 0, 0, 146, 147, 148, 0, 0,
- 0, 0, 0, 0, 197, 0, 0, 0, 0, 0,
- 198, 149, 150, 151, 152, 153, 154, 155, 139, 140,
+ 0, 0, 0, 0, 201, 0, 0, 0, 0, 0,
+ 202, 149, 150, 151, 152, 153, 154, 155, 139, 140,
141, 142, 143, 144, 0, 145, 0, 0, 146, 147,
- 148, 0, 0, 0, 0, 0, 0, 199, 0, 0,
- 0, 0, 0, 200, 149, 150, 151, 152, 153, 154,
+ 148, 0, 0, 0, 0, 0, 0, 307, 0, 0,
+ 0, 0, 0, 0, 149, 150, 151, 152, 153, 154,
155, 139, 140, 141, 142, 143, 144, 0, 145, 0,
0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
- 201, 0, 0, 0, 0, 0, 202, 149, 150, 151,
+ 308, 0, 0, 0, 0, 0, 0, 149, 150, 151,
152, 153, 154, 155, 139, 140, 141, 142, 143, 144,
0, 145, 0, 0, 146, 147, 148, 0, 0, 0,
- 0, 0, 0, 306, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 309, 0, 0, 0, 0, 0, 0,
149, 150, 151, 152, 153, 154, 155, 139, 140, 141,
142, 143, 144, 0, 145, 0, 0, 146, 147, 148,
- 0, 0, 0, 0, 0, 0, 307, 0, 0, 0,
- 0, 0, 0, 149, 150, 151, 152, 153, 154, 155,
- 139, 140, 141, 142, 143, 144, 0, 145, 0, 0,
- 146, 147, 148, 0, 0, 0, 0, 0, 0, 308,
- 0, 0, 0, 0, 0, 0, 149, 150, 151, 152,
- 153, 154, 155, 139, 140, 141, 142, 143, 144, 0,
- 145, 0, 0, 146, 147, 148, 0, 0, 0, 0,
- 0, 0, 309, 0, 0, 0, 0, 0, 0, 149,
- 150, 151, 152, 153, 154, 155, 139, 140, 141, 142,
- 143, 144, 0, 145, 0, 0, 146, 147, 148, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 177, 149, 150, 151, 152, 153, 154, 155, 139,
- 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
- 147, 148, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
- 154, 155, 244, 178, 0, 0, 0, 0, 0, 0,
- 139, 140, 245, 142, 143, 144, 0, 145, 0, 0,
+ 0, 0, 177, 149, 150, 151, 152, 153, 154, 155,
+ 139, 140, 141, 142, 143, 144, 0, 145, 0, 0,
146, 147, 148, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 149, 150, 151, 152,
- 153, 154, 155, 173, 0, 0, 0, 0, 0, 139,
- 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
- 147, 148, 139, 140, 141, 142, 143, 144, 0, 145,
- 0, 0, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 0, 0, 0, 0, 0, 0, 149, 150,
- 151, 152, 153, 154, 155, 0, 0, 0, 205, 186,
+ 153, 154, 155, 244, 178, 0, 0, 0, 0, 0,
+ 0, 139, 140, 245, 142, 143, 144, 0, 145, 0,
+ 0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 149, 150, 151,
+ 152, 153, 154, 155, 173, 0, 0, 0, 0, 0,
139, 140, 141, 142, 143, 144, 0, 145, 0, 0,
146, 147, 148, 139, 140, 141, 142, 143, 144, 0,
145, 0, 0, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 0, 0, 0, 0, 186, 0, 149,
- 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
- 340, 139, 140, 141, 142, 143, 144, 0, 145, 0,
- 0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 149, 150, 151,
- 152, 153, 154, 155, 0, 0, 0, 205, 139, 140,
- 141, 142, 143, 144, 0, 145, 0, 0, 146, 147,
- 148, 0, 0, 0, 0, 0, 203, 204, 0, 0,
- 0, 0, 0, 0, 149, 150, 151, 152, 153, 154,
- 155, 139, 140, 141, 142, 143, 144, 0, 145, 0,
- 0, 146, 147, 148, 139, 140, 141, 142, 0, 0,
+ 153, 154, 155, 0, 0, 0, 0, 0, 0, 149,
+ 150, 151, 152, 153, 154, 155, 0, 0, 0, 205,
+ 186, 139, 140, 141, 142, 143, 144, 0, 145, 0,
+ 0, 146, 147, 148, 139, 140, 141, 142, 143, 144,
0, 145, 0, 0, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
- 149, 150, 151, 152, 153, 154, 155
+ 152, 153, 154, 155, 0, 0, 0, 0, 186, 0,
+ 149, 150, 151, 152, 153, 154, 155, 0, 0, 0,
+ 0, 340, 139, 140, 141, 142, 143, 144, 0, 145,
+ 0, 0, 146, 147, 148, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 149, 150,
+ 151, 152, 153, 154, 155, 0, 0, 0, 205, 139,
+ 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
+ 147, 148, 0, 0, 0, 0, 0, 203, 204, 0,
+ 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
+ 154, 155, 139, 140, 141, 142, 143, 144, 0, 145,
+ 0, 0, 146, 147, 148, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 149, 150,
+ 151, 152, 153, 154, 155
};
static const yytype_int16 yycheck[] =
{
- 0, 108, 0, 41, 241, 22, 264, 310, 0, 335,
- 97, 367, 43, 261, 96, 102, 69, 51, 18, 19,
- 20, 51, 24, 379, 69, 0, 69, 72, 384, 31,
- 32, 33, 34, 64, 97, 42, 48, 340, 91, 92,
- 93, 94, 56, 57, 44, 90, 91, 92, 93, 94,
- 93, 94, 27, 311, 53, 381, 304, 305, 75, 54,
- 54, 36, 37, 46, 102, 97, 98, 99, 316, 64,
- 64, 71, 320, 75, 76, 77, 78, 94, 85, 24,
- 80, 54, 82, 331, 84, 54, 31, 32, 33, 34,
- 99, 64, 36, 37, 69, 64, 96, 72, 98, 99,
- 138, 101, 102, 101, 96, 353, 106, 98, 108, 346,
- 85, 86, 87, 102, 102, 90, 91, 92, 93, 94,
- 101, 96, 99, 99, 231, 373, 48, 364, 99, 377,
- 54, 55, 56, 57, 99, 383, 53, 374, 138, 387,
- 99, 11, 96, 380, 96, 98, 16, 44, 186, 96,
- 157, 21, 22, 102, 24, 262, 97, 98, 99, 159,
- 160, 161, 14, 96, 34, 17, 18, 87, 98, 21,
- 22, 23, 24, 25, 26, 159, 160, 161, 30, 31,
- 32, 33, 34, 27, 98, 54, 35, 86, 58, 85,
- 99, 54, 192, 63, 64, 65, 66, 67, 85, 53,
- 70, 71, 86, 86, 86, 17, 18, 19, 101, 315,
- 254, 211, 24, 192, 178, 256, 68, 87, 30, 31,
- 32, 33, 34, 75, 76, 77, 78, 79, 24, 25,
- 26, 231, 102, 253, -1, 31, 32, 33, 34, 91,
- 92, 211, -1, -1, -1, 97, 246, -1, 100, 119,
- 102, -1, -1, 253, 254, 255, 256, -1, -1, -1,
+ 0, 108, 0, 41, 241, 22, 0, 264, 310, 335,
+ 98, 56, 71, 261, 53, 56, 367, 71, 18, 19,
+ 20, 66, 26, 0, 71, 66, 53, 74, 379, 33,
+ 34, 35, 36, 384, 50, 42, 95, 96, 340, 93,
+ 94, 95, 96, 56, 44, 92, 93, 94, 95, 96,
+ 58, 59, 29, 66, 311, 381, 304, 305, 75, 56,
+ 45, 38, 39, 99, 102, 99, 38, 39, 316, 66,
+ 104, 71, 320, 77, 78, 79, 80, 94, 85, 26,
+ 80, 66, 82, 331, 84, 48, 33, 34, 35, 36,
+ 54, 55, 56, 57, 71, 55, 96, 74, 98, 99,
+ 138, 101, 102, 101, 98, 353, 106, 103, 108, 346,
+ 87, 88, 89, 101, 104, 92, 93, 94, 95, 96,
+ 101, 98, 104, 101, 231, 373, 50, 364, 101, 377,
+ 99, 100, 101, 101, 100, 383, 55, 374, 138, 387,
+ 101, 11, 98, 380, 98, 100, 16, 46, 186, 98,
+ 157, 21, 22, 104, 24, 262, 99, 100, 101, 159,
+ 160, 161, 16, 98, 34, 19, 20, 89, 100, 23,
+ 24, 25, 26, 27, 28, 159, 160, 161, 32, 33,
+ 34, 35, 36, 29, 100, 56, 37, 88, 58, 87,
+ 101, 56, 192, 63, 64, 65, 66, 67, 87, 55,
+ 70, 71, 88, 88, 88, 19, 20, 21, 101, 315,
+ 254, 211, 26, 178, 256, -1, 70, 87, 32, 33,
+ 34, 35, 36, 77, 78, 79, 80, 81, 26, 27,
+ 28, 231, 102, 192, 253, 33, 34, 35, 36, 93,
+ 94, 211, -1, -1, -1, 99, 246, -1, 102, 119,
+ 104, -1, -1, 253, 254, 255, 256, -1, -1, -1,
-1, 261, 262, -1, -1, -1, -1, -1, -1, 139,
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, -1, -1, -1, 296,
@@ -1210,228 +1209,224 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 353, -1, -1, 363, -1, -1, -1,
-1, -1, 0, 1, -1, 88, 366, -1, -1, 239,
240, -1, -1, 373, 244, 245, -1, 377, -1, -1,
- -1, -1, -1, 383, -1, -1, 24, 387, -1, 112,
- 28, 29, -1, 31, 32, 33, 34, -1, -1, -1,
- 38, 39, 40, 41, 42, -1, -1, 45, -1, 47,
- -1, -1, 50, 51, 52, -1, -1, 55, 288, -1,
- 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
- -1, 301, -1, -1, -1, 158, -1, -1, -1, -1,
- 310, -1, -1, -1, 82, 83, 84, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, 1, -1, 96, -1,
- -1, -1, -1, -1, -1, -1, 336, 337, -1, -1,
- 340, -1, 195, -1, 197, -1, 199, -1, 201, 24,
- 203, 204, 27, 28, 354, -1, 31, 32, 33, 34,
- 360, 36, 37, 38, 39, 40, 41, 42, -1, 369,
- -1, -1, 47, -1, -1, 50, 51, 52, -1, -1,
- 55, -1, -1, -1, 59, 60, 61, 24, -1, -1,
- -1, 28, -1, -1, 31, 32, 33, 34, -1, -1,
- -1, 38, 39, 40, 41, -1, -1, 82, 83, -1,
- 85, 86, 87, 50, -1, 52, -1, -1, -1, -1,
- -1, 96, 59, 60, 61, -1, -1, -1, -1, -1,
- -1, -1, -1, 0, 1, -1, -1, -1, -1, -1,
- -1, 294, -1, -1, -1, -1, 83, -1, -1, -1,
- -1, -1, -1, 306, 307, 308, 309, 24, -1, -1,
- 27, 28, -1, -1, 31, 32, 33, 34, -1, -1,
- -1, 38, 39, 40, 41, 42, -1, -1, -1, -1,
- 47, -1, -1, 50, 51, 52, 0, 1, 55, -1,
- -1, -1, 59, 60, 61, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 24, -1, -1, -1, 28, 82, 83, 31, 32, 33,
- 34, 1, -1, -1, 38, 39, 40, 41, 42, 96,
- -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, 24, 59, 60, 61, 28, -1,
- -1, 31, 32, 33, 34, -1, 36, 37, 38, 39,
- 40, 41, 42, -1, -1, -1, -1, 47, 82, 83,
- 50, 51, 52, -1, -1, 55, -1, -1, -1, 59,
- 60, 61, 96, -1, -1, -1, -1, 1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 82, 83, -1, 85, -1, -1, -1, -1,
- 24, -1, -1, -1, 28, -1, 96, 31, 32, 33,
- 34, 1, -1, -1, 38, 39, 40, 41, 42, -1,
- -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, 24, 59, 60, 61, 28, -1,
- -1, 31, 32, 33, 34, -1, -1, -1, 38, 39,
- 40, 41, 42, -1, -1, -1, -1, 47, 82, 83,
- 50, 51, 52, 87, -1, 55, -1, -1, -1, 59,
- 60, 61, 96, -1, -1, -1, -1, 1, -1, -1,
+ -1, -1, -1, 383, -1, -1, -1, 387, 26, 112,
+ -1, 29, 30, -1, -1, 33, 34, 35, 36, -1,
+ 38, 39, 40, 41, 42, 43, 44, -1, -1, -1,
+ -1, 49, -1, -1, 52, 53, 54, -1, 288, 57,
+ -1, -1, -1, 61, 62, 63, -1, 64, 65, 66,
+ 67, 301, -1, -1, 71, 158, -1, 74, 75, 76,
+ 310, -1, -1, -1, -1, -1, 84, 85, -1, 87,
+ 88, 89, -1, 90, 91, 92, 93, 94, 95, 96,
+ 98, 0, 1, -1, -1, -1, 336, 337, -1, -1,
+ 340, -1, 195, -1, 197, -1, 199, -1, 201, -1,
+ 203, 204, -1, -1, 354, -1, -1, 26, -1, -1,
+ 360, 30, 31, -1, 33, 34, 35, 36, -1, 369,
+ -1, 40, 41, 42, 43, 44, -1, -1, 47, -1,
+ 49, -1, 50, 52, 53, 54, -1, -1, 57, -1,
+ -1, 60, 61, 62, 63, -1, 64, 65, 66, 67,
+ 68, 69, -1, 71, -1, -1, 74, 75, 76, -1,
+ -1, -1, -1, -1, -1, 84, 85, 86, -1, -1,
+ -1, -1, 90, 91, 92, 93, 94, 95, 96, 98,
+ -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 294, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 306, 307, 308, 309, 26, -1, -1,
+ 29, 30, -1, -1, 33, 34, 35, 36, -1, 0,
+ 1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
+ 49, -1, -1, 52, 53, 54, -1, -1, 57, -1,
+ -1, -1, 61, 62, 63, 26, -1, -1, -1, 30,
+ -1, -1, 33, 34, 35, 36, -1, -1, 1, 40,
+ 41, 42, 43, 44, -1, 84, 85, -1, 49, -1,
+ -1, 52, 53, 54, -1, -1, 57, -1, -1, 98,
+ 61, 62, 63, 26, -1, -1, -1, 30, -1, -1,
+ 33, 34, 35, 36, -1, 38, 39, 40, 41, 42,
+ 43, 44, -1, 84, 85, -1, 49, -1, -1, 52,
+ 53, 54, -1, -1, 57, -1, -1, 98, 61, 62,
+ 63, -1, -1, -1, 1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 82, 83, -1, -1, 86, -1, -1, -1,
- 24, -1, -1, -1, 28, -1, 96, 31, 32, 33,
- 34, -1, -1, -1, 38, 39, 40, 41, 42, -1,
- -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, -1, 59, 60, 61, -1, -1,
+ -1, 84, 85, -1, 87, -1, -1, -1, -1, 26,
+ -1, -1, -1, 30, -1, 98, 33, 34, 35, 36,
+ -1, -1, 1, 40, 41, 42, 43, 44, -1, -1,
+ -1, -1, 49, -1, -1, 52, 53, 54, -1, -1,
+ 57, -1, -1, -1, 61, 62, 63, 26, -1, -1,
+ -1, 30, -1, -1, 33, 34, 35, 36, -1, -1,
+ 1, 40, 41, 42, 43, 44, -1, 84, 85, -1,
+ 49, -1, 89, 52, 53, 54, -1, -1, 57, -1,
+ -1, 98, 61, 62, 63, 26, -1, -1, -1, 30,
+ -1, -1, 33, 34, 35, 36, -1, -1, -1, 40,
+ 41, 42, 43, 44, -1, 84, 85, -1, 49, 88,
+ -1, 52, 53, 54, -1, -1, 57, -1, -1, 98,
+ 61, 62, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
- -1, 85, -1, -1, -1, -1, 14, -1, -1, 17,
- 18, -1, 96, 21, 22, 23, 24, 25, 26, -1,
- -1, -1, 30, 31, 32, 33, 34, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
- 48, 49, -1, -1, -1, 14, -1, -1, 17, 18,
- -1, -1, 21, 22, 23, 24, 25, 26, -1, -1,
- 68, 30, 31, 32, 33, 34, -1, 75, 76, 77,
- 78, 79, -1, -1, -1, -1, -1, 46, -1, 48,
- -1, -1, -1, 91, 92, -1, -1, -1, -1, 97,
- -1, -1, 100, -1, -1, -1, -1, -1, -1, 68,
- -1, -1, -1, -1, -1, -1, 75, 76, 77, 78,
- 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, 92, -1, -1, 14, -1, 97, 17,
- 18, 100, 20, 21, 22, 23, 24, 25, 26, -1,
- -1, -1, 30, 31, 32, 33, 34, -1, -1, -1,
- -1, -1, 14, -1, -1, 17, 18, -1, -1, 21,
- 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
- 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
- 68, -1, -1, -1, -1, -1, -1, 75, 76, 77,
- 78, 79, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 91, 92, -1, 68, -1, -1, 97,
- -1, -1, 100, 75, 76, 77, 78, 79, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
- 92, -1, -1, 14, -1, 97, 17, 18, 100, -1,
- 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
- 31, 32, 33, 34, -1, -1, -1, -1, -1, 14,
- -1, -1, 17, 18, -1, -1, 21, 22, 23, 24,
- 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
- -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
- -1, -1, -1, -1, 75, 76, 77, 78, 79, 35,
+ -1, -1, -1, 84, 85, -1, 87, -1, -1, -1,
+ -1, 16, -1, -1, 19, 20, -1, 98, 23, 24,
+ 25, 26, 27, 28, -1, -1, -1, 32, 33, 34,
+ 35, 36, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, -1, -1, -1,
+ 16, -1, -1, 19, 20, -1, -1, 23, 24, 25,
+ 26, 27, 28, -1, -1, 70, 32, 33, 34, 35,
+ 36, -1, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, 48, -1, 50, -1, -1, -1, 93, 94,
+ -1, -1, -1, -1, 99, -1, -1, 102, -1, -1,
+ -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
+ -1, 77, 78, 79, 80, 81, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 93, 94, -1,
+ -1, 16, -1, 99, 19, 20, 102, 22, 23, 24,
+ 25, 26, 27, 28, -1, -1, -1, 32, 33, 34,
+ 35, 36, -1, -1, -1, -1, -1, 16, -1, -1,
+ 19, 20, -1, -1, 23, 24, 25, 26, 27, 28,
+ -1, -1, -1, 32, 33, 34, 35, 36, -1, -1,
+ -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
+ -1, -1, 77, 78, 79, 80, 81, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
+ -1, 70, -1, -1, 99, -1, -1, 102, 77, 78,
+ 79, 80, 81, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, 94, -1, -1, 16, -1,
+ 99, 19, 20, 102, -1, 23, 24, 25, 26, 27,
+ 28, -1, -1, -1, 32, 33, 34, 35, 36, -1,
+ -1, -1, -1, -1, 16, -1, -1, 19, 20, -1,
+ -1, 23, 24, 25, 26, 27, 28, -1, -1, -1,
+ 32, 33, 34, 35, 36, -1, -1, -1, -1, -1,
+ -1, -1, 70, -1, -1, -1, -1, -1, -1, 77,
+ 78, 79, 80, 81, 37, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 93, 94, -1, 70, -1,
+ -1, 99, -1, -1, 102, 77, 78, 79, 80, 81,
+ -1, 64, 65, 66, 67, 68, 69, -1, 71, -1,
+ -1, 74, 75, 76, -1, -1, -1, -1, -1, -1,
+ 102, -1, -1, -1, -1, -1, -1, 90, 91, 92,
+ 93, 94, 95, 96, 26, -1, -1, -1, 30, -1,
+ -1, 33, 34, 35, 36, -1, -1, -1, 40, 41,
+ 42, 43, -1, -1, -1, 46, -1, -1, -1, -1,
+ 52, -1, 54, -1, -1, -1, -1, -1, -1, 61,
+ 62, 63, -1, 64, 65, 66, 67, 68, 69, -1,
+ 71, 72, 73, 74, 75, 76, -1, -1, -1, -1,
+ 48, -1, 50, 85, -1, -1, -1, -1, -1, 90,
+ 91, 92, 93, 94, 95, 96, 64, 65, 66, 67,
+ 68, 69, -1, 71, -1, -1, 74, 75, 76, -1,
+ -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
+ -1, 56, 90, 91, 92, 93, 94, 95, 96, 64,
+ 65, 66, 67, 68, 69, -1, 71, -1, -1, 74,
+ 75, 76, -1, -1, -1, -1, -1, -1, 50, -1,
+ -1, -1, -1, -1, 56, 90, 91, 92, 93, 94,
+ 95, 96, 64, 65, 66, 67, 68, 69, -1, 71,
+ -1, -1, 74, 75, 76, -1, -1, -1, -1, -1,
+ -1, 50, -1, -1, -1, -1, -1, 56, 90, 91,
+ 92, 93, 94, 95, 96, 64, 65, 66, 67, 68,
+ 69, -1, 71, -1, -1, 74, 75, 76, -1, -1,
+ -1, -1, -1, -1, 50, -1, -1, -1, -1, -1,
+ 56, 90, 91, 92, 93, 94, 95, 96, 64, 65,
+ 66, 67, 68, 69, -1, 71, -1, -1, 74, 75,
+ 76, -1, -1, -1, -1, -1, -1, 50, -1, -1,
+ -1, -1, -1, -1, 90, 91, 92, 93, 94, 95,
+ 96, 64, 65, 66, 67, 68, 69, -1, 71, -1,
+ -1, 74, 75, 76, -1, -1, -1, -1, -1, -1,
+ 50, -1, -1, -1, -1, -1, -1, 90, 91, 92,
+ 93, 94, 95, 96, 64, 65, 66, 67, 68, 69,
+ -1, 71, -1, -1, 74, 75, 76, -1, -1, -1,
+ -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
+ 90, 91, 92, 93, 94, 95, 96, 64, 65, 66,
+ 67, 68, 69, -1, 71, -1, -1, 74, 75, 76,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 91, 92, -1, 68, -1, -1, 97, -1, -1, 100,
- 75, 76, 77, 78, 79, -1, 62, 63, 64, 65,
- 66, 67, -1, 69, -1, -1, 72, 73, 74, -1,
- -1, 44, -1, -1, -1, 100, -1, -1, -1, -1,
- -1, -1, 88, 89, 90, 91, 92, 93, 94, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, -1, -1, -1, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
- -1, 48, -1, -1, -1, -1, -1, 54, 88, 89,
- 90, 91, 92, 93, 94, 62, 63, 64, 65, 66,
- 67, -1, 69, -1, -1, 72, 73, 74, -1, -1,
- -1, -1, -1, -1, 48, -1, -1, -1, -1, -1,
- 54, 88, 89, 90, 91, 92, 93, 94, 62, 63,
- 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, -1, 48, -1, -1,
- -1, -1, -1, 54, 88, 89, 90, 91, 92, 93,
- 94, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, -1, -1, -1, -1, -1, -1,
- 48, -1, -1, -1, -1, -1, 54, 88, 89, 90,
- 91, 92, 93, 94, 62, 63, 64, 65, 66, 67,
- -1, 69, -1, -1, 72, 73, 74, -1, -1, -1,
- -1, -1, -1, 48, -1, -1, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, 93, 94, 62, 63, 64,
- 65, 66, 67, -1, 69, -1, -1, 72, 73, 74,
- -1, -1, -1, -1, -1, -1, 48, -1, -1, -1,
- -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, -1, -1, -1, -1, -1, -1, 48,
- -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 62, 63, 64, 65, 66, 67, -1,
- 69, -1, -1, 72, 73, 74, -1, -1, -1, -1,
- -1, -1, 48, -1, -1, -1, -1, -1, -1, 88,
- 89, 90, 91, 92, 93, 94, 62, 63, 64, 65,
- 66, 67, -1, 69, -1, -1, 72, 73, 74, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 54, 88, 89, 90, 91, 92, 93, 94, 62,
- 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
- 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 54, 96, -1, -1, -1, -1, -1, -1,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 56, -1, -1, -1, -1, -1, 62,
- 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
- 73, 74, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, 88, 89, 90, 91, 92,
- 93, 94, -1, -1, -1, -1, -1, -1, 88, 89,
- 90, 91, 92, 93, 94, -1, -1, -1, 98, 99,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, 62, 63, 64, 65, 66, 67, -1,
- 69, -1, -1, 72, 73, 74, 88, 89, 90, 91,
- 92, 93, 94, -1, -1, -1, -1, 99, -1, 88,
- 89, 90, 91, 92, 93, 94, -1, -1, -1, -1,
- 99, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
- 91, 92, 93, 94, -1, -1, -1, 98, 62, 63,
- 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, 80, 81, -1, -1,
- -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
- 94, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, 62, 63, 64, 65, -1, -1,
- -1, 69, -1, -1, 72, 73, 74, 88, 89, 90,
- 91, 92, 93, 94, -1, -1, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, 93, 94
+ -1, -1, 56, 90, 91, 92, 93, 94, 95, 96,
+ 64, 65, 66, 67, 68, 69, -1, 71, -1, -1,
+ 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 90, 91, 92, 93,
+ 94, 95, 96, 56, 98, -1, -1, -1, -1, -1,
+ -1, 64, 65, 66, 67, 68, 69, -1, 71, -1,
+ -1, 74, 75, 76, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, 92,
+ 93, 94, 95, 96, 58, -1, -1, -1, -1, -1,
+ 64, 65, 66, 67, 68, 69, -1, 71, -1, -1,
+ 74, 75, 76, 64, 65, 66, 67, 68, 69, -1,
+ 71, -1, -1, 74, 75, 76, 90, 91, 92, 93,
+ 94, 95, 96, -1, -1, -1, -1, -1, -1, 90,
+ 91, 92, 93, 94, 95, 96, -1, -1, -1, 100,
+ 101, 64, 65, 66, 67, 68, 69, -1, 71, -1,
+ -1, 74, 75, 76, 64, 65, 66, 67, 68, 69,
+ -1, 71, -1, -1, 74, 75, 76, 90, 91, 92,
+ 93, 94, 95, 96, -1, -1, -1, -1, 101, -1,
+ 90, 91, 92, 93, 94, 95, 96, -1, -1, -1,
+ -1, 101, 64, 65, 66, 67, 68, 69, -1, 71,
+ -1, -1, 74, 75, 76, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
+ 92, 93, 94, 95, 96, -1, -1, -1, 100, 64,
+ 65, 66, 67, 68, 69, -1, 71, -1, -1, 74,
+ 75, 76, -1, -1, -1, -1, -1, 82, 83, -1,
+ -1, -1, -1, -1, -1, 90, 91, 92, 93, 94,
+ 95, 96, 64, 65, 66, 67, 68, 69, -1, 71,
+ -1, -1, 74, 75, 76, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
+ 92, 93, 94, 95, 96
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 1, 24, 28, 29, 31, 32, 33, 34, 38,
- 39, 40, 41, 42, 45, 47, 50, 51, 52, 55,
- 58, 59, 60, 61, 82, 83, 84, 104, 105, 106,
- 107, 108, 109, 121, 127, 137, 145, 147, 149, 152,
- 96, 148, 151, 51, 138, 14, 17, 18, 21, 22,
- 23, 25, 26, 30, 31, 32, 33, 34, 46, 47,
- 48, 49, 68, 75, 76, 77, 78, 79, 91, 92,
- 97, 100, 106, 131, 133, 134, 135, 136, 146, 160,
- 150, 51, 20, 134, 56, 57, 17, 18, 19, 30,
- 106, 106, 106, 134, 134, 146, 140, 134, 139, 153,
- 0, 96, 97, 134, 158, 134, 128, 158, 128, 106,
- 142, 133, 48, 133, 131, 131, 131, 131, 134, 46,
- 133, 134, 134, 134, 134, 134, 133, 133, 134, 25,
- 26, 102, 106, 134, 161, 162, 163, 164, 97, 62,
- 63, 64, 65, 66, 67, 69, 72, 73, 74, 88,
- 89, 90, 91, 92, 93, 94, 146, 106, 106, 44,
- 70, 71, 106, 128, 54, 64, 134, 133, 54, 64,
- 54, 64, 53, 56, 146, 106, 144, 54, 96, 106,
- 143, 106, 105, 106, 134, 158, 99, 124, 106, 154,
- 155, 155, 99, 133, 134, 48, 54, 48, 54, 48,
- 54, 48, 54, 80, 81, 98, 102, 102, 102, 101,
- 99, 99, 106, 158, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 128, 133, 106, 135, 106, 135, 106, 135, 43,
- 64, 134, 134, 134, 54, 64, 48, 134, 134, 134,
- 134, 134, 134, 99, 120, 120, 99, 98, 99, 98,
- 158, 53, 99, 96, 96, 142, 133, 134, 133, 134,
- 133, 134, 133, 134, 133, 133, 134, 134, 134, 134,
- 25, 26, 106, 164, 98, 99, 98, 155, 44, 134,
- 134, 124, 134, 134, 106, 144, 108, 109, 129, 130,
- 143, 141, 129, 155, 157, 157, 48, 48, 48, 48,
- 132, 96, 134, 116, 110, 113, 119, 133, 128, 128,
- 96, 134, 159, 125, 129, 129, 133, 133, 133, 133,
- 159, 157, 128, 126, 126, 129, 54, 64, 87, 129,
- 99, 98, 122, 27, 98, 129, 117, 111, 114, 125,
- 134, 134, 159, 36, 37, 123, 128, 106, 156, 124,
- 54, 35, 86, 129, 134, 85, 99, 118, 134, 54,
- 128, 124, 106, 119, 112, 134, 85, 53, 129, 124,
- 115, 129, 86, 119, 124, 125, 129, 119, 86, 129,
- 86
+ 0, 1, 26, 30, 31, 33, 34, 35, 36, 40,
+ 41, 42, 43, 44, 47, 49, 52, 53, 54, 57,
+ 60, 61, 62, 63, 84, 85, 86, 106, 107, 108,
+ 109, 110, 111, 123, 129, 139, 147, 149, 151, 154,
+ 98, 150, 153, 53, 140, 16, 19, 20, 23, 24,
+ 25, 27, 28, 32, 33, 34, 35, 36, 48, 49,
+ 50, 51, 70, 77, 78, 79, 80, 81, 93, 94,
+ 99, 102, 108, 133, 135, 136, 137, 138, 148, 162,
+ 152, 53, 22, 136, 58, 59, 19, 20, 21, 32,
+ 108, 108, 108, 136, 136, 148, 142, 136, 141, 155,
+ 0, 98, 99, 136, 160, 136, 130, 160, 130, 108,
+ 144, 135, 50, 135, 133, 133, 133, 133, 136, 48,
+ 135, 136, 136, 136, 136, 136, 135, 135, 136, 27,
+ 28, 104, 108, 136, 163, 164, 165, 166, 99, 64,
+ 65, 66, 67, 68, 69, 71, 74, 75, 76, 90,
+ 91, 92, 93, 94, 95, 96, 148, 108, 108, 46,
+ 72, 73, 108, 130, 56, 66, 136, 135, 56, 66,
+ 56, 66, 55, 58, 148, 108, 146, 56, 98, 108,
+ 145, 108, 107, 108, 136, 160, 101, 126, 108, 156,
+ 157, 157, 101, 135, 136, 50, 56, 50, 56, 50,
+ 56, 50, 56, 82, 83, 100, 104, 104, 104, 103,
+ 101, 101, 108, 160, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 130, 135, 108, 137, 108, 137, 108, 137, 45,
+ 66, 136, 136, 136, 56, 66, 50, 136, 136, 136,
+ 136, 136, 136, 101, 122, 122, 101, 100, 101, 100,
+ 160, 55, 101, 98, 98, 144, 135, 136, 135, 136,
+ 135, 136, 135, 136, 135, 135, 136, 136, 136, 136,
+ 27, 28, 108, 166, 100, 101, 100, 157, 46, 136,
+ 136, 126, 136, 136, 108, 146, 110, 111, 131, 132,
+ 145, 143, 131, 157, 159, 159, 50, 50, 50, 50,
+ 134, 98, 136, 118, 112, 115, 121, 135, 130, 130,
+ 98, 136, 161, 127, 131, 131, 135, 135, 135, 135,
+ 161, 159, 130, 128, 128, 131, 56, 66, 89, 131,
+ 101, 100, 124, 29, 100, 131, 119, 113, 116, 127,
+ 136, 136, 161, 38, 39, 125, 130, 108, 158, 126,
+ 56, 37, 88, 131, 136, 87, 101, 120, 136, 56,
+ 130, 126, 108, 121, 114, 136, 87, 55, 131, 126,
+ 117, 131, 88, 121, 126, 127, 131, 121, 88, 131,
+ 88
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 103, 104, 104, 105, 105, 105, 106, 106, 106,
- 106, 106, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 108,
- 108, 109, 109, 109, 110, 111, 112, 109, 113, 114,
- 115, 109, 116, 117, 118, 109, 109, 109, 109, 109,
- 109, 119, 120, 121, 121, 122, 122, 123, 124, 125,
- 126, 127, 128, 129, 129, 130, 130, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 132, 131, 131, 131, 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, 136, 136,
- 136, 137, 137, 137, 137, 137, 138, 137, 139, 137,
- 140, 137, 137, 137, 137, 141, 137, 137, 137, 142,
- 142, 142, 143, 143, 143, 144, 144, 144, 145, 145,
- 145, 145, 145, 145, 146, 146, 147, 147, 147, 148,
- 147, 150, 149, 149, 151, 149, 149, 149, 153, 152,
- 154, 155, 155, 155, 156, 156, 156, 157, 158, 158,
- 158, 159, 159, 159, 160, 161, 161, 161, 161, 162,
- 162, 163, 163, 164, 164, 164
+ 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, 121, 122, 123, 123, 124, 124, 125, 126, 127,
+ 128, 129, 130, 131, 131, 132, 132, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 134, 133, 133, 133, 135, 135,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 138, 138,
+ 138, 139, 139, 139, 139, 139, 140, 139, 141, 139,
+ 142, 139, 139, 139, 139, 143, 139, 139, 139, 144,
+ 144, 144, 145, 145, 145, 146, 146, 146, 147, 147,
+ 147, 147, 147, 147, 148, 148, 149, 149, 149, 150,
+ 149, 152, 151, 151, 153, 151, 151, 151, 155, 154,
+ 156, 157, 157, 157, 158, 158, 158, 159, 160, 160,
+ 160, 161, 161, 161, 162, 163, 163, 163, 163, 164,
+ 164, 165, 165, 166, 166, 166
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1728,63 +1723,63 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_THEFUNC: /* THEFUNC */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1734 "engines/director/lingo/lingo-gr.cpp"
+#line 1729 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_THEFUNCINOF: /* THEFUNCINOF */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1740 "engines/director/lingo/lingo-gr.cpp"
+#line 1735 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_VARID: /* VARID */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1746 "engines/director/lingo/lingo-gr.cpp"
+#line 1741 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_STRING: /* STRING */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1752 "engines/director/lingo/lingo-gr.cpp"
+#line 1747 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_SYMBOL: /* SYMBOL */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1758 "engines/director/lingo/lingo-gr.cpp"
+#line 1753 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ENDCLAUSE: /* ENDCLAUSE */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1764 "engines/director/lingo/lingo-gr.cpp"
+#line 1759 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1770 "engines/director/lingo/lingo-gr.cpp"
+#line 1765 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tMETHOD: /* tMETHOD */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1776 "engines/director/lingo/lingo-gr.cpp"
+#line 1771 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1782 "engines/director/lingo/lingo-gr.cpp"
+#line 1777 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_on: /* on */
-#line 230 "engines/director/lingo/lingo-gr.y"
+#line 231 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1788 "engines/director/lingo/lingo-gr.cpp"
+#line 1783 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2050,31 +2045,31 @@ yyreduce:
switch (yyn)
{
case 8: /* ID: tCAST */
-#line 242 "engines/director/lingo/lingo-gr.y"
+#line 243 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2056 "engines/director/lingo/lingo-gr.cpp"
+#line 2051 "engines/director/lingo/lingo-gr.cpp"
break;
case 9: /* ID: tFIELD */
-#line 243 "engines/director/lingo/lingo-gr.y"
+#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2062 "engines/director/lingo/lingo-gr.cpp"
+#line 2057 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* ID: tSCRIPT */
-#line 244 "engines/director/lingo/lingo-gr.y"
+#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2068 "engines/director/lingo/lingo-gr.cpp"
+#line 2063 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* ID: tWINDOW */
-#line 245 "engines/director/lingo/lingo-gr.y"
+#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2074 "engines/director/lingo/lingo-gr.cpp"
+#line 2069 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* asgn: tPUT expr tINTO ID */
-#line 247 "engines/director/lingo/lingo-gr.y"
+#line 248 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2082,19 +2077,19 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2086 "engines/director/lingo/lingo-gr.cpp"
+#line 2081 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* asgn: tPUT expr tINTO chunkexpr */
-#line 254 "engines/director/lingo/lingo-gr.y"
+#line 255 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code); }
-#line 2094 "engines/director/lingo/lingo-gr.cpp"
+#line 2089 "engines/director/lingo/lingo-gr.cpp"
break;
case 14: /* asgn: tPUT THEMENUITEMSENTITY ID simpleexpr tINTO expr */
-#line 258 "engines/director/lingo/lingo-gr.y"
+#line 259 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2106,11 +2101,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-4].e)[1]);
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code); }
-#line 2110 "engines/director/lingo/lingo-gr.cpp"
+#line 2105 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* asgn: tPUT expr tAFTER ID */
-#line 269 "engines/director/lingo/lingo-gr.y"
+#line 270 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2118,19 +2113,19 @@ yyreduce:
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2122 "engines/director/lingo/lingo-gr.cpp"
+#line 2117 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* asgn: tPUT expr tAFTER chunkexpr */
-#line 276 "engines/director/lingo/lingo-gr.y"
+#line 277 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code); }
-#line 2130 "engines/director/lingo/lingo-gr.cpp"
+#line 2125 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* asgn: tPUT expr tBEFORE ID */
-#line 279 "engines/director/lingo/lingo-gr.y"
+#line 280 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2138,19 +2133,19 @@ yyreduce:
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2137 "engines/director/lingo/lingo-gr.cpp"
break;
case 18: /* asgn: tPUT expr tBEFORE chunkexpr */
-#line 286 "engines/director/lingo/lingo-gr.y"
+#line 287 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code); }
-#line 2150 "engines/director/lingo/lingo-gr.cpp"
+#line 2145 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* asgn: tSET ID tEQ expr */
-#line 289 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
@@ -2158,11 +2153,11 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2162 "engines/director/lingo/lingo-gr.cpp"
+#line 2157 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* asgn: tSET THEENTITY tEQ expr */
-#line 296 "engines/director/lingo/lingo-gr.y"
+#line 297 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2170,11 +2165,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2174 "engines/director/lingo/lingo-gr.cpp"
+#line 2169 "engines/director/lingo/lingo-gr.cpp"
break;
case 21: /* asgn: tSET ID tTO expr */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
@@ -2182,11 +2177,11 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2181 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* asgn: tSET THEENTITY tTO expr */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2194,33 +2189,33 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2193 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* asgn: tSET THEENTITYWITHID expr tTO expr */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 318 "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 2209 "engines/director/lingo/lingo-gr.cpp"
+#line 2204 "engines/director/lingo/lingo-gr.cpp"
break;
case 24: /* asgn: tSET THEENTITYWITHID expr tEQ expr */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 324 "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 2220 "engines/director/lingo/lingo-gr.cpp"
+#line 2215 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2232,11 +2227,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2236 "engines/director/lingo/lingo-gr.cpp"
+#line 2231 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tEQ expr */
-#line 341 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2248,11 +2243,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2252 "engines/director/lingo/lingo-gr.cpp"
+#line 2247 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* asgn: tSET THEOBJECTPROP tTO expr */
-#line 352 "engines/director/lingo/lingo-gr.y"
+#line 353 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectpropassign);
g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
@@ -2260,11 +2255,11 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2259 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* asgn: tSET THEOBJECTPROP tEQ expr */
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 360 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectpropassign);
g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
@@ -2272,11 +2267,11 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2271 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* stmt: tREPEAT tWHILE lbl expr jumpifz startrepeat stmtlist jump tENDREPEAT */
-#line 376 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
{
inst start = 0, end = 0;
WRITE_UINT32(&start, (yyvsp[-6].code) - (yyvsp[-1].code) + 1);
@@ -2284,32 +2279,32 @@ yyreduce:
(*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 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2283 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* $@1: %empty */
-#line 389 "engines/director/lingo/lingo-gr.y"
+#line 390 "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 2296 "engines/director/lingo/lingo-gr.cpp"
+#line 2291 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* $@2: %empty */
-#line 393 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2303 "engines/director/lingo/lingo-gr.cpp"
+#line 2298 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* $@3: %empty */
-#line 396 "engines/director/lingo/lingo-gr.y"
+#line 397 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2304 "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 396 "engines/director/lingo/lingo-gr.y"
+#line 397 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2330,32 +2325,32 @@ yyreduce:
(*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
endRepeat(pos + 1, nextPos); }
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2329 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* $@4: %empty */
-#line 423 "engines/director/lingo/lingo-gr.y"
+#line 424 "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 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2337 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* $@5: %empty */
-#line 427 "engines/director/lingo/lingo-gr.y"
+#line 428 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2349 "engines/director/lingo/lingo-gr.cpp"
+#line 2344 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* $@6: %empty */
-#line 430 "engines/director/lingo/lingo-gr.y"
+#line 431 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2355 "engines/director/lingo/lingo-gr.cpp"
+#line 2350 "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 431 "engines/director/lingo/lingo-gr.y"
+#line 432 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2376,32 +2371,32 @@ yyreduce:
(*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
endRepeat(pos + 1, nextPos); }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2375 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* $@7: %empty */
-#line 457 "engines/director/lingo/lingo-gr.y"
+#line 458 "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 2391 "engines/director/lingo/lingo-gr.cpp"
+#line 2386 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* $@8: %empty */
-#line 464 "engines/director/lingo/lingo-gr.y"
+#line 465 "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 2401 "engines/director/lingo/lingo-gr.cpp"
+#line 2396 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* $@9: %empty */
-#line 470 "engines/director/lingo/lingo-gr.y"
+#line 471 "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
@@ -2412,11 +2407,11 @@ yyreduce:
g_lingo->codeString((yyvsp[-6].s)->c_str());
mVar((yyvsp[-6].s), globalCheck());
g_lingo->code1(LC::c_assign); }
-#line 2416 "engines/director/lingo/lingo-gr.cpp"
+#line 2411 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* stmt: tREPEAT tWITH ID tIN expr $@7 lbl $@8 jumpifz $@9 startrepeat stmtlist tENDREPEAT */
-#line 480 "engines/director/lingo/lingo-gr.y"
+#line 481 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2436,11 +2431,11 @@ yyreduce:
(*g_lingo->_currentAssembly)[jump + 1] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end; /* end, if cond fails */
endRepeat(end2, nextPos); }
-#line 2440 "engines/director/lingo/lingo-gr.cpp"
+#line 2435 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* stmt: tNEXT tREPEAT */
-#line 500 "engines/director/lingo/lingo-gr.y"
+#line 501 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_repeatStack.size()) {
g_lingo->code2(LC::c_jump, 0);
@@ -2449,49 +2444,49 @@ yyreduce:
} else {
warning("# LINGO: next repeat not inside repeat block");
} }
-#line 2453 "engines/director/lingo/lingo-gr.cpp"
+#line 2448 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* stmt: tWHEN ID tTHEN expr */
-#line 508 "engines/director/lingo/lingo-gr.y"
+#line 509 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_whencode);
g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2456 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* stmt: tTELL expr '\n' tellstart stmtlist lbl tENDTELL */
-#line 511 "engines/director/lingo/lingo-gr.y"
+#line 512 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2467 "engines/director/lingo/lingo-gr.cpp"
+#line 2462 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* stmt: tTELL expr tTO tellstart stmtoneliner lbl */
-#line 512 "engines/director/lingo/lingo-gr.y"
+#line 513 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2468 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* stmt: error '\n' */
-#line 513 "engines/director/lingo/lingo-gr.y"
+#line 514 "engines/director/lingo/lingo-gr.y"
{ yyerrok; }
-#line 2479 "engines/director/lingo/lingo-gr.cpp"
+#line 2474 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* startrepeat: %empty */
-#line 515 "engines/director/lingo/lingo-gr.y"
+#line 516 "engines/director/lingo/lingo-gr.y"
{ startRepeat(); }
-#line 2485 "engines/director/lingo/lingo-gr.cpp"
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* tellstart: %empty */
-#line 517 "engines/director/lingo/lingo-gr.y"
+#line 518 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_tell); }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+#line 2486 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist lbl tENDIF */
-#line 519 "engines/director/lingo/lingo-gr.y"
+#line 520 "engines/director/lingo/lingo-gr.y"
{
inst else1 = 0, end3 = 0;
WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
@@ -2499,11 +2494,11 @@ yyreduce:
(*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 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2498 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist tELSE stmtlist lbl tENDIF */
-#line 526 "engines/director/lingo/lingo-gr.y"
+#line 527 "engines/director/lingo/lingo-gr.y"
{
inst else1 = 0, end = 0;
WRITE_UINT32(&else1, (yyvsp[-5].code) + 1 - (yyvsp[-8].code) + 1);
@@ -2511,110 +2506,110 @@ yyreduce:
(*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 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2510 "engines/director/lingo/lingo-gr.cpp"
break;
case 57: /* elseifstmt: tELSIF expr jumpifz tTHEN stmtlist jump */
-#line 537 "engines/director/lingo/lingo-gr.y"
+#line 538 "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 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2520 "engines/director/lingo/lingo-gr.cpp"
break;
case 58: /* jumpifz: %empty */
-#line 543 "engines/director/lingo/lingo-gr.y"
+#line 544 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code2(LC::c_jumpifz, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2528 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* jump: %empty */
-#line 547 "engines/director/lingo/lingo-gr.y"
+#line 548 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code2(LC::c_jump, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* varassign: %empty */
-#line 551 "engines/director/lingo/lingo-gr.y"
+#line 552 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_assign);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2549 "engines/director/lingo/lingo-gr.cpp"
+#line 2544 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* if: tIF */
-#line 555 "engines/director/lingo/lingo-gr.y"
+#line 556 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeLabel(0); }
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+#line 2551 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* lbl: %empty */
-#line 558 "engines/director/lingo/lingo-gr.y"
+#line 559 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2562 "engines/director/lingo/lingo-gr.cpp"
+#line 2557 "engines/director/lingo/lingo-gr.cpp"
break;
case 67: /* simpleexprnoparens: INT */
-#line 566 "engines/director/lingo/lingo-gr.y"
+#line 567 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt((yyvsp[0].i)); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
case 68: /* simpleexprnoparens: FLOAT */
-#line 569 "engines/director/lingo/lingo-gr.y"
+#line 570 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_floatpush);
g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2578 "engines/director/lingo/lingo-gr.cpp"
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* simpleexprnoparens: SYMBOL */
-#line 572 "engines/director/lingo/lingo-gr.y"
+#line 573 "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 2587 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* simpleexprnoparens: STRING */
-#line 576 "engines/director/lingo/lingo-gr.y"
+#line 577 "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 2596 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* simpleexprnoparens: '+' simpleexpr */
-#line 580 "engines/director/lingo/lingo-gr.y"
+#line 581 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* simpleexprnoparens: '-' simpleexpr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+#line 582 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2608 "engines/director/lingo/lingo-gr.cpp"
+#line 2603 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* simpleexprnoparens: tNOT simpleexpr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+#line 583 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_not); }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2609 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* simpleexprnoparens: THEENTITY */
-#line 584 "engines/director/lingo/lingo-gr.y"
+#line 585 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2623,95 +2618,95 @@ yyreduce:
WRITE_UINT32(&e, (yyvsp[0].e)[0]);
WRITE_UINT32(&f, (yyvsp[0].e)[1]);
g_lingo->code2(e, f); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
case 76: /* simpleexprnoparens: THEENTITYWITHID simpleexpr */
-#line 592 "engines/director/lingo/lingo-gr.y"
+#line 593 "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 2638 "engines/director/lingo/lingo-gr.cpp"
+#line 2633 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* simpleexprnoparens: THEFUNCINOF simpleexpr */
-#line 598 "engines/director/lingo/lingo-gr.y"
+#line 599 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-1].s), 1);
delete (yyvsp[-1].s); }
-#line 2646 "engines/director/lingo/lingo-gr.cpp"
+#line 2641 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* simpleexprnoparens: THEFUNC tOF simpleexpr */
-#line 601 "engines/director/lingo/lingo-gr.y"
+#line 602 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
delete (yyvsp[-2].s); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* simpleexprnoparens: THEOBJECTPROP */
-#line 604 "engines/director/lingo/lingo-gr.y"
+#line 605 "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 2665 "engines/director/lingo/lingo-gr.cpp"
+#line 2660 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* simpleexprnoparens: tSPRITE expr tINTERSECTS simpleexpr */
-#line 610 "engines/director/lingo/lingo-gr.y"
+#line 611 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_intersects); }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2666 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* simpleexprnoparens: tSPRITE expr tWITHIN simpleexpr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+#line 612 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_within); }
-#line 2677 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* simpleexprnoparens: ID '(' ID ')' */
-#line 613 "engines/director/lingo/lingo-gr.y"
+#line 614 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_lazyeval);
g_lingo->codeString((yyvsp[-1].s)->c_str());
g_lingo->codeFunc((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 2688 "engines/director/lingo/lingo-gr.cpp"
+#line 2683 "engines/director/lingo/lingo-gr.cpp"
break;
case 84: /* $@10: %empty */
-#line 619 "engines/director/lingo/lingo-gr.y"
+#line 620 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lazyeval); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2694 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* simpleexprnoparens: ID '(' ID ',' $@10 nonemptyarglist ')' */
-#line 620 "engines/director/lingo/lingo-gr.y"
+#line 621 "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 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2698 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* simpleexprnoparens: ID '(' arglist ')' */
-#line 624 "engines/director/lingo/lingo-gr.y"
+#line 625 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* simpleexprnoparens: ID */
-#line 627 "engines/director/lingo/lingo-gr.y"
+#line 628 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_builtinConsts.contains(*(yyvsp[0].s))) {
(yyval.code) = g_lingo->code1(LC::c_constpush);
@@ -2720,213 +2715,213 @@ yyreduce:
}
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2724 "engines/director/lingo/lingo-gr.cpp"
+#line 2719 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* simpleexpr: '(' expr ')' */
-#line 637 "engines/director/lingo/lingo-gr.y"
+#line 638 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 2730 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
break;
case 90: /* expr: simpleexpr */
-#line 639 "engines/director/lingo/lingo-gr.y"
+#line 640 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2736 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* expr: expr '+' expr */
-#line 640 "engines/director/lingo/lingo-gr.y"
+#line 641 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_add); }
-#line 2742 "engines/director/lingo/lingo-gr.cpp"
+#line 2737 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* expr: expr '-' expr */
-#line 641 "engines/director/lingo/lingo-gr.y"
+#line 642 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_sub); }
-#line 2748 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* expr: expr '*' expr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+#line 643 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mul); }
-#line 2754 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* expr: expr '/' expr */
-#line 643 "engines/director/lingo/lingo-gr.y"
+#line 644 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_div); }
-#line 2760 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* expr: expr tMOD expr */
-#line 644 "engines/director/lingo/lingo-gr.y"
+#line 645 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mod); }
-#line 2766 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* expr: expr '>' expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
+#line 646 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gt); }
-#line 2772 "engines/director/lingo/lingo-gr.cpp"
+#line 2767 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* expr: expr '<' expr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+#line 647 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lt); }
-#line 2778 "engines/director/lingo/lingo-gr.cpp"
+#line 2773 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* expr: expr tEQ expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+#line 648 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eq); }
-#line 2784 "engines/director/lingo/lingo-gr.cpp"
+#line 2779 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* expr: expr tNEQ expr */
-#line 648 "engines/director/lingo/lingo-gr.y"
+#line 649 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_neq); }
-#line 2790 "engines/director/lingo/lingo-gr.cpp"
+#line 2785 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* expr: expr tGE expr */
-#line 649 "engines/director/lingo/lingo-gr.y"
+#line 650 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2796 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* expr: expr tLE expr */
-#line 650 "engines/director/lingo/lingo-gr.y"
+#line 651 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2802 "engines/director/lingo/lingo-gr.cpp"
+#line 2797 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* expr: expr tAND expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
+#line 652 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_and); }
-#line 2808 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* expr: expr tOR expr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+#line 653 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_or); }
-#line 2814 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* expr: expr '&' expr */
-#line 653 "engines/director/lingo/lingo-gr.y"
+#line 654 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ampersand); }
-#line 2820 "engines/director/lingo/lingo-gr.cpp"
+#line 2815 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* expr: expr tCONCAT expr */
-#line 654 "engines/director/lingo/lingo-gr.y"
+#line 655 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_concat); }
-#line 2826 "engines/director/lingo/lingo-gr.cpp"
+#line 2821 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* expr: expr tCONTAINS expr */
-#line 655 "engines/director/lingo/lingo-gr.y"
+#line 656 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_contains); }
-#line 2832 "engines/director/lingo/lingo-gr.cpp"
+#line 2827 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* expr: expr tSTARTS expr */
-#line 656 "engines/director/lingo/lingo-gr.y"
+#line 657 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_starts); }
-#line 2838 "engines/director/lingo/lingo-gr.cpp"
+#line 2833 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* chunkexpr: tFIELD simpleexprnoparens */
-#line 658 "engines/director/lingo/lingo-gr.y"
+#line 659 "engines/director/lingo/lingo-gr.y"
{
Common::String field("field");
g_lingo->codeFunc(&field, 1); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* chunkexpr: tCAST simpleexprnoparens */
-#line 661 "engines/director/lingo/lingo-gr.y"
+#line 662 "engines/director/lingo/lingo-gr.y"
{
Common::String cast("cast");
g_lingo->codeFunc(&cast, 1); }
-#line 2854 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* chunkexpr: tCHAR expr tOF simpleexpr */
-#line 664 "engines/director/lingo/lingo-gr.y"
+#line 665 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charOf); }
-#line 2860 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* chunkexpr: tCHAR expr tTO expr tOF simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+#line 666 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charToOf); }
-#line 2866 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* chunkexpr: tITEM expr tOF simpleexpr */
-#line 666 "engines/director/lingo/lingo-gr.y"
+#line 667 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemOf); }
-#line 2872 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* chunkexpr: tITEM expr tTO expr tOF simpleexpr */
-#line 667 "engines/director/lingo/lingo-gr.y"
+#line 668 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemToOf); }
-#line 2878 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* chunkexpr: tLINE expr tOF simpleexpr */
-#line 668 "engines/director/lingo/lingo-gr.y"
+#line 669 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineOf); }
-#line 2884 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* chunkexpr: tLINE expr tTO expr tOF simpleexpr */
-#line 669 "engines/director/lingo/lingo-gr.y"
+#line 670 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineToOf); }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* chunkexpr: tWORD expr tOF simpleexpr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+#line 671 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordOf); }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* chunkexpr: tWORD expr tTO expr tOF simpleexpr */
-#line 671 "engines/director/lingo/lingo-gr.y"
+#line 672 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordToOf); }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* reference: tSCRIPT simpleexprnoparens */
-#line 674 "engines/director/lingo/lingo-gr.y"
+#line 675 "engines/director/lingo/lingo-gr.y"
{
Common::String script("script");
g_lingo->codeFunc(&script, 1); }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
break;
case 120: /* reference: tWINDOW simpleexprnoparens */
-#line 677 "engines/director/lingo/lingo-gr.y"
+#line 678 "engines/director/lingo/lingo-gr.y"
{
Common::String window("window");
g_lingo->codeFunc(&window, 1); }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* proc: tPUT expr */
-#line 681 "engines/director/lingo/lingo-gr.y"
+#line 682 "engines/director/lingo/lingo-gr.y"
{
Common::String put("put");
g_lingo->codeCmd(&put, 1); }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
break;
case 124: /* proc: tEXIT tREPEAT */
-#line 686 "engines/director/lingo/lingo-gr.y"
+#line 687 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_repeatStack.size()) {
g_lingo->code2(LC::c_jump, 0);
@@ -2935,284 +2930,284 @@ yyreduce:
} else {
warning("# LINGO: exit repeat not inside repeat block");
} }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2934 "engines/director/lingo/lingo-gr.cpp"
break;
case 125: /* proc: tEXIT */
-#line 694 "engines/director/lingo/lingo-gr.y"
+#line 695 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_procret); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2940 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* $@11: %empty */
-#line 695 "engines/director/lingo/lingo-gr.y"
+#line 696 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 2946 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* proc: tGLOBAL $@11 globallist */
-#line 695 "engines/director/lingo/lingo-gr.y"
+#line 696 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* $@12: %empty */
-#line 696 "engines/director/lingo/lingo-gr.y"
+#line 697 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 2958 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* proc: tPROPERTY $@12 propertylist */
-#line 696 "engines/director/lingo/lingo-gr.y"
+#line 697 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 2964 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* $@13: %empty */
-#line 697 "engines/director/lingo/lingo-gr.y"
+#line 698 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* proc: tINSTANCE $@13 instancelist */
-#line 697 "engines/director/lingo/lingo-gr.y"
+#line 698 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 2976 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* proc: tOPEN expr tWITH expr */
-#line 698 "engines/director/lingo/lingo-gr.y"
+#line 699 "engines/director/lingo/lingo-gr.y"
{
Common::String open("open");
g_lingo->codeCmd(&open, 2); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 2984 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* proc: tOPEN expr */
-#line 701 "engines/director/lingo/lingo-gr.y"
+#line 702 "engines/director/lingo/lingo-gr.y"
{
Common::String open("open");
g_lingo->codeCmd(&open, 1); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 2992 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* proc: ID '(' ID ')' */
-#line 704 "engines/director/lingo/lingo-gr.y"
+#line 705 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_lazyeval);
g_lingo->codeString((yyvsp[-1].s)->c_str());
g_lingo->codeCmd((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* $@14: %empty */
-#line 710 "engines/director/lingo/lingo-gr.y"
+#line 711 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lazyeval); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 3014 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* proc: ID '(' ID ',' $@14 nonemptyarglist ')' */
-#line 711 "engines/director/lingo/lingo-gr.y"
+#line 712 "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 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3018 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* proc: ID '(' arglist ')' */
-#line 715 "engines/director/lingo/lingo-gr.y"
+#line 716 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeCmd((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3026 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* proc: ID arglist */
-#line 718 "engines/director/lingo/lingo-gr.y"
+#line 719 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeCmd((yyvsp[-1].s), (yyvsp[0].narg));
delete (yyvsp[-1].s); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3034 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* globallist: ID */
-#line 723 "engines/director/lingo/lingo-gr.y"
+#line 724 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarGlobal);
delete (yyvsp[0].s); }
-#line 3047 "engines/director/lingo/lingo-gr.cpp"
+#line 3042 "engines/director/lingo/lingo-gr.cpp"
break;
case 141: /* globallist: ID ',' globallist */
-#line 726 "engines/director/lingo/lingo-gr.y"
+#line 727 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarGlobal);
delete (yyvsp[-2].s); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3050 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* propertylist: ID */
-#line 731 "engines/director/lingo/lingo-gr.y"
+#line 732 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarProperty);
delete (yyvsp[0].s); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+#line 3058 "engines/director/lingo/lingo-gr.cpp"
break;
case 144: /* propertylist: ID ',' propertylist */
-#line 734 "engines/director/lingo/lingo-gr.y"
+#line 735 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarProperty);
delete (yyvsp[-2].s); }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+#line 3066 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* instancelist: ID */
-#line 739 "engines/director/lingo/lingo-gr.y"
+#line 740 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarInstance);
delete (yyvsp[0].s); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3074 "engines/director/lingo/lingo-gr.cpp"
break;
case 147: /* instancelist: ID ',' instancelist */
-#line 742 "engines/director/lingo/lingo-gr.y"
+#line 743 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarInstance);
delete (yyvsp[-2].s); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* gotofunc: tGOLOOP */
-#line 753 "engines/director/lingo/lingo-gr.y"
+#line 754 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoloop); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+#line 3088 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* gotofunc: tGO tNEXT */
-#line 754 "engines/director/lingo/lingo-gr.y"
+#line 755 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotonext); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+#line 3094 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* gotofunc: tGO tPREVIOUS */
-#line 755 "engines/director/lingo/lingo-gr.y"
+#line 756 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoprevious); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 3100 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* gotofunc: tGO expr */
-#line 756 "engines/director/lingo/lingo-gr.y"
+#line 757 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(LC::c_goto); }
-#line 3114 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* gotofunc: tGO expr gotomovie */
-#line 760 "engines/director/lingo/lingo-gr.y"
+#line 761 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_goto); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 3118 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* gotofunc: tGO gotomovie */
-#line 764 "engines/director/lingo/lingo-gr.y"
+#line 765 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_goto); }
-#line 3132 "engines/director/lingo/lingo-gr.cpp"
+#line 3127 "engines/director/lingo/lingo-gr.cpp"
break;
case 156: /* playfunc: tPLAY expr */
-#line 772 "engines/director/lingo/lingo-gr.y"
+#line 773 "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 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 3136 "engines/director/lingo/lingo-gr.cpp"
break;
case 157: /* playfunc: tPLAY expr gotomovie */
-#line 776 "engines/director/lingo/lingo-gr.y"
+#line 777 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_play); }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3145 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* playfunc: tPLAY gotomovie */
-#line 780 "engines/director/lingo/lingo-gr.y"
+#line 781 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_play); }
-#line 3159 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
case 159: /* $@15: %empty */
-#line 784 "engines/director/lingo/lingo-gr.y"
+#line 785 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeSetImmediate(true); }
-#line 3165 "engines/director/lingo/lingo-gr.cpp"
+#line 3160 "engines/director/lingo/lingo-gr.cpp"
break;
case 160: /* playfunc: tPLAYACCEL $@15 arglist */
-#line 784 "engines/director/lingo/lingo-gr.y"
+#line 785 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeSetImmediate(false);
g_lingo->codeCmd((yyvsp[-2].s), (yyvsp[0].narg));
delete (yyvsp[-2].s); }
-#line 3174 "engines/director/lingo/lingo-gr.cpp"
+#line 3169 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* $@16: %empty */
-#line 814 "engines/director/lingo/lingo-gr.y"
+#line 815 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3180 "engines/director/lingo/lingo-gr.cpp"
+#line 3175 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* defn: tMACRO $@16 ID lbl argdef '\n' argstore stmtlist */
-#line 815 "engines/director/lingo/lingo-gr.y"
+#line 816 "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 3190 "engines/director/lingo/lingo-gr.cpp"
+#line 3185 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* defn: tFACTORY ID */
-#line 820 "engines/director/lingo/lingo-gr.y"
+#line 821 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3196 "engines/director/lingo/lingo-gr.cpp"
+#line 3191 "engines/director/lingo/lingo-gr.cpp"
break;
case 164: /* $@17: %empty */
-#line 821 "engines/director/lingo/lingo-gr.y"
+#line 822 "engines/director/lingo/lingo-gr.y"
{ startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
-#line 3202 "engines/director/lingo/lingo-gr.cpp"
+#line 3197 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* defn: tMETHOD $@17 lbl argdef '\n' argstore stmtlist */
-#line 822 "engines/director/lingo/lingo-gr.y"
+#line 823 "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 3212 "engines/director/lingo/lingo-gr.cpp"
+#line 3207 "engines/director/lingo/lingo-gr.cpp"
break;
case 166: /* defn: on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef */
-#line 827 "engines/director/lingo/lingo-gr.y"
+#line 828 "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));
@@ -3221,192 +3216,192 @@ yyreduce:
checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
delete (yyvsp[-7].s);
delete (yyvsp[-1].s); }
-#line 3225 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
break;
case 167: /* defn: on lbl argdef '\n' argstore stmtlist */
-#line 835 "engines/director/lingo/lingo-gr.y"
+#line 836 "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 3235 "engines/director/lingo/lingo-gr.cpp"
+#line 3230 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* $@18: %empty */
-#line 841 "engines/director/lingo/lingo-gr.y"
+#line 842 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3241 "engines/director/lingo/lingo-gr.cpp"
+#line 3236 "engines/director/lingo/lingo-gr.cpp"
break;
case 169: /* on: tON $@18 ID */
-#line 841 "engines/director/lingo/lingo-gr.y"
+#line 842 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = (yyvsp[0].s); }
-#line 3247 "engines/director/lingo/lingo-gr.cpp"
+#line 3242 "engines/director/lingo/lingo-gr.cpp"
break;
case 170: /* argname: ID */
-#line 843 "engines/director/lingo/lingo-gr.y"
+#line 844 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); delete (yyvsp[0].s); }
-#line 3253 "engines/director/lingo/lingo-gr.cpp"
+#line 3248 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* argdef: %empty */
-#line 845 "engines/director/lingo/lingo-gr.y"
+#line 846 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3259 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* argdef: argname */
-#line 846 "engines/director/lingo/lingo-gr.y"
+#line 847 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3265 "engines/director/lingo/lingo-gr.cpp"
+#line 3260 "engines/director/lingo/lingo-gr.cpp"
break;
case 173: /* argdef: argname ',' argdef */
-#line 847 "engines/director/lingo/lingo-gr.y"
+#line 848 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3271 "engines/director/lingo/lingo-gr.cpp"
+#line 3266 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* endargdef: ID */
-#line 850 "engines/director/lingo/lingo-gr.y"
+#line 851 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3277 "engines/director/lingo/lingo-gr.cpp"
+#line 3272 "engines/director/lingo/lingo-gr.cpp"
break;
case 176: /* endargdef: endargdef ',' ID */
-#line 851 "engines/director/lingo/lingo-gr.y"
+#line 852 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3283 "engines/director/lingo/lingo-gr.cpp"
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* argstore: %empty */
-#line 853 "engines/director/lingo/lingo-gr.y"
+#line 854 "engines/director/lingo/lingo-gr.y"
{ inDef(); }
-#line 3289 "engines/director/lingo/lingo-gr.cpp"
+#line 3284 "engines/director/lingo/lingo-gr.cpp"
break;
case 178: /* arglist: %empty */
-#line 855 "engines/director/lingo/lingo-gr.y"
+#line 856 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3295 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
break;
case 179: /* arglist: expr */
-#line 856 "engines/director/lingo/lingo-gr.y"
+#line 857 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3301 "engines/director/lingo/lingo-gr.cpp"
+#line 3296 "engines/director/lingo/lingo-gr.cpp"
break;
case 180: /* arglist: expr ',' arglist */
-#line 857 "engines/director/lingo/lingo-gr.y"
+#line 858 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3307 "engines/director/lingo/lingo-gr.cpp"
+#line 3302 "engines/director/lingo/lingo-gr.cpp"
break;
case 181: /* nonemptyarglist: expr */
-#line 859 "engines/director/lingo/lingo-gr.y"
+#line 860 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3313 "engines/director/lingo/lingo-gr.cpp"
+#line 3308 "engines/director/lingo/lingo-gr.cpp"
break;
case 182: /* nonemptyarglist: expr ',' */
-#line 860 "engines/director/lingo/lingo-gr.y"
+#line 861 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3319 "engines/director/lingo/lingo-gr.cpp"
+#line 3314 "engines/director/lingo/lingo-gr.cpp"
break;
case 183: /* nonemptyarglist: expr ',' nonemptyarglist */
-#line 861 "engines/director/lingo/lingo-gr.y"
+#line 862 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3325 "engines/director/lingo/lingo-gr.cpp"
+#line 3320 "engines/director/lingo/lingo-gr.cpp"
break;
case 184: /* list: '[' valuelist ']' */
-#line 863 "engines/director/lingo/lingo-gr.y"
+#line 864 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 3331 "engines/director/lingo/lingo-gr.cpp"
+#line 3326 "engines/director/lingo/lingo-gr.cpp"
break;
case 185: /* valuelist: %empty */
-#line 865 "engines/director/lingo/lingo-gr.y"
+#line 866 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3337 "engines/director/lingo/lingo-gr.cpp"
+#line 3332 "engines/director/lingo/lingo-gr.cpp"
break;
case 186: /* valuelist: ':' */
-#line 866 "engines/director/lingo/lingo-gr.y"
+#line 867 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3343 "engines/director/lingo/lingo-gr.cpp"
+#line 3338 "engines/director/lingo/lingo-gr.cpp"
break;
case 187: /* valuelist: proplist */
-#line 867 "engines/director/lingo/lingo-gr.y"
+#line 868 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3349 "engines/director/lingo/lingo-gr.cpp"
+#line 3344 "engines/director/lingo/lingo-gr.cpp"
break;
case 188: /* valuelist: linearlist */
-#line 868 "engines/director/lingo/lingo-gr.y"
+#line 869 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3355 "engines/director/lingo/lingo-gr.cpp"
+#line 3350 "engines/director/lingo/lingo-gr.cpp"
break;
case 189: /* linearlist: expr */
-#line 870 "engines/director/lingo/lingo-gr.y"
+#line 871 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3361 "engines/director/lingo/lingo-gr.cpp"
+#line 3356 "engines/director/lingo/lingo-gr.cpp"
break;
case 190: /* linearlist: linearlist ',' expr */
-#line 871 "engines/director/lingo/lingo-gr.y"
+#line 872 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3367 "engines/director/lingo/lingo-gr.cpp"
+#line 3362 "engines/director/lingo/lingo-gr.cpp"
break;
case 191: /* proplist: proppair */
-#line 873 "engines/director/lingo/lingo-gr.y"
+#line 874 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3373 "engines/director/lingo/lingo-gr.cpp"
+#line 3368 "engines/director/lingo/lingo-gr.cpp"
break;
case 192: /* proplist: proplist ',' proppair */
-#line 874 "engines/director/lingo/lingo-gr.y"
+#line 875 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3379 "engines/director/lingo/lingo-gr.cpp"
+#line 3374 "engines/director/lingo/lingo-gr.cpp"
break;
case 193: /* proppair: SYMBOL ':' expr */
-#line 876 "engines/director/lingo/lingo-gr.y"
+#line 877 "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 3388 "engines/director/lingo/lingo-gr.cpp"
+#line 3383 "engines/director/lingo/lingo-gr.cpp"
break;
case 194: /* proppair: STRING ':' expr */
-#line 880 "engines/director/lingo/lingo-gr.y"
+#line 881 "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 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3392 "engines/director/lingo/lingo-gr.cpp"
break;
case 195: /* proppair: ID ':' expr */
-#line 884 "engines/director/lingo/lingo-gr.y"
+#line 885 "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 3406 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3410 "engines/director/lingo/lingo-gr.cpp"
+#line 3405 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3605,7 +3600,7 @@ yyreturn:
return yyresult;
}
-#line 890 "engines/director/lingo/lingo-gr.y"
+#line 891 "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 ccb4534118..c864400262 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -55,90 +55,92 @@ extern int yydebug;
YYerror = 256, /* error */
YYUNDEF = 257, /* "invalid token" */
UNARY = 258, /* UNARY */
- CASTREF = 259, /* CASTREF */
- VOID = 260, /* VOID */
- VAR = 261, /* VAR */
- POINT = 262, /* POINT */
- RECT = 263, /* RECT */
- ARRAY = 264, /* ARRAY */
- OBJECT = 265, /* OBJECT */
- FIELDREF = 266, /* FIELDREF */
- LEXERROR = 267, /* LEXERROR */
- PARRAY = 268, /* PARRAY */
- INT = 269, /* INT */
- ARGC = 270, /* ARGC */
- ARGCNORET = 271, /* ARGCNORET */
- THEENTITY = 272, /* THEENTITY */
- THEENTITYWITHID = 273, /* THEENTITYWITHID */
- THEMENUITEMENTITY = 274, /* THEMENUITEMENTITY */
- THEMENUITEMSENTITY = 275, /* THEMENUITEMSENTITY */
- FLOAT = 276, /* FLOAT */
- THEFUNC = 277, /* THEFUNC */
- THEFUNCINOF = 278, /* THEFUNCINOF */
- VARID = 279, /* VARID */
- STRING = 280, /* STRING */
- SYMBOL = 281, /* SYMBOL */
- ENDCLAUSE = 282, /* ENDCLAUSE */
- tPLAYACCEL = 283, /* tPLAYACCEL */
- tMETHOD = 284, /* tMETHOD */
- THEOBJECTPROP = 285, /* THEOBJECTPROP */
- tCAST = 286, /* tCAST */
- tFIELD = 287, /* tFIELD */
- tSCRIPT = 288, /* tSCRIPT */
- tWINDOW = 289, /* tWINDOW */
- tDOWN = 290, /* tDOWN */
- tELSE = 291, /* tELSE */
- tELSIF = 292, /* tELSIF */
- tEXIT = 293, /* tEXIT */
- tGLOBAL = 294, /* tGLOBAL */
- tGO = 295, /* tGO */
- tGOLOOP = 296, /* tGOLOOP */
- tIF = 297, /* tIF */
- tIN = 298, /* tIN */
- tINTO = 299, /* tINTO */
- tMACRO = 300, /* tMACRO */
- tMOVIE = 301, /* tMOVIE */
- tNEXT = 302, /* tNEXT */
- tOF = 303, /* tOF */
- tPREVIOUS = 304, /* tPREVIOUS */
- tPUT = 305, /* tPUT */
- tREPEAT = 306, /* tREPEAT */
- tSET = 307, /* tSET */
- tTHEN = 308, /* tTHEN */
- tTO = 309, /* tTO */
- tWHEN = 310, /* tWHEN */
- tWITH = 311, /* tWITH */
- tWHILE = 312, /* tWHILE */
- tFACTORY = 313, /* tFACTORY */
- tOPEN = 314, /* tOPEN */
- tPLAY = 315, /* tPLAY */
- tINSTANCE = 316, /* tINSTANCE */
- tGE = 317, /* tGE */
- tLE = 318, /* tLE */
- tEQ = 319, /* tEQ */
- tNEQ = 320, /* tNEQ */
- tAND = 321, /* tAND */
- tOR = 322, /* tOR */
- tNOT = 323, /* tNOT */
- tMOD = 324, /* tMOD */
- tAFTER = 325, /* tAFTER */
- tBEFORE = 326, /* tBEFORE */
- tCONCAT = 327, /* tCONCAT */
- tCONTAINS = 328, /* tCONTAINS */
- tSTARTS = 329, /* tSTARTS */
- tCHAR = 330, /* tCHAR */
- tITEM = 331, /* tITEM */
- tLINE = 332, /* tLINE */
- tWORD = 333, /* tWORD */
- tSPRITE = 334, /* tSPRITE */
- tINTERSECTS = 335, /* tINTERSECTS */
- tWITHIN = 336, /* tWITHIN */
- tTELL = 337, /* tTELL */
- tPROPERTY = 338, /* tPROPERTY */
- tON = 339, /* tON */
- tENDIF = 340, /* tENDIF */
- tENDREPEAT = 341, /* tENDREPEAT */
- tENDTELL = 342 /* tENDTELL */
+ VOID = 259, /* VOID */
+ VAR = 260, /* VAR */
+ POINT = 261, /* POINT */
+ RECT = 262, /* RECT */
+ ARRAY = 263, /* ARRAY */
+ OBJECT = 264, /* OBJECT */
+ LEXERROR = 265, /* LEXERROR */
+ PARRAY = 266, /* PARRAY */
+ CASTNAME = 267, /* CASTNAME */
+ CASTNUM = 268, /* CASTNUM */
+ FIELDNAME = 269, /* FIELDNAME */
+ FIELDNUM = 270, /* FIELDNUM */
+ INT = 271, /* INT */
+ ARGC = 272, /* ARGC */
+ ARGCNORET = 273, /* ARGCNORET */
+ THEENTITY = 274, /* THEENTITY */
+ THEENTITYWITHID = 275, /* THEENTITYWITHID */
+ THEMENUITEMENTITY = 276, /* THEMENUITEMENTITY */
+ THEMENUITEMSENTITY = 277, /* THEMENUITEMSENTITY */
+ FLOAT = 278, /* FLOAT */
+ THEFUNC = 279, /* THEFUNC */
+ THEFUNCINOF = 280, /* THEFUNCINOF */
+ VARID = 281, /* VARID */
+ STRING = 282, /* STRING */
+ SYMBOL = 283, /* SYMBOL */
+ ENDCLAUSE = 284, /* ENDCLAUSE */
+ tPLAYACCEL = 285, /* tPLAYACCEL */
+ tMETHOD = 286, /* tMETHOD */
+ THEOBJECTPROP = 287, /* THEOBJECTPROP */
+ tCAST = 288, /* tCAST */
+ tFIELD = 289, /* tFIELD */
+ tSCRIPT = 290, /* tSCRIPT */
+ tWINDOW = 291, /* tWINDOW */
+ tDOWN = 292, /* tDOWN */
+ tELSE = 293, /* tELSE */
+ tELSIF = 294, /* tELSIF */
+ tEXIT = 295, /* tEXIT */
+ tGLOBAL = 296, /* tGLOBAL */
+ tGO = 297, /* tGO */
+ tGOLOOP = 298, /* tGOLOOP */
+ tIF = 299, /* tIF */
+ tIN = 300, /* tIN */
+ tINTO = 301, /* tINTO */
+ tMACRO = 302, /* tMACRO */
+ tMOVIE = 303, /* tMOVIE */
+ tNEXT = 304, /* tNEXT */
+ tOF = 305, /* tOF */
+ tPREVIOUS = 306, /* tPREVIOUS */
+ tPUT = 307, /* tPUT */
+ tREPEAT = 308, /* tREPEAT */
+ tSET = 309, /* tSET */
+ tTHEN = 310, /* tTHEN */
+ tTO = 311, /* tTO */
+ tWHEN = 312, /* tWHEN */
+ tWITH = 313, /* tWITH */
+ tWHILE = 314, /* tWHILE */
+ tFACTORY = 315, /* tFACTORY */
+ tOPEN = 316, /* tOPEN */
+ tPLAY = 317, /* tPLAY */
+ tINSTANCE = 318, /* tINSTANCE */
+ tGE = 319, /* tGE */
+ tLE = 320, /* tLE */
+ tEQ = 321, /* tEQ */
+ tNEQ = 322, /* tNEQ */
+ tAND = 323, /* tAND */
+ tOR = 324, /* tOR */
+ tNOT = 325, /* tNOT */
+ tMOD = 326, /* tMOD */
+ tAFTER = 327, /* tAFTER */
+ tBEFORE = 328, /* tBEFORE */
+ tCONCAT = 329, /* tCONCAT */
+ tCONTAINS = 330, /* tCONTAINS */
+ tSTARTS = 331, /* tSTARTS */
+ tCHAR = 332, /* tCHAR */
+ tITEM = 333, /* tITEM */
+ tLINE = 334, /* tLINE */
+ tWORD = 335, /* tWORD */
+ tSPRITE = 336, /* tSPRITE */
+ tINTERSECTS = 337, /* tINTERSECTS */
+ tWITHIN = 338, /* tWITHIN */
+ tTELL = 339, /* tTELL */
+ tPROPERTY = 340, /* tPROPERTY */
+ tON = 341, /* tON */
+ tENDIF = 342, /* tENDIF */
+ tENDREPEAT = 343, /* tENDREPEAT */
+ tENDTELL = 344 /* tENDTELL */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -162,7 +164,7 @@ union YYSTYPE
Common::String *prop;
} objectprop;
-#line 166 "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 6c8697ceff..8209044e0c 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -195,7 +195,8 @@ static void mVar(Common::String *s, VarType type) {
%token UNARY
// Datum types
-%token CASTREF VOID VAR POINT RECT ARRAY OBJECT FIELDREF LEXERROR PARRAY
+%token VOID VAR POINT RECT ARRAY OBJECT LEXERROR PARRAY
+%token CASTNAME CASTNUM FIELDNAME FIELDNUM
%token<i> INT ARGC ARGCNORET
%token<e> THEENTITY THEENTITYWITHID THEMENUITEMENTITY THEMENUITEMSENTITY
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 1344c6b7b1..559d1436d6 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1279,17 +1279,25 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
}
break;
case kTheConstraint:
- if (d.asInt() != (int)channel->_constraint) {
- if (d.type == CASTREF) {
+ {
+ int channelId;
+ if (d.type == CASTNAME || d.type == CASTNUM) {
// Reference: CastMember ID
// Find the first channel that uses this cast.
- for (uint i = 0; i < score->_channels.size(); i++)
- if (score->_channels[i]->_sprite->_castId == d.u.i)
- d.u.i = i;
+ int castId = castIdFetch(d);
+ for (uint i = 0; i < score->_channels.size(); i++) {
+ if (score->_channels[i]->_sprite->_castId == castId) {
+ channelId = i;
+ break;
+ }
+ }
+ } else {
+ channelId = d.asInt();
+ }
+ if (channelId != (int)channel->_constraint) {
+ channel->_constraint = d.u.i;
+ channel->_dirty = true;
}
-
- channel->_constraint = d.u.i;
- channel->_dirty = true;
}
break;
case kTheCursor:
@@ -1569,7 +1577,7 @@ Datum Lingo::getObjectProp(Datum &obj, Common::String &propName) {
d = obj.u.parr->operator[](index - 1).v;
}
return d;
- } else if (obj.type == CASTREF || obj.type == FIELDREF) {
+ } else if (obj.type == CASTNAME || obj.type == CASTNUM || obj.type == FIELDNAME || obj.type == FIELDNUM) {
Movie *movie = _vm->getCurrentMovie();
if (!movie) {
warning("Lingo::getObjectProp(): No movie loaded");
@@ -1583,7 +1591,7 @@ Datum Lingo::getObjectProp(Datum &obj, Common::String &propName) {
warning("Lingo::getObjectProp(): CastMember %d not found", id);
return d;
}
- if (obj.type == FIELDREF && member->_type != kCastText) {
+ if ((obj.type == FIELDNAME || obj.type == FIELDNUM) && member->_type != kCastText) {
warning("Lingo::getObjectProp(): CastMember %d is not a field", id);
return d;
}
@@ -1614,7 +1622,7 @@ void Lingo::setObjectProp(Datum &obj, Common::String &propName, Datum &val) {
PCell cell = PCell(propName, val);
obj.u.parr->push_back(cell);
}
- } else if (obj.type == CASTREF || obj.type == FIELDREF) {
+ } else if (obj.type == CASTNAME || obj.type == CASTNUM || obj.type == FIELDNAME || obj.type == FIELDNUM) {
Movie *movie = _vm->getCurrentMovie();
if (!movie) {
warning("Lingo::setObjectProp(): No movie loaded");
@@ -1628,7 +1636,7 @@ void Lingo::setObjectProp(Datum &obj, Common::String &propName, Datum &val) {
warning("Lingo::setObjectProp(): CastMember %d not found", id);
return;
}
- if (obj.type == FIELDREF && member->_type != kCastText) {
+ if ((obj.type == FIELDNAME || obj.type == FIELDNUM) && member->_type != kCastText) {
warning("Lingo::setObjectProp(): CastMember %d is not a field", id);
return;
}
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 26dc6c2a71..2ec6be87a5 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -689,7 +689,7 @@ int Lingo::getAlignedType(const Datum &d1, const Datum &d2) {
int d1Type = d1.type;
int d2Type = d2.type;
- if (d1Type == STRING || d1Type == FIELDREF) {
+ if (d1Type == STRING || d1Type == FIELDNAME || d1Type == FIELDNUM) {
Common::String src = d1.asString();
if (!src.empty()) {
char *endPtr = 0;
@@ -699,7 +699,7 @@ int Lingo::getAlignedType(const Datum &d1, const Datum &d2) {
}
}
}
- if (d2Type == STRING || d2Type == FIELDREF) {
+ if (d2Type == STRING || d2Type == FIELDNAME || d2Type == FIELDNUM) {
Common::String src = d2.asString();
if (!src.empty()) {
char *endPtr = 0;
@@ -718,7 +718,8 @@ int Lingo::getAlignedType(const Datum &d1, const Datum &d2) {
if (d1Type == FLOAT || d2Type == FLOAT) {
opType = FLOAT;
- } else if ((d1Type == INT || d1Type == CASTREF) && (d2Type == INT || d2Type == CASTREF)) {
+ } else if ((d1Type == INT || d1Type == CASTNAME || d1Type == CASTNUM)
+ && (d2Type == INT || d2Type == CASTNAME || d2Type == CASTNUM)) {
opType = INT;
}
@@ -795,6 +796,8 @@ void Datum::reset() {
#ifndef __COVERITY__
if (*refCount <= 0) {
switch (type) {
+ case CASTNAME:
+ case FIELDNAME:
case VAR:
case STRING:
delete u.s;
@@ -839,7 +842,8 @@ int Datum::asInt() const {
switch (type) {
case STRING:
- case FIELDREF:
+ case FIELDNAME:
+ case FIELDNUM:
{
Common::String src = asString();
char *endPtr = 0;
@@ -855,7 +859,6 @@ int Datum::asInt() const {
// no-op
break;
case INT:
- case CASTREF:
res = u.i;
break;
case FLOAT:
@@ -877,7 +880,8 @@ double Datum::asFloat() const {
switch (type) {
case STRING:
- case FIELDREF:
+ case FIELDNAME:
+ case FIELDNUM:
{
Common::String src = asString();
char *endPtr = 0;
@@ -893,7 +897,6 @@ double Datum::asFloat() const {
// no-op
break;
case INT:
- case CASTREF:
res = (double)u.i;
break;
case FLOAT:
@@ -950,10 +953,16 @@ Common::String Datum::asString(bool printonly) const {
case VAR:
s = Common::String::format("var: #%s", u.s->c_str());
break;
- case CASTREF:
- case FIELDREF:
+ case CASTNAME:
+ s = Common::String::format("cast \"%s\"", u.s->c_str());
+ break;
+ case CASTNUM:
+ s = Common::String::format("cast %d", u.i);
+ break;
+ case FIELDNAME:
+ case FIELDNUM:
{
- int idx = u.i;
+ int idx = g_lingo->castIdFetch(*this);
CastMember *member = g_director->getCurrentMovie()->getCastMember(idx);
if (!member) {
warning("asString(): Unknown cast id %d", idx);
@@ -961,14 +970,10 @@ Common::String Datum::asString(bool printonly) const {
break;
}
- if (type == FIELDREF) {
- if (!printonly) {
- s = ((TextCastMember *)member)->getText();
- } else {
- s = Common::String::format("reference: \"%s\"", ((TextCastMember *)member)->getText().c_str());
- }
+ if (!printonly) {
+ s = ((TextCastMember *)member)->getText();
} else {
- s = Common::String::format("cast %d", idx);
+ s = Common::String::format("field: \"%s\"", ((TextCastMember *)member)->getText().c_str());
}
}
break;
@@ -1022,8 +1027,10 @@ const char *Datum::type2str(bool isk) const {
return isk ? "#float" : "FLOAT";
case STRING:
return isk ? "#string" : "STRING";
- case CASTREF:
- return "CASTREF";
+ case CASTNAME:
+ return "CASTNAME";
+ case CASTNUM:
+ return "CASTNUM";
case VOID:
return isk ? "#void" : "VOID";
case POINT:
@@ -1032,8 +1039,10 @@ const char *Datum::type2str(bool isk) const {
return isk ? "#symbol" : "SYMBOL";
case OBJECT:
return isk ? "#object" : "OBJECT";
- case FIELDREF:
- return "FIELDREF";
+ case FIELDNAME:
+ return "FIELDNAME";
+ case FIELDNUM:
+ return "FIELDNUM";
case VAR:
return isk ? "#var" : "VAR";
default:
@@ -1208,34 +1217,37 @@ int Lingo::getInt(uint pc) {
return (int)READ_UINT32(&((*_currentScript)[pc]));
}
-int Lingo::castIdFetch(Datum &var) {
+int Lingo::castIdFetch(const Datum &var) {
Movie *movie = _vm->getCurrentMovie();
if (!movie) {
warning("castIdFetch: No movie");
return 0;
}
- int id = 0;
- if (var.type == STRING) {
- CastMember *member = movie->getCastMemberByName(var.asString());
+ if (var.type == STRING || var.type == CASTNAME || var.type == FIELDNAME) {
+ CastMember *member = movie->getCastMemberByName(*var.u.s);
if (member)
- id = member->getID();
- else
- warning("castIdFetch: reference to non-existent cast member: %s", var.u.s->c_str());
- } else if (var.type == INT || var.type == FLOAT || var.type == CASTREF || var.type == FIELDREF) {
- int castId = var.asInt();
- if (!_vm->getCurrentMovie()->getCastMember(castId))
- warning("castIdFetch: reference to non-existent cast ID: %d", castId);
- else
- id = castId;
+ return member->getID();
+
+ warning("castIdFetch: reference to non-existent cast member: %s", var.u.s->c_str());
+ return 0;
+ }
+
+ int castId = 0;
+ if (var.type == INT || var.type == CASTNUM || var.type == FIELDNUM) {
+ castId = var.u.i;
+ } else if (var.type == FLOAT) {
+ castId = var.u.f;
} else if (var.type == VOID) {
warning("castIdFetch: reference to VOID cast ID");
- return 0;
} else {
error("castIdFetch: was expecting STRING or INT, got %s", var.type2str());
}
- return id;
+ if (!_vm->getCurrentMovie()->getCastMember(castId))
+ warning("castIdFetch: reference to non-existent cast ID: %d", castId);
+
+ return castId;
}
void Lingo::varAssign(Datum &var, Datum &value, bool global, DatumHash *localvars) {
@@ -1243,7 +1255,7 @@ void Lingo::varAssign(Datum &var, Datum &value, bool global, DatumHash *localvar
localvars = _localvars;
}
- if (var.type != VAR && var.type != FIELDREF) {
+ if (var.type != VAR && var.type != FIELDNAME && var.type != FIELDNUM) {
warning("varAssign: assignment to non-variable");
return;
}
@@ -1271,13 +1283,13 @@ void Lingo::varAssign(Datum &var, Datum &value, bool global, DatumHash *localvar
}
warning("varAssign: variable %s not defined", name.c_str());
- } else if (var.type == FIELDREF || var.type == CASTREF) {
+ } else if (var.type == FIELDNAME || var.type == FIELDNUM || var.type == CASTNAME || var.type == CASTNUM) {
Movie *movie = g_director->getCurrentMovie();
if (!movie) {
warning("varAssign: Assigning to a reference to an empty movie");
return;
}
- int referenceId = var.u.i;
+ int referenceId = castIdFetch(var);
CastMember *member = g_director->getCurrentMovie()->getCastMember(referenceId);
if (!member) {
warning("varAssign: Unknown cast id %d", referenceId);
@@ -1301,7 +1313,7 @@ Datum Lingo::varFetch(Datum &var, bool global, DatumHash *localvars, bool silent
Datum result;
result.type = VOID;
- if (var.type != VAR && var.type != FIELDREF) {
+ if (var.type != VAR && var.type != FIELDNAME && var.type != FIELDNUM) {
warning("varFetch: fetch from non-variable");
return result;
}
@@ -1335,7 +1347,7 @@ Datum Lingo::varFetch(Datum &var, bool global, DatumHash *localvars, bool silent
if (!silent)
warning("varFetch: variable %s not found", name.c_str());
return result;
- } else if (var.type == FIELDREF) {
+ } else if (var.type == FIELDNAME || var.type == FIELDNUM) {
CastMember *cast = _vm->getCurrentMovie()->getCastMember(var.u.i);
if (cast) {
switch (cast->_type) {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 321bb49a0e..044f9da15c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -285,7 +285,7 @@ public:
void pushContext(const Symbol funcSym, bool allowRetVal, Datum defaultRetVal);
void popContext();
void cleanLocalVars();
- int castIdFetch(Datum &var);
+ int castIdFetch(const Datum &var);
void varAssign(Datum &var, Datum &value, bool global = false, DatumHash *localvars = nullptr);
Datum varFetch(Datum &var, bool global = false, DatumHash *localvars = nullptr, bool silent = false);
More information about the Scummvm-git-logs
mailing list