[Scummvm-git-logs] scummvm master -> d50b9a8a37feef9d908675d1bbdc2ea0d46e5bfe
djsrv
dservilla at gmail.com
Sat Aug 22 01:53:29 UTC 2020
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4c7593659b DIRECTOR: LINGO: Fix 0 indices in c_charToOf
3bf6f79a3e DIRECTOR: Fix crash on mouse move in lingotests
c147a5c979 DIRECTOR: LINGO: Implement chunk refs
5201974ec7 DIRECTOR: LINGO: Comment out bad chunk tests
d50b9a8a37 DIRECTOR: LINGO: Add chunk tests
Commit: 4c7593659b4685c2b78304f13c00d54b53e64602
https://github.com/scummvm/scummvm/commit/4c7593659b4685c2b78304f13c00d54b53e64602
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T21:52:54-04:00
Commit Message:
DIRECTOR: LINGO: Fix 0 indices in c_charToOf
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index d80f3bb2ce..f0916fe882 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1033,10 +1033,10 @@ void LC::c_charToOf() {
Datum res;
// The if order is important. It mimicks the checks, i.e. bugs, of Director 4.
- if (indexFrom < 0)
+ if (indexFrom < 1)
res = Datum(chunkExpr);
- else if (indexTo < 0)
- res = Datum(Common::String(chunkExpr[indexTo - 1])); // treat as charOf
+ else if (indexTo < 1)
+ res = Datum(Common::String(chunkExpr[indexFrom - 1])); // treat as charOf
else if (indexFrom > indexTo)
res = Datum("");
else if (uint(indexFrom) > chunkExpr.size())
Commit: 3bf6f79a3eabab06d53ccaad32c33ecadbe24fce
https://github.com/scummvm/scummvm/commit/3bf6f79a3eabab06d53ccaad32c33ecadbe24fce
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T21:52:54-04:00
Commit Message:
DIRECTOR: Fix crash on mouse move in lingotests
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 10b1db4aee..589dc77627 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -518,6 +518,9 @@ void Score::renderSprites(uint16 frameId, RenderMode mode) {
void Score::renderCursor(Common::Point pos) {
uint spriteId = 0;
+ if (_channels.empty())
+ return;
+
for (int i = _channels.size() - 1; i >=0; i--)
if (_channels[i]->isMouseIn(pos) && !_channels[i]->_cursor.isEmpty())
spriteId = i;
Commit: c147a5c979c26f1b6ab8cdc2f5ced82a0fde11e1
https://github.com/scummvm/scummvm/commit/c147a5c979c26f1b6ab8cdc2f5ced82a0fde11e1
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T21:52:54-04:00
Commit Message:
DIRECTOR: LINGO: Implement chunk refs
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
engines/director/types.h
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index f0916fe882..02c1cef86b 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -875,266 +875,226 @@ void LC::c_within() {
}
}
-void LC::c_of() {
- // put char 5 of word 1 of line 2 into field "thing"
- Datum target = g_lingo->pop();
- Datum last_line = g_lingo->pop();
- Datum first_line = g_lingo->pop();
- Datum last_item = g_lingo->pop();
- Datum first_item = g_lingo->pop();
- Datum last_word = g_lingo->pop();
- Datum first_word = g_lingo->pop();
- Datum last_char = g_lingo->pop();
- Datum first_char = g_lingo->pop();
-
- Common::String result = target.asString();
-
- if (first_line.u.i > 0) {
- Common::String newline("\r");
- int first = first_line.u.i;
- int last = first;
- if (last_line.u.i > 0) {
- if ((first_item.u.i > 0) || (first_word.u.i > 0) || (first_char.u.i > 0)) {
- warning("LC::c_of(): last_line defined but unused");
- } else if (last_line.u.i < first_line.u.i) {
- warning("LC::c_of(): last_line before first_line, ignoring");
- } else {
- last = last_line.u.i;
- }
- }
- uint32 pointer = 0;
- int curLine = 0;
- int firstIndex = -1;
- int lastIndex = -1;
- while (pointer < result.size()) {
- curLine += 1;
- if (curLine == first) {
- firstIndex = pointer;
- }
- pointer = result.find(newline, pointer);
- if (curLine == last) {
- lastIndex = pointer;
- break;
- }
+Datum LC::chunkRef(ChunkType type, int startChunk, int endChunk, const Datum &src) {
+ // A chunk expression is made up of 0 or more chunks within a source text.
+ // These chunks are called chars, words, items, or lines, but it's easier to think of them
+ // as a substring between 0 or more skip characters and a break character (or the end of the string).
+ // This function returns a reference to the source text, the start index of the first chunk,
+ // and the end index of the last chunk in the chunk expression.
+
+ if (startChunk < 1 || (0 > endChunk && endChunk < startChunk))
+ return src;
+
+ if (endChunk < 1)
+ endChunk = startChunk;
+
+ Common::String skipChars;
+ Common::String breakChars;
+
+ switch (type) {
+ case kChunkChar:
+ skipChars = "";
+ breakChars = "";
+ break;
+ case kChunkWord:
+ skipChars = "\t\n\r ";
+ breakChars = "\t\n\r ";
+ break;
+ case kChunkItem:
+ skipChars = "";
+ breakChars = Common::String::format("%c", g_lingo->_itemDelimiter);
+ break;
+ case kChunkLine:
+ skipChars = "";
+ breakChars = "\n\r";
+ break;
+ }
+
+ Common::String str = src.asString();
+ int idx = 0;
+ int chunkNum = 0;
+
+ int startIdx = -1;
+ int endIdx = -1;
+
+ while (true) {
+ // each iteration processes one chunk
+
+ // find the start of the chunk
+ while (idx < (int)str.size() && skipChars.contains(str[idx])) {
+ idx++;
}
- if (firstIndex < 0 || lastIndex < 0) {
- warning("LC::c_of(): first_line or last_line out of range");
- result = "";
- } else {
- result = result.substr(firstIndex, lastIndex);
+ chunkNum++;
+ if (chunkNum == startChunk) {
+ startIdx = idx; // found start of chunk expression
}
- }
-
- if (first_item.u.i > 0 || last_item.u.i > 0) {
- warning("STUB: LC::c_of() item indexing");
- }
- if (first_word.u.i > 0) {
- int first = first_word.u.i;
- int last = first;
- if (last_word.u.i > 0) {
- if (first_char.u.i > 0) {
- warning("LC::c_of(): last_word defined but unused");
- } else if (last_word.u.i < first_word.u.i) {
- warning("LC::c_of(): last_word before first_word, ignoring");
- } else {
- last = last_word.u.i;
+ // find the end of the chunk
+ if (!breakChars.empty()) {
+ while (idx < (int)str.size() && !breakChars.contains(str[idx])) {
+ idx++;
}
+ } else if (idx < (int)str.size()) {
+ idx++;
}
- uint32 pointer = 0;
- int curWord = 0;
- int firstIndex = -1;
- int lastIndex = -1;
- bool inWord = false;
- while (pointer < result.size()) {
- if ((result[pointer] == '\r') || (result[pointer] == '\t') ||
- (result[pointer] == '\n') || (result[pointer] == ' ')) {
- if (inWord) {
- inWord = false;
- if (last == curWord) {
- break;
- }
- }
- } else {
- if (!inWord) {
- inWord = true;
- curWord += 1;
- if (first == curWord) {
- firstIndex = pointer;
- }
- }
- }
- pointer += 1;
- }
- lastIndex = pointer;
- if (firstIndex < 0) {
- warning("LC::c_of(): first_word out of range");
- result = "";
- } else {
- result = result.substr(firstIndex, lastIndex - firstIndex);
+ if (chunkNum == endChunk || idx == (int)str.size()) {
+ endIdx = idx; // found end of chunk expression
+ break;
}
- }
- if (first_char.u.i > 0) {
- int first = first_char.u.i;
- int last = first;
- if (last_char.u.i > 0) {
- if (last_char.u.i < first_char.u.i) {
- warning("LC::c_of(): last_char before first_char, ignoring");
- } else {
- last = last_char.u.i;
- }
- }
- result = result.substr(first - 1, last - first);
+ if (!breakChars.empty())
+ idx++; // skip break char
}
- target = Datum(result);
+ if (startIdx < 0)
+ startIdx = endIdx;
+
+ Datum res;
+ res.u.cref = new ChunkReference(src, startIdx, endIdx);
+ res.type = CHUNKREF;
+ return res;
+}
+
+void LC::c_of() {
+ // put char 5 of word 1 of line 2 into field "thing"
+ Datum src = g_lingo->pop();
+ Datum lastLine = g_lingo->pop();
+ Datum firstLine = g_lingo->pop();
+ Datum lastItem = g_lingo->pop();
+ Datum firstItem = g_lingo->pop();
+ Datum lastWord = g_lingo->pop();
+ Datum firstWord = g_lingo->pop();
+ Datum lastChar = g_lingo->pop();
+ Datum firstChar = g_lingo->pop();
+
+ Datum res = src;
+
+ if (firstChar.asInt() > 0)
+ res = LC::chunkRef(kChunkChar, firstChar.asInt(), lastChar.asInt(), src);
+ else if (firstWord.asInt() > 0)
+ res = LC::chunkRef(kChunkWord, firstWord.asInt(), lastWord.asInt(), src);
+ else if (firstItem.asInt() > 0)
+ res = LC::chunkRef(kChunkItem, firstItem.asInt(), lastItem.asInt(), src);
+ else if (lastLine.asInt() > 0)
+ res = LC::chunkRef(kChunkLine, firstLine.asInt(), lastLine.asInt(), src);
- g_lingo->push(target);
+ g_lingo->push(res);
}
void LC::c_charOf() {
- Datum d2 = g_lingo->pop(); // string
- Datum d1 = g_lingo->pop(); // index
+ Datum src = g_lingo->pop(false);
+ Datum index = g_lingo->pop();
- if ((d1.type != INT && d1.type != FLOAT) || d2.type != STRING) {
- warning("LC::c_charOf(): Called with wrong data types: %s and %s", d1.type2str(), d2.type2str());
+ if ((index.type != INT && index.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ g_lingo->lingoError("LC::c_charOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
}
- Datum res;
- int index = d1.asInt();
- Common::String chunkExpr = *d2.u.s;
-
- if (index < 1)
- res = Datum(chunkExpr);
- else if (uint(index) > chunkExpr.size())
- res = Datum("");
- else
- res = Datum(Common::String(chunkExpr[index - 1]));
- g_lingo->push(res);
+ g_lingo->push(LC::chunkRef(kChunkChar, index.asInt(), 0, src));
}
void LC::c_charToOf() {
- Datum d3 = g_lingo->pop(); // string
- Datum d2 = g_lingo->pop(); // indexFrom
- Datum d1 = g_lingo->pop(); // indexTo
+ Datum src = g_lingo->pop(false);
+ Datum indexTo = g_lingo->pop();
+ Datum indexFrom = g_lingo->pop();
- if ((d1.type != INT && d1.type != FLOAT) || (d2.type != INT && d2.type != FLOAT) || d3.type != STRING) {
- warning("LC::c_charToOf(): Called with wrong data types: %s, %s and %s", d1.type2str(), d2.type2str(), d3.type2str());
+ if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_charToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
}
- int indexFrom = d1.asInt();
- int indexTo = d2.asInt();
- Common::String chunkExpr = *d3.u.s;
-
- Datum res;
- // The if order is important. It mimicks the checks, i.e. bugs, of Director 4.
- if (indexFrom < 1)
- res = Datum(chunkExpr);
- else if (indexTo < 1)
- res = Datum(Common::String(chunkExpr[indexFrom - 1])); // treat as charOf
- else if (indexFrom > indexTo)
- res = Datum("");
- else if (uint(indexFrom) > chunkExpr.size())
- res = Datum("");
- else
- res = Datum(chunkExpr.substr(indexFrom - 1, indexTo - indexFrom + 1));
- g_lingo->push(res);
+ g_lingo->push(LC::chunkRef(kChunkChar, indexFrom.asInt(), indexTo.asInt(), src));
}
void LC::c_itemOf() {
+ Datum src = g_lingo->pop(false);
+ Datum index = g_lingo->pop();
- Datum d2 = g_lingo->pop(); // chunkExpression
- Datum d1 = g_lingo->pop(); // index
-
- char delimiter = g_lingo->_itemDelimiter;
-
- if ((d1.type != INT && d1.type != FLOAT) || d2.type != STRING) {
- warning("LC::c_itemOf(): Called with wrong data types: %s and %s", d1.type2str(), d2.type2str());
+ if ((index.type != INT && index.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_itemOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
g_lingo->push(Datum(""));
return;
}
- int index = d1.asInt();
-
- if (index < 1) {
- // returns the input string
- g_lingo->push(d2);
- return;
- }
- Common::String chunkExpr = *d2.u.s;
- uint startPos = 0;
-
- while (index-- > 1) {
- startPos = chunkExpr.find(delimiter, startPos);
- if (startPos == Common::String::npos)
- break;
- startPos++; // skipping comma
- }
-
- Datum res;
- if (startPos == Common::String::npos) {
- res = Datum("");
- } else {
- uint endPos = chunkExpr.find(delimiter, startPos);
- if (endPos == Common::String::npos)
- endPos = chunkExpr.size();
- res = Datum(chunkExpr.substr(startPos, endPos - startPos));
- }
-
- g_lingo->push(res);
+ g_lingo->push(LC::chunkRef(kChunkItem, index.asInt(), 0, src));
}
void LC::c_itemToOf() {
- Datum d3 = g_lingo->pop();
- Datum d2 = g_lingo->pop();
- Datum d1 = g_lingo->pop();
+ Datum src = g_lingo->pop(false);
+ Datum indexTo = g_lingo->pop();
+ Datum indexFrom = g_lingo->pop();
- warning("STUB: LC::c_itemToOf(): %d %d %d", d1.u.i, d2.u.i, d3.u.i);
+ if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_itemToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
+ g_lingo->push(Datum(""));
+ return;
+ }
- g_lingo->push(d1);
+ g_lingo->push(LC::chunkRef(kChunkItem, indexFrom.asInt(), indexTo.asInt(), src));
}
void LC::c_lineOf() {
- Datum d2 = g_lingo->pop();
- Datum d1 = g_lingo->pop();
+ Datum src = g_lingo->pop(false);
+ Datum index = g_lingo->pop();
- warning("STUB: LC::c_lineOf(): %d %d", d1.u.i, d2.u.i);
+ if ((index.type != INT && index.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_lineOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
+ g_lingo->push(Datum(""));
+ return;
+ }
- g_lingo->push(d1);
+ g_lingo->push(LC::chunkRef(kChunkLine, index.asInt(), 0, src));
}
void LC::c_lineToOf() {
- Datum d3 = g_lingo->pop();
- Datum d2 = g_lingo->pop();
- Datum d1 = g_lingo->pop();
+ Datum src = g_lingo->pop(false);
+ Datum indexTo = g_lingo->pop();
+ Datum indexFrom = g_lingo->pop();
- warning("STUB: LC::c_lineToOf(): %d %d %d", d1.u.i, d2.u.i, d3.u.i);
+ if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_lineToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
+ g_lingo->push(Datum(""));
+ return;
+ }
- g_lingo->push(d1);
+ g_lingo->push(LC::chunkRef(kChunkLine, indexFrom.asInt(), indexTo.asInt(), src));
}
void LC::c_wordOf() {
- Datum d2 = g_lingo->pop();
- Datum d1 = g_lingo->pop();
+ Datum src = g_lingo->pop(false);
+ Datum index = g_lingo->pop();
- warning("STUB: LC::c_wordOf(): %d %d", d1.u.i, d2.u.i);
+ if ((index.type != INT && index.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_wordOf(): Called with wrong data types: %s and %s", index.type2str(), src.type2str());
+ g_lingo->push(Datum(""));
+ return;
+ }
- g_lingo->push(d1);
+ g_lingo->push(LC::chunkRef(kChunkWord, index.asInt(), 0, src));
}
void LC::c_wordToOf() {
- Datum d3 = g_lingo->pop();
- Datum d2 = g_lingo->pop();
- Datum d1 = g_lingo->pop();
+ Datum src = g_lingo->pop(false);
+ Datum indexTo = g_lingo->pop();
+ Datum indexFrom = g_lingo->pop();
- warning("STUB: LC::c_wordToOf(): %d %d %d", d1.u.i, d2.u.i, d3.u.i);
+ if ((indexTo.type != INT && indexTo.type != FLOAT) || (indexFrom.type != INT && indexFrom.type != FLOAT)
+ || (src.type != STRING && src.type != VAR && src.type != FIELDREF && src.type != CHUNKREF && src.type != CASTREF)) {
+ warning("LC::c_wordToOf(): Called with wrong data types: %s, %s and %s", indexTo.type2str(), indexFrom.type2str(), src.type2str());
+ g_lingo->push(Datum(""));
+ return;
+ }
- g_lingo->push(d1);
+ g_lingo->push(LC::chunkRef(kChunkWord, indexFrom.asInt(), indexTo.asInt(), src));
}
void LC::c_and() {
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 461ccc1a92..c07a9a75d4 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -56,6 +56,7 @@ void c_starts();
void c_intersects();
void c_within();
+Datum chunkRef(ChunkType type, int startChunk, int endChunk, const Datum &src);
void c_of();
void c_charOf();
void c_charToOf();
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 643a7b5a44..9ff550f179 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -235,159 +235,160 @@ enum yysymbol_kind_t
YYSYMBOL_PARRAY = 11, /* PARRAY */
YYSYMBOL_CASTREF = 12, /* CASTREF */
YYSYMBOL_FIELDREF = 13, /* FIELDREF */
- 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_tASSERTERROR = 88, /* tASSERTERROR */
- YYSYMBOL_89_ = 89, /* '<' */
- YYSYMBOL_90_ = 90, /* '>' */
- YYSYMBOL_91_ = 91, /* '&' */
- YYSYMBOL_92_ = 92, /* '+' */
- YYSYMBOL_93_ = 93, /* '-' */
- YYSYMBOL_94_ = 94, /* '*' */
- YYSYMBOL_95_ = 95, /* '/' */
- YYSYMBOL_96_ = 96, /* '%' */
- YYSYMBOL_97_n_ = 97, /* '\n' */
- YYSYMBOL_98_ = 98, /* '(' */
- YYSYMBOL_99_ = 99, /* ')' */
- YYSYMBOL_100_ = 100, /* ',' */
- YYSYMBOL_101_ = 101, /* '[' */
- YYSYMBOL_102_ = 102, /* ']' */
- YYSYMBOL_103_ = 103, /* ':' */
- YYSYMBOL_YYACCEPT = 104, /* $accept */
- YYSYMBOL_program = 105, /* program */
- YYSYMBOL_programline = 106, /* programline */
- YYSYMBOL_ID = 107, /* ID */
- YYSYMBOL_asgn = 108, /* asgn */
- YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
- YYSYMBOL_stmt = 110, /* stmt */
- YYSYMBOL_111_1 = 111, /* $@1 */
- YYSYMBOL_112_2 = 112, /* $@2 */
- YYSYMBOL_113_3 = 113, /* $@3 */
- YYSYMBOL_114_4 = 114, /* $@4 */
- YYSYMBOL_115_5 = 115, /* $@5 */
- YYSYMBOL_116_6 = 116, /* $@6 */
- YYSYMBOL_117_7 = 117, /* $@7 */
- YYSYMBOL_118_8 = 118, /* $@8 */
- YYSYMBOL_119_9 = 119, /* $@9 */
- YYSYMBOL_startrepeat = 120, /* startrepeat */
- YYSYMBOL_tellstart = 121, /* tellstart */
- YYSYMBOL_asserterrorstart = 122, /* asserterrorstart */
- 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 */
+ YYSYMBOL_CHUNKREF = 14, /* CHUNKREF */
+ YYSYMBOL_INT = 15, /* INT */
+ YYSYMBOL_ARGC = 16, /* ARGC */
+ YYSYMBOL_ARGCNORET = 17, /* ARGCNORET */
+ YYSYMBOL_THEENTITY = 18, /* THEENTITY */
+ YYSYMBOL_THEENTITYWITHID = 19, /* THEENTITYWITHID */
+ YYSYMBOL_THEMENUITEMENTITY = 20, /* THEMENUITEMENTITY */
+ YYSYMBOL_THEMENUITEMSENTITY = 21, /* THEMENUITEMSENTITY */
+ YYSYMBOL_FLOAT = 22, /* FLOAT */
+ YYSYMBOL_THEFUNC = 23, /* THEFUNC */
+ YYSYMBOL_THEFUNCINOF = 24, /* THEFUNCINOF */
+ YYSYMBOL_VARID = 25, /* VARID */
+ YYSYMBOL_STRING = 26, /* STRING */
+ YYSYMBOL_SYMBOL = 27, /* SYMBOL */
+ YYSYMBOL_ENDCLAUSE = 28, /* ENDCLAUSE */
+ YYSYMBOL_tPLAYACCEL = 29, /* tPLAYACCEL */
+ YYSYMBOL_tMETHOD = 30, /* tMETHOD */
+ YYSYMBOL_THEOBJECTPROP = 31, /* THEOBJECTPROP */
+ YYSYMBOL_tCAST = 32, /* tCAST */
+ YYSYMBOL_tFIELD = 33, /* tFIELD */
+ YYSYMBOL_tSCRIPT = 34, /* tSCRIPT */
+ YYSYMBOL_tWINDOW = 35, /* tWINDOW */
+ YYSYMBOL_tDOWN = 36, /* tDOWN */
+ YYSYMBOL_tELSE = 37, /* tELSE */
+ YYSYMBOL_tELSIF = 38, /* tELSIF */
+ YYSYMBOL_tEXIT = 39, /* tEXIT */
+ YYSYMBOL_tGLOBAL = 40, /* tGLOBAL */
+ YYSYMBOL_tGO = 41, /* tGO */
+ YYSYMBOL_tGOLOOP = 42, /* tGOLOOP */
+ YYSYMBOL_tIF = 43, /* tIF */
+ YYSYMBOL_tIN = 44, /* tIN */
+ YYSYMBOL_tINTO = 45, /* tINTO */
+ YYSYMBOL_tMACRO = 46, /* tMACRO */
+ YYSYMBOL_tMOVIE = 47, /* tMOVIE */
+ YYSYMBOL_tNEXT = 48, /* tNEXT */
+ YYSYMBOL_tOF = 49, /* tOF */
+ YYSYMBOL_tPREVIOUS = 50, /* tPREVIOUS */
+ YYSYMBOL_tPUT = 51, /* tPUT */
+ YYSYMBOL_tREPEAT = 52, /* tREPEAT */
+ YYSYMBOL_tSET = 53, /* tSET */
+ YYSYMBOL_tTHEN = 54, /* tTHEN */
+ YYSYMBOL_tTO = 55, /* tTO */
+ YYSYMBOL_tWHEN = 56, /* tWHEN */
+ YYSYMBOL_tWITH = 57, /* tWITH */
+ YYSYMBOL_tWHILE = 58, /* tWHILE */
+ YYSYMBOL_tFACTORY = 59, /* tFACTORY */
+ YYSYMBOL_tOPEN = 60, /* tOPEN */
+ YYSYMBOL_tPLAY = 61, /* tPLAY */
+ YYSYMBOL_tINSTANCE = 62, /* tINSTANCE */
+ YYSYMBOL_tGE = 63, /* tGE */
+ YYSYMBOL_tLE = 64, /* tLE */
+ YYSYMBOL_tEQ = 65, /* tEQ */
+ YYSYMBOL_tNEQ = 66, /* tNEQ */
+ YYSYMBOL_tAND = 67, /* tAND */
+ YYSYMBOL_tOR = 68, /* tOR */
+ YYSYMBOL_tNOT = 69, /* tNOT */
+ YYSYMBOL_tMOD = 70, /* tMOD */
+ YYSYMBOL_tAFTER = 71, /* tAFTER */
+ YYSYMBOL_tBEFORE = 72, /* tBEFORE */
+ YYSYMBOL_tCONCAT = 73, /* tCONCAT */
+ YYSYMBOL_tCONTAINS = 74, /* tCONTAINS */
+ YYSYMBOL_tSTARTS = 75, /* tSTARTS */
+ YYSYMBOL_tCHAR = 76, /* tCHAR */
+ YYSYMBOL_tITEM = 77, /* tITEM */
+ YYSYMBOL_tLINE = 78, /* tLINE */
+ YYSYMBOL_tWORD = 79, /* tWORD */
+ YYSYMBOL_tSPRITE = 80, /* tSPRITE */
+ YYSYMBOL_tINTERSECTS = 81, /* tINTERSECTS */
+ YYSYMBOL_tWITHIN = 82, /* tWITHIN */
+ YYSYMBOL_tTELL = 83, /* tTELL */
+ YYSYMBOL_tPROPERTY = 84, /* tPROPERTY */
+ YYSYMBOL_tON = 85, /* tON */
+ YYSYMBOL_tENDIF = 86, /* tENDIF */
+ YYSYMBOL_tENDREPEAT = 87, /* tENDREPEAT */
+ YYSYMBOL_tENDTELL = 88, /* tENDTELL */
+ YYSYMBOL_tASSERTERROR = 89, /* tASSERTERROR */
+ YYSYMBOL_90_ = 90, /* '<' */
+ YYSYMBOL_91_ = 91, /* '>' */
+ YYSYMBOL_92_ = 92, /* '&' */
+ YYSYMBOL_93_ = 93, /* '+' */
+ YYSYMBOL_94_ = 94, /* '-' */
+ YYSYMBOL_95_ = 95, /* '*' */
+ YYSYMBOL_96_ = 96, /* '/' */
+ YYSYMBOL_97_ = 97, /* '%' */
+ YYSYMBOL_98_n_ = 98, /* '\n' */
+ YYSYMBOL_99_ = 99, /* '(' */
+ YYSYMBOL_100_ = 100, /* ')' */
+ YYSYMBOL_101_ = 101, /* ',' */
+ YYSYMBOL_102_ = 102, /* '[' */
+ YYSYMBOL_103_ = 103, /* ']' */
+ YYSYMBOL_104_ = 104, /* ':' */
+ YYSYMBOL_YYACCEPT = 105, /* $accept */
+ YYSYMBOL_program = 106, /* program */
+ YYSYMBOL_programline = 107, /* programline */
+ YYSYMBOL_ID = 108, /* ID */
+ YYSYMBOL_asgn = 109, /* asgn */
+ YYSYMBOL_stmtoneliner = 110, /* stmtoneliner */
+ YYSYMBOL_stmt = 111, /* stmt */
+ YYSYMBOL_112_1 = 112, /* $@1 */
+ YYSYMBOL_113_2 = 113, /* $@2 */
+ YYSYMBOL_114_3 = 114, /* $@3 */
+ YYSYMBOL_115_4 = 115, /* $@4 */
+ YYSYMBOL_116_5 = 116, /* $@5 */
+ YYSYMBOL_117_6 = 117, /* $@6 */
+ YYSYMBOL_118_7 = 118, /* $@7 */
+ YYSYMBOL_119_8 = 119, /* $@8 */
+ YYSYMBOL_120_9 = 120, /* $@9 */
+ YYSYMBOL_startrepeat = 121, /* startrepeat */
+ YYSYMBOL_tellstart = 122, /* tellstart */
+ YYSYMBOL_asserterrorstart = 123, /* asserterrorstart */
+ YYSYMBOL_ifstmt = 124, /* ifstmt */
+ YYSYMBOL_elseifstmtlist = 125, /* elseifstmtlist */
+ YYSYMBOL_elseifstmt = 126, /* elseifstmt */
+ YYSYMBOL_jumpifz = 127, /* jumpifz */
+ YYSYMBOL_jump = 128, /* jump */
+ YYSYMBOL_varassign = 129, /* varassign */
+ YYSYMBOL_if = 130, /* if */
+ YYSYMBOL_lbl = 131, /* lbl */
+ YYSYMBOL_stmtlist = 132, /* stmtlist */
+ YYSYMBOL_stmtlistline = 133, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 134, /* simpleexprnoparens */
+ YYSYMBOL_135_10 = 135, /* $@10 */
+ YYSYMBOL_simpleexpr = 136, /* simpleexpr */
+ YYSYMBOL_expr = 137, /* expr */
+ YYSYMBOL_chunkexpr = 138, /* chunkexpr */
+ YYSYMBOL_reference = 139, /* reference */
+ YYSYMBOL_proc = 140, /* proc */
+ YYSYMBOL_141_11 = 141, /* $@11 */
+ YYSYMBOL_142_12 = 142, /* $@12 */
+ YYSYMBOL_143_13 = 143, /* $@13 */
+ YYSYMBOL_144_14 = 144, /* $@14 */
+ YYSYMBOL_globallist = 145, /* globallist */
+ YYSYMBOL_propertylist = 146, /* propertylist */
+ YYSYMBOL_instancelist = 147, /* instancelist */
+ YYSYMBOL_gotofunc = 148, /* gotofunc */
+ YYSYMBOL_gotomovie = 149, /* gotomovie */
+ YYSYMBOL_playfunc = 150, /* playfunc */
+ YYSYMBOL_151_15 = 151, /* $@15 */
+ YYSYMBOL_defn = 152, /* defn */
+ YYSYMBOL_153_16 = 153, /* $@16 */
+ YYSYMBOL_154_17 = 154, /* $@17 */
+ YYSYMBOL_on = 155, /* on */
+ YYSYMBOL_156_18 = 156, /* $@18 */
+ YYSYMBOL_argname = 157, /* argname */
+ YYSYMBOL_argdef = 158, /* argdef */
+ YYSYMBOL_endargdef = 159, /* endargdef */
+ YYSYMBOL_argstore = 160, /* argstore */
+ YYSYMBOL_arglist = 161, /* arglist */
+ YYSYMBOL_nonemptyarglist = 162, /* nonemptyarglist */
+ YYSYMBOL_list = 163, /* list */
+ YYSYMBOL_valuelist = 164, /* valuelist */
+ YYSYMBOL_linearlist = 165, /* linearlist */
+ YYSYMBOL_proplist = 166, /* proplist */
+ YYSYMBOL_proppair = 167 /* proppair */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -697,10 +698,10 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 102
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1980
+#define YYLAST 2006
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 104
+#define YYNTOKENS 105
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 63
/* YYNRULES -- Number of rules. */
@@ -709,7 +710,7 @@ union yyalloc
#define YYNSTATES 394
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 343
+#define YYMAXUTOK 344
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -724,15 +725,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 97, 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, 96, 91, 2,
- 98, 99, 94, 92, 100, 93, 2, 95, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 103, 2,
- 89, 2, 90, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 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, 101, 2, 102, 2, 2, 2, 2, 2, 2,
+ 2, 102, 2, 103, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -757,7 +758,7 @@ 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, 88
+ 85, 86, 87, 88, 89
};
#if YYDEBUG
@@ -802,15 +803,15 @@ yysymbol_name (yysymbol_kind_t yysymbol)
{
"end of file", "error", "invalid token", "UNARY", "VOID", "VAR",
"POINT", "RECT", "ARRAY", "OBJECT", "LEXERROR", "PARRAY", "CASTREF",
- "FIELDREF", "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",
+ "FIELDREF", "CHUNKREF", "INT", "ARGC", "ARGCNORET", "THEENTITY",
+ "THEENTITYWITHID", "THEMENUITEMENTITY", "THEMENUITEMSENTITY", "FLOAT",
+ "THEFUNC", "THEFUNCINOF", "VARID", "STRING", "SYMBOL", "ENDCLAUSE",
+ "tPLAYACCEL", "tMETHOD", "THEOBJECTPROP", "tCAST", "tFIELD", "tSCRIPT",
+ "tWINDOW", "tDOWN", "tELSE", "tELSIF", "tEXIT", "tGLOBAL", "tGO",
+ "tGOLOOP", "tIF", "tIN", "tINTO", "tMACRO", "tMOVIE", "tNEXT", "tOF",
+ "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH",
+ "tWHILE", "tFACTORY", "tOPEN", "tPLAY", "tINSTANCE", "tGE", "tLE", "tEQ",
+ "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT",
"tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
"tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tENDIF",
"tENDREPEAT", "tENDTELL", "tASSERTERROR", "'<'", "'>'", "'&'", "'+'",
@@ -844,13 +845,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, 343, 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 (-329)
+#define YYPACT_NINF (-359)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -864,46 +865,46 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 586, -84, -329, -329, -329, -329, -329, -329, -329, -34,
- -329, 1054, -329, -329, -329, -26, 1175, 21, 262, 156,
- 156, 1257, 1136, -329, 1257, -329, -329, -329, 5, -329,
- 1284, -329, -329, -329, -329, 1257, -329, -329, -329, -329,
- -329, -329, 1257, -329, -329, 156, -329, -329, 1257, -329,
- -17, 1257, -329, -329, -329, 1366, 1366, 1366, 1366, 1257,
- -329, -3, -329, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1015, -65, -329, -329, 1357, -329, -329, -329,
- -329, 156, -329, 156, 508, 156, -329, -38, 1257, 1257,
- -32, 7, -7, -329, 1714, 1357, -329, 156, 1658, 156,
- 156, 406, -329, 586, 1257, 1761, -329, 1885, 156, -329,
- 156, -30, -329, -329, 1257, -329, -329, -329, -329, -329,
- 1885, 1257, -329, 1406, 1440, 1474, 1508, 1851, -329, -329,
- 1813, -37, -28, -329, -74, 1885, -29, -8, -2, -329,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, -329, -329,
- 1257, 160, 160, 160, -20, 1257, 1257, 1257, 1700, 63,
- 1257, 1257, 1257, 1257, 1257, 1257, -329, 12, -329, -329,
- -329, 14, -329, -329, -329, -329, -12, 1748, 25, 1257,
- 73, -329, 32, 37, 39, 156, -329, 1885, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, -329, 1257,
- 1257, 1257, -329, 1257, 97, -4, 43, -57, -57, -57,
- -57, 268, 268, -329, -41, -57, -57, -57, -57, -41,
- -55, -55, -329, -329, 156, 94, -329, -329, -329, -329,
- -329, -329, 1257, 1257, 1885, 1885, 1885, 1257, 1257, 156,
- 1885, 1885, 1885, 1885, 1885, 1885, 156, 406, 816, 156,
- -329, -329, -329, -329, 754, 156, -329, -329, -329, -329,
- 1542, -329, 1576, -329, 1610, -329, 1644, -329, -329, 1885,
- 1885, 1885, 1885, -37, -28, 41, -329, -329, -329, -329,
- 48, 1257, 1885, 134, -329, 1885, 79, 1257, -329, -329,
- -329, -329, 49, -329, 1257, -329, -329, 648, 701, 1257,
- 1257, 1257, 1257, 1257, -329, 1885, -329, -329, -329, 877,
- 20, -329, 62, 479, 1800, 51, -329, 125, -329, -329,
- -329, -329, -329, 54, 701, -329, -329, -329, -329, 1257,
- 1257, -329, -329, 1257, -329, 53, 156, -329, -329, -329,
- 101, 121, 74, 1885, 1885, -329, 938, 1257, -329, 82,
- -329, 59, -329, 1257, 114, -329, -329, 1885, -329, 156,
- -329, 1885, 1257, 90, 129, -329, 877, -329, 1885, -329,
- 754, 92, -329, -329, -329, -329, 877, -329, -329, 116,
- 877, -329, 118, -329
+ 585, -72, -359, -359, -359, -359, -359, -359, -359, -30,
+ -359, 1079, -359, -359, -359, -8, 1200, -42, 261, 54,
+ 54, 1282, 1161, -359, 1282, -359, -359, -359, 13, -359,
+ 1309, -359, -359, -359, -359, 1282, -359, -359, -359, -359,
+ -359, -359, 1282, -359, -359, 54, -359, -359, 1282, -359,
+ -10, 1282, -359, -359, -359, 1391, 1391, 1391, 1391, 1282,
+ -359, -1, -359, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1040, -40, -359, -359, 1382, -359, -359, -359,
+ -359, 54, -359, 54, 507, 54, -359, -24, 1282, 1282,
+ -12, 5, 17, -359, 1739, 1382, -359, 54, 1683, 54,
+ 54, 405, -359, 585, 1282, 1786, -359, 1910, 54, -359,
+ 54, -17, -359, -359, 1282, -359, -359, -359, -359, -359,
+ 1910, 1282, -359, 1431, 1465, 1499, 1533, 1876, -359, -359,
+ 1838, -14, -6, -359, -76, 1910, -37, -9, 1, -359,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, -359, -359,
+ 1282, 159, 159, 159, -27, 1282, 1282, 1282, 1725, 63,
+ 1282, 1282, 1282, 1282, 1282, 1282, -359, 23, -359, -359,
+ -359, 25, -359, -359, -359, -359, -26, 1773, 14, 1282,
+ 80, -359, 31, 38, 40, 54, -359, 1910, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, -359, 1282,
+ 1282, 1282, -359, 1282, 96, -5, 42, -59, -59, -59,
+ -59, 267, 267, -359, -38, -59, -59, -59, -59, -38,
+ -45, -45, -359, -359, 54, 99, -359, -359, -359, -359,
+ -359, -359, 1282, 1282, 1910, 1910, 1910, 1282, 1282, 54,
+ 1910, 1910, 1910, 1910, 1910, 1910, 54, 405, 834, 54,
+ -359, -359, -359, -359, 772, 54, -359, -359, -359, -359,
+ 1567, -359, 1601, -359, 1635, -359, 1669, -359, -359, 1910,
+ 1910, 1910, 1910, -14, -6, 41, -359, -359, -359, -359,
+ 48, 1282, 1910, 133, -359, 1910, 78, 1282, -359, -359,
+ -359, -359, 51, -359, 1282, -359, -359, 652, 719, 1282,
+ 1282, 1282, 1282, 1282, -359, 1910, -359, -359, -359, 896,
+ 12, -359, 62, 478, 1825, 52, -359, 125, -359, -359,
+ -359, -359, -359, 55, 719, -359, -359, -359, -359, 1282,
+ 1282, -359, -359, 1282, -359, 24, 54, -359, -359, -359,
+ 101, 123, 73, 1910, 1910, -359, 963, 1282, -359, 81,
+ -359, 67, -359, 1282, 120, -359, -359, 1910, -359, 54,
+ -359, 1910, 1282, 92, 126, -359, 896, -359, 1910, -359,
+ 772, 95, -359, -359, -359, -359, 896, -359, -359, 115,
+ 896, -359, 117, -359
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -956,13 +957,13 @@ static const yytype_uint8 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -329, -329, 102, 0, -329, -100, 6, -329, -329, -329,
- -329, -329, -329, -329, -329, -329, -320, 29, -329, -329,
- -329, -329, -242, -328, -108, -329, -39, -243, -329, 2,
- -329, -21, 250, -44, -329, -329, -329, -329, -329, -329,
- 16, -47, -43, -329, -13, -329, -329, -329, -329, -329,
- -329, -329, -329, -107, -329, -259, -35, -302, -329, -329,
- -329, -329, 1
+ -359, -359, 102, 0, -359, -100, 6, -359, -359, -359,
+ -359, -359, -359, -359, -359, -359, -358, 29, -359, -359,
+ -359, -359, -242, -330, -108, -359, -39, -243, -359, 132,
+ -359, -21, 250, -44, -359, -359, -359, -359, -359, -359,
+ 16, -47, -43, -359, -13, -359, -359, -359, -359, -359,
+ -359, -359, -359, -107, -359, -262, -35, -303, -359, -359,
+ -359, -359, 2
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -982,28 +983,28 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 30, 184, 294, 194, 110, 102, 33, 109, 308, 96,
- 352, 333, 147, 41, 147, 148, 166, 44, 91, 92,
- 93, 305, 170, 242, 140, 82, 167, 113, 147, 211,
- 115, 114, 171, 140, 153, 154, 155, 156, 157, 156,
- 157, 355, 122, 121, 243, 111, 174, 165, 128, 129,
- 376, 154, 155, 156, 157, 334, 388, 116, 117, 118,
- 119, 172, 386, 158, 327, 328, 209, 390, 169, 188,
- 195, 173, 134, 212, 339, 210, 338, 85, 86, -24,
- 342, 159, 176, 160, 340, 164, 140, 260, 261, 356,
- 357, 348, 213, 196, 140, 287, 288, 177, 214, 181,
- 183, 30, 103, 30, 186, 216, -24, 362, 191, 33,
- 191, 249, 256, 366, 259, -24, -24, 237, 239, 241,
- 234, 2, 283, 284, 262, 374, 264, 290, 5, 6,
- 7, 8, 265, 381, 266, 382, 267, 384, 291, 235,
- 215, 387, 289, 389, 211, 314, 323, 392, 147, 341,
- 344, 148, 346, 347, 263, 363, 364, 299, 306, 369,
- 365, 236, 238, 240, -24, -24, -24, 368, 372, -38,
- 153, 154, 155, 156, 157, 379, -24, 269, 385, 271,
- 2, 273, 380, 275, 2, 277, 278, 5, 6, 7,
- 8, 55, 56, 7, 8, 111, 141, 142, 143, 144,
+ 30, 184, 294, 194, 110, 308, 33, 109, 352, 96,
+ 333, 147, 376, 102, 148, 85, 86, 242, 91, 92,
+ 93, 305, 44, 140, 386, 147, 41, 113, 211, 390,
+ 115, 166, 147, 153, 154, 155, 156, 157, 243, 114,
+ 355, 167, 122, 170, 82, 111, 121, 165, 128, 129,
+ 156, 157, 334, 171, 388, 154, 155, 156, 157, 140,
+ 172, 356, 357, 158, 327, 328, 212, 339, 169, 188,
+ 173, 174, 134, 140, 260, 261, 338, 340, -24, 2,
+ 342, 159, 176, 160, 195, 164, 5, 6, 7, 8,
+ 209, 348, 213, 196, 140, 287, 288, 177, 210, 181,
+ 183, 30, 214, 30, 186, 216, -24, 362, 191, 33,
+ 191, 103, 249, 366, 262, -24, -24, 237, 239, 241,
+ 234, 2, 283, 284, 256, 374, 259, 290, 5, 6,
+ 7, 8, 265, 381, 264, 382, 266, 384, 267, 235,
+ 215, 387, 289, 389, 291, 211, 314, 392, 147, 323,
+ 341, 148, 344, 346, 263, 347, 363, 299, 306, 364,
+ 365, 236, 238, 240, -24, -24, -24, 368, 369, -38,
+ 153, 154, 155, 156, 157, 372, -24, 269, 379, 271,
+ 380, 273, 385, 275, 2, 277, 278, 116, 117, 118,
+ 119, 55, 56, 7, 8, 111, 141, 142, 143, 144,
145, 146, 391, 147, 393, 185, 148, 149, 150, 258,
- 337, 268, 303, 298, 285, 286, 0, 0, 0, 0,
+ 337, 268, 303, 298, 285, 0, 286, 0, 0, 0,
0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
0, 0, 0, 0, 191, 64, 65, 66, 67, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
@@ -1029,8 +1030,8 @@ static const yytype_int16 yytable[] =
8, 0, 0, 0, 9, 10, 11, 12, 0, 270,
0, 272, 0, 274, 0, 276, 16, 0, 18, 279,
280, 281, 0, 282, 0, 21, 22, 23, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -67,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 0, 0, 0, 0, 0, 0, 0, 0, -67, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
0, 0, 292, 293, 0, 0, 0, 295, 296, 0,
0, 0, 0, 2, 0, 0, -67, 3, 0, 0,
5, 6, 7, 8, 0, -67, -67, 9, 10, 11,
@@ -1040,421 +1041,425 @@ static const yytype_int16 yytable[] =
0, 0, 161, 0, 324, 0, 0, 0, 0, 0,
0, 24, 25, 324, -67, -67, -67, 27, 0, 0,
141, 142, 143, 144, 145, 146, -67, 147, 162, 163,
- 148, 149, 150, 0, 0, 0, -4, 1, 0, 353,
+ 148, 149, 150, 0, 0, -4, 1, 0, 0, 353,
354, 0, 0, 324, 0, 0, 0, 151, 152, 153,
154, 155, 156, 157, 0, 0, 0, 367, 0, 0,
2, 0, 0, 371, 3, 4, 0, 5, 6, 7,
8, 0, 378, 0, 9, 10, 11, 12, 13, 0,
0, 14, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 20, 21, 22, 23, -67, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 19, 0, 0, 20, 21, 22, 23, 0, 0,
+ 0, 0, -67, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
- 26, 0, 2, 0, 27, -67, 3, 0, 0, 5,
- 6, 7, 8, -4, 0, 0, 9, 10, 11, 12,
- 13, 0, 0, 0, 0, 15, 0, 0, 16, 17,
- 18, -67, 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, 27, 0, 0, 9,
- 10, 11, 12, 13, 0, -67, 0, 0, 15, 0,
- 0, 16, 17, 18, 0, 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, 27,
- -67, -67, 9, 10, 11, 12, 13, 0, -67, 0,
- 0, 15, 0, 0, 16, 17, 18, 0, 0, 19,
- 0, 0, 0, 21, 22, 23, 0, 1, 0, 0,
+ 26, 0, 0, 0, 27, 0, 0, 2, 0, 0,
+ -67, 3, 0, -4, 5, 6, 7, 8, 0, 0,
+ 0, 9, 10, 11, 12, 13, 0, 0, 0, 0,
+ 15, 0, 0, 16, 17, 18, 0, 0, 19, 0,
+ 0, 0, 21, 22, 23, 0, 0, 0, 0, -67,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 24, 25, 0, 0, 0,
+ 0, 27, 0, 0, 2, 0, 0, 0, 3, 0,
+ -67, 5, 6, 7, 8, 0, 0, 0, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 15, 0, 0,
+ 16, 17, 18, 1, 0, 19, 0, 0, 0, 21,
+ 22, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
+ 0, 3, 24, 25, 5, 6, 7, 8, 27, -67,
+ -67, 9, 10, 11, 12, 13, 0, -67, 0, 0,
+ 15, 0, 0, 16, 17, 18, 0, 0, 19, 0,
+ 0, 0, 21, 22, 23, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 24, 25, 0, -67,
- 2, 0, 27, 0, 3, 0, 0, 5, 6, 7,
- 8, -67, 0, 0, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 0, 21, 22, 23, 1, 0,
+ 0, 0, 0, 0, 0, 24, 25, 0, -67, 2,
+ 0, 27, 0, 3, 0, 0, 5, 6, 7, 8,
+ -67, 0, 0, 9, 10, 11, 12, 13, 0, 0,
+ 0, 0, 15, 0, 0, 16, 17, 18, 0, 0,
+ 19, 0, 0, 0, 21, 22, 23, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
- 0, 2, 0, -67, 27, 3, 0, 0, 5, 6,
- 7, 8, 0, -67, 0, 9, 10, 11, 12, 13,
+ 0, 0, 0, 0, 0, 0, 0, 24, 25, 0,
+ 0, 2, -67, 27, 0, 3, 0, 0, 5, 6,
+ 7, 8, -67, 0, 0, 9, 10, 11, 12, 13,
0, 0, 0, 0, 15, 0, 0, 16, 17, 18,
- 0, 0, 19, 0, 0, 0, 21, 22, 23, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 19, 0, 0, 0, 21, 22, 23, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
- 25, 0, 2, -67, 0, 27, 3, 0, 0, 5,
- 6, 7, 8, 0, -67, 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,
+ 25, 0, 0, -67, 0, 27, 0, 0, 2, 0,
+ 0, 0, 3, 0, -67, 5, 6, 7, 8, 0,
+ 0, 0, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 15, 0, 0, 16, 17, 18, 0, 0, 19,
+ 0, 0, 0, 21, 22, 23, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 24, 25, 0, -67,
+ 0, 0, 27, 0, 0, 46, 0, 0, 47, 48,
+ 0, -67, 49, 50, 51, 2, 131, 132, 0, 0,
+ 0, 54, 55, 56, 57, 58, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 25, 0, -67, 0, 0, 27, 0, 0, 46,
- 0, 0, 47, 48, 0, -67, 49, 50, 51, 2,
- 131, 132, 0, 0, 0, 54, 55, 56, 57, 58,
+ 0, 0, 0, 0, 46, 0, 0, 47, 48, 0,
+ 0, 49, 50, 51, 2, 52, 53, 0, 0, 63,
+ 54, 55, 56, 57, 58, 0, 64, 65, 66, 67,
+ 68, 0, 0, 0, 0, 0, 59, 60, 61, 62,
+ 0, 0, 0, 69, 70, 0, 0, 0, 0, 71,
+ 0, 0, 72, 0, 133, 0, 0, 0, 63, 0,
+ 0, 0, 0, 0, 0, 64, 65, 66, 67, 68,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 0,
- 0, 47, 48, 0, 0, 49, 50, 51, 2, 52,
- 53, 0, 0, 63, 54, 55, 56, 57, 58, 0,
- 64, 65, 66, 67, 68, 0, 0, 0, 0, 0,
- 59, 60, 61, 62, 0, 0, 0, 69, 70, 0,
- 0, 0, 0, 71, 0, 0, 72, 0, 133, 0,
- 0, 0, 63, 0, 0, 0, 0, 0, 0, 64,
- 65, 66, 67, 68, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 69, 70, 0, 0,
- 46, 0, 71, 47, 48, 72, 0, 49, 50, 51,
- 2, 52, 53, 0, 0, 0, 54, 55, 56, 57,
- 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 59, 0, 61, 0, 0, 0, 0, 46,
- 0, 0, 47, 48, 0, 83, 49, 50, 51, 2,
- 52, 53, 0, 0, 63, 54, 55, 56, 57, 58,
- 0, 64, 65, 66, 67, 68, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 69, 70,
- 0, 0, 0, 0, 71, 0, 0, 72, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
- 64, 65, 66, 67, 68, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 69, 70, 0,
- 0, 46, 0, 71, 47, 48, 72, 0, 49, 50,
- 51, 2, 52, 53, 0, 0, 0, 54, 55, 56,
- 57, 58, 0, 0, 0, 0, 0, 0, 46, 0,
- 0, 47, 48, 0, 0, 49, 50, 51, 2, 52,
- 53, 0, 0, 0, 54, 55, 56, 57, 58, 0,
- 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 64, 65, 66, 67, 68, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
- 70, 0, 63, 0, 0, 71, 0, 0, 72, 64,
- 65, 66, 67, 68, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 69, 70, 0, 0,
- 46, 0, 104, 47, 48, 72, 0, 49, 50, 51,
- 2, 52, 53, 0, 0, 0, 54, 55, 56, 57,
- 58, 0, 0, 59, 0, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 141,
- 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
- 149, 150, 0, 0, 63, 0, 0, 0, 0, 0,
- 0, 64, 65, 66, 67, 68, 151, 152, 153, 154,
- 155, 156, 157, 0, 198, 0, 0, 0, 0, 0,
- 199, 0, 0, 0, 0, 0, 0, 72, 141, 142,
+ 0, 0, 69, 70, 0, 0, 46, 0, 71, 47,
+ 48, 72, 0, 49, 50, 51, 2, 52, 53, 0,
+ 0, 0, 54, 55, 56, 57, 58, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 59, 0,
+ 61, 0, 0, 0, 0, 46, 0, 0, 47, 48,
+ 0, 83, 49, 50, 51, 2, 52, 53, 0, 0,
+ 63, 54, 55, 56, 57, 58, 0, 64, 65, 66,
+ 67, 68, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 69, 70, 0, 0, 0, 0,
+ 71, 0, 0, 72, 0, 0, 0, 0, 0, 63,
+ 0, 0, 0, 0, 0, 0, 64, 65, 66, 67,
+ 68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 69, 70, 0, 0, 46, 0, 71,
+ 47, 48, 72, 0, 49, 50, 51, 2, 52, 53,
+ 0, 0, 0, 54, 55, 56, 57, 58, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 47, 48, 0,
+ 0, 49, 50, 51, 2, 52, 53, 0, 0, 0,
+ 54, 55, 56, 57, 58, 0, 0, 0, 0, 0,
+ 0, 63, 0, 0, 0, 0, 0, 0, 64, 65,
+ 66, 67, 68, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 69, 70, 0, 63, 0,
+ 0, 71, 0, 0, 72, 64, 65, 66, 67, 68,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 69, 70, 0, 0, 46, 0, 104, 47,
+ 48, 72, 0, 49, 50, 51, 2, 52, 53, 0,
+ 0, 0, 54, 55, 56, 57, 58, 0, 0, 59,
+ 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 141, 142, 143, 144, 145,
+ 146, 0, 147, 0, 0, 148, 149, 150, 0, 0,
+ 63, 0, 0, 0, 0, 0, 0, 64, 65, 66,
+ 67, 68, 151, 152, 153, 154, 155, 156, 157, 0,
+ 198, 0, 0, 0, 0, 0, 199, 0, 0, 0,
+ 0, 0, 0, 72, 141, 142, 143, 144, 145, 146,
+ 0, 147, 0, 0, 148, 149, 150, 0, 0, 0,
+ 0, 0, 0, 0, 200, 0, 0, 0, 0, 0,
+ 201, 151, 152, 153, 154, 155, 156, 157, 141, 142,
143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
- 150, 0, 0, 0, 0, 0, 0, 0, 200, 0,
- 0, 0, 0, 0, 201, 151, 152, 153, 154, 155,
+ 150, 0, 0, 0, 0, 0, 0, 0, 202, 0,
+ 0, 0, 0, 0, 203, 151, 152, 153, 154, 155,
156, 157, 141, 142, 143, 144, 145, 146, 0, 147,
0, 0, 148, 149, 150, 0, 0, 0, 0, 0,
- 0, 0, 202, 0, 0, 0, 0, 0, 203, 151,
+ 0, 0, 204, 0, 0, 0, 0, 0, 205, 151,
152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
145, 146, 0, 147, 0, 0, 148, 149, 150, 0,
- 0, 0, 0, 0, 0, 0, 204, 0, 0, 0,
- 0, 0, 205, 151, 152, 153, 154, 155, 156, 157,
+ 0, 0, 0, 0, 0, 0, 309, 0, 0, 0,
+ 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
148, 149, 150, 0, 0, 0, 0, 0, 0, 0,
- 309, 0, 0, 0, 0, 0, 0, 151, 152, 153,
+ 310, 0, 0, 0, 0, 0, 0, 151, 152, 153,
154, 155, 156, 157, 141, 142, 143, 144, 145, 146,
0, 147, 0, 0, 148, 149, 150, 0, 0, 0,
- 0, 0, 0, 0, 310, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 311, 0, 0, 0, 0, 0,
0, 151, 152, 153, 154, 155, 156, 157, 141, 142,
143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
- 150, 0, 0, 0, 0, 0, 0, 0, 311, 0,
+ 150, 0, 0, 0, 0, 0, 0, 0, 312, 0,
0, 0, 0, 0, 0, 151, 152, 153, 154, 155,
- 156, 157, 141, 142, 143, 144, 145, 146, 0, 147,
- 0, 0, 148, 149, 150, 0, 0, 0, 0, 0,
- 0, 0, 312, 0, 0, 0, 0, 0, 0, 151,
- 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
- 145, 146, 179, 147, 0, 0, 148, 149, 150, 0,
- 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 0, 0, 0, 0, 0, 0, 0, 151, 152, 153,
- 154, 155, 156, 157, 247, 180, 0, 0, 0, 0,
- 0, 0, 141, 142, 248, 144, 145, 146, 0, 147,
- 175, 0, 148, 149, 150, 0, 141, 142, 143, 144,
+ 156, 157, 141, 142, 143, 144, 145, 146, 179, 147,
+ 0, 0, 148, 149, 150, 0, 141, 142, 143, 144,
145, 146, 0, 147, 0, 0, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
- 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
- 148, 149, 150, 141, 142, 143, 144, 145, 146, 0,
- 147, 0, 0, 148, 149, 150, 0, 151, 152, 153,
- 154, 155, 156, 157, 0, 0, 0, 208, 189, 0,
- 151, 152, 153, 154, 155, 156, 157, 0, 0, 0,
- 0, 189, 141, 142, 143, 144, 145, 146, 0, 147,
- 0, 0, 148, 149, 150, 141, 142, 143, 144, 145,
- 146, 0, 147, 0, 0, 148, 149, 150, 0, 151,
- 152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
- 343, 0, 151, 152, 153, 154, 155, 156, 157, 0,
- 0, 0, 208, 141, 142, 143, 144, 145, 146, 0,
+ 247, 180, 0, 0, 0, 0, 0, 0, 141, 142,
+ 248, 144, 145, 146, 0, 147, 175, 0, 148, 149,
+ 150, 0, 141, 142, 143, 144, 145, 146, 0, 147,
+ 0, 0, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 0, 0, 0, 0, 0, 0, 0, 151,
+ 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
+ 145, 146, 0, 147, 0, 0, 148, 149, 150, 141,
+ 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
+ 149, 150, 0, 151, 152, 153, 154, 155, 156, 157,
+ 0, 0, 0, 208, 189, 0, 151, 152, 153, 154,
+ 155, 156, 157, 0, 0, 0, 0, 189, 141, 142,
+ 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
+ 150, 141, 142, 143, 144, 145, 146, 0, 147, 0,
+ 0, 148, 149, 150, 0, 151, 152, 153, 154, 155,
+ 156, 157, 0, 0, 0, 0, 343, 0, 151, 152,
+ 153, 154, 155, 156, 157, 0, 0, 0, 208, 141,
+ 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
+ 149, 150, 0, 0, 0, 0, 0, 206, 207, 0,
+ 0, 0, 0, 0, 0, 0, 151, 152, 153, 154,
+ 155, 156, 157, 141, 142, 143, 144, 145, 146, 0,
147, 0, 0, 148, 149, 150, 0, 0, 0, 0,
- 0, 206, 207, 0, 0, 0, 0, 0, 0, 0,
- 151, 152, 153, 154, 155, 156, 157, 141, 142, 143,
- 144, 145, 146, 0, 147, 0, 0, 148, 149, 150,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
- 157
+ 151, 152, 153, 154, 155, 156, 157
};
static const yytype_int16 yycheck[] =
{
- 0, 101, 244, 110, 43, 0, 0, 42, 267, 22,
- 338, 313, 69, 97, 69, 72, 54, 51, 18, 19,
- 20, 264, 54, 43, 98, 51, 64, 48, 69, 103,
- 51, 48, 64, 98, 91, 92, 93, 94, 95, 94,
- 95, 343, 63, 46, 64, 45, 53, 86, 69, 70,
- 370, 92, 93, 94, 95, 314, 384, 55, 56, 57,
- 58, 54, 382, 76, 307, 308, 103, 387, 89, 104,
- 100, 64, 72, 102, 54, 103, 319, 56, 57, 0,
- 323, 81, 95, 83, 64, 85, 98, 99, 100, 36,
- 37, 334, 100, 114, 98, 99, 100, 97, 100, 99,
- 100, 101, 97, 103, 104, 140, 27, 349, 108, 103,
- 110, 48, 100, 356, 100, 36, 37, 161, 162, 163,
- 159, 24, 25, 26, 99, 367, 53, 234, 31, 32,
- 33, 34, 100, 376, 97, 377, 97, 380, 44, 160,
- 140, 383, 99, 386, 103, 97, 97, 390, 69, 87,
- 99, 72, 27, 99, 189, 54, 35, 257, 265, 100,
- 86, 161, 162, 163, 85, 86, 87, 85, 54, 35,
- 91, 92, 93, 94, 95, 85, 97, 198, 86, 200,
- 24, 202, 53, 204, 24, 206, 207, 31, 32, 33,
- 34, 31, 32, 33, 34, 195, 62, 63, 64, 65,
- 66, 67, 86, 69, 86, 103, 72, 73, 74, 180,
- 318, 195, 259, 256, 214, 214, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, 234, 75, 76, 77, 78, -1,
+ 0, 101, 244, 110, 43, 267, 0, 42, 338, 22,
+ 313, 70, 370, 0, 73, 57, 58, 44, 18, 19,
+ 20, 264, 52, 99, 382, 70, 98, 48, 104, 387,
+ 51, 55, 70, 92, 93, 94, 95, 96, 65, 49,
+ 343, 65, 63, 55, 52, 45, 47, 86, 69, 70,
+ 95, 96, 314, 65, 384, 93, 94, 95, 96, 99,
+ 55, 37, 38, 76, 307, 308, 103, 55, 89, 104,
+ 65, 54, 72, 99, 100, 101, 319, 65, 0, 25,
+ 323, 81, 95, 83, 101, 85, 32, 33, 34, 35,
+ 104, 334, 101, 114, 99, 100, 101, 97, 104, 99,
+ 100, 101, 101, 103, 104, 140, 28, 349, 108, 103,
+ 110, 98, 49, 356, 100, 37, 38, 161, 162, 163,
+ 159, 25, 26, 27, 101, 367, 101, 234, 32, 33,
+ 34, 35, 101, 376, 54, 377, 98, 380, 98, 160,
+ 140, 383, 100, 386, 45, 104, 98, 390, 70, 98,
+ 88, 73, 100, 28, 189, 100, 55, 257, 265, 36,
+ 87, 161, 162, 163, 86, 87, 88, 86, 101, 36,
+ 92, 93, 94, 95, 96, 55, 98, 198, 86, 200,
+ 54, 202, 87, 204, 25, 206, 207, 55, 56, 57,
+ 58, 32, 33, 34, 35, 195, 63, 64, 65, 66,
+ 67, 68, 87, 70, 87, 103, 73, 74, 75, 180,
+ 318, 195, 259, 256, 214, -1, 214, -1, -1, -1,
+ -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
+ -1, -1, -1, -1, 234, 76, 77, 78, 79, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 249,
-1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
299, 11, 301, -1, 264, 265, 16, -1, -1, -1,
- -1, 21, 22, -1, 24, -1, 297, 316, -1, 17,
- 18, 19, -1, -1, -1, 35, 24, -1, 309, 310,
- 311, 312, 30, 31, 32, 33, 34, -1, -1, -1,
+ -1, 21, 22, -1, 24, -1, 297, 316, -1, 18,
+ 19, 20, -1, -1, -1, 35, 25, -1, 309, 310,
+ 311, 312, 31, 32, 33, 34, 35, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 345, 307, 308, 59,
-1, -1, -1, -1, 64, 65, 66, 67, 68, 319,
-1, 71, 72, 323, -1, -1, -1, 366, -1, -1,
- 62, 63, 64, 65, 334, -1, -1, 69, 88, -1,
- 72, 73, 74, -1, -1, -1, 346, -1, -1, -1,
- -1, -1, -1, -1, 104, -1, 356, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, -1, -1, 369,
+ 63, 64, 65, 66, 334, -1, -1, 70, 88, -1,
+ 73, 74, 75, -1, -1, -1, 346, -1, -1, -1,
+ -1, -1, -1, -1, 104, -1, 356, 90, 91, 92,
+ 93, 94, 95, 96, -1, -1, -1, -1, -1, 369,
-1, 121, -1, -1, -1, -1, 376, -1, -1, -1,
380, -1, -1, -1, -1, -1, 386, -1, -1, -1,
390, 141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, -1, -1,
-1, -1, -1, -1, -1, 165, 166, 167, -1, -1,
170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
- 24, -1, -1, -1, 28, -1, -1, 31, 32, 33,
- 34, -1, -1, -1, 38, 39, 40, 41, -1, 199,
- -1, 201, -1, 203, -1, 205, 50, -1, 52, 209,
- 210, 211, -1, 213, -1, 59, 60, 61, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
- 1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
+ 25, -1, -1, -1, 29, -1, -1, 32, 33, 34,
+ 35, -1, -1, -1, 39, 40, 41, 42, -1, 199,
+ -1, 201, -1, 203, -1, 205, 51, -1, 53, 209,
+ 210, 211, -1, 213, -1, 60, 61, 62, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 0, 1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
-1, -1, 242, 243, -1, -1, -1, 247, 248, -1,
- -1, -1, -1, 24, -1, -1, 27, 28, -1, -1,
- 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
- 41, 42, -1, -1, -1, -1, 47, -1, -1, 50,
- 51, 52, -1, -1, 55, -1, -1, -1, 59, 60,
- 61, 291, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 44, -1, 304, -1, -1, -1, -1, -1,
- -1, 82, 83, 313, 85, 86, 87, 88, -1, -1,
- 62, 63, 64, 65, 66, 67, 97, 69, 70, 71,
- 72, 73, 74, -1, -1, -1, 0, 1, -1, 339,
- 340, -1, -1, 343, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, 357, -1, -1,
- 24, -1, -1, 363, 28, 29, -1, 31, 32, 33,
- 34, -1, 372, -1, 38, 39, 40, 41, 42, -1,
- -1, 45, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, 58, 59, 60, 61, 0, 1,
+ -1, -1, -1, 25, -1, -1, 28, 29, -1, -1,
+ 32, 33, 34, 35, -1, 37, 38, 39, 40, 41,
+ 42, 43, -1, -1, -1, -1, 48, -1, -1, 51,
+ 52, 53, -1, -1, 56, -1, -1, -1, 60, 61,
+ 62, 291, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 45, -1, 304, -1, -1, -1, -1, -1,
+ -1, 83, 84, 313, 86, 87, 88, 89, -1, -1,
+ 63, 64, 65, 66, 67, 68, 98, 70, 71, 72,
+ 73, 74, 75, -1, -1, 0, 1, -1, -1, 339,
+ 340, -1, -1, 343, -1, -1, -1, 90, 91, 92,
+ 93, 94, 95, 96, -1, -1, -1, 357, -1, -1,
+ 25, -1, -1, 363, 29, 30, -1, 32, 33, 34,
+ 35, -1, 372, -1, 39, 40, 41, 42, 43, -1,
+ -1, 46, -1, 48, -1, -1, 51, 52, 53, -1,
+ -1, 56, -1, -1, 59, 60, 61, 62, -1, -1,
+ -1, -1, 0, 1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 83, 84,
+ 85, -1, -1, -1, 89, -1, -1, 25, -1, -1,
+ 28, 29, -1, 98, 32, 33, 34, 35, -1, -1,
+ -1, 39, 40, 41, 42, 43, -1, -1, -1, -1,
+ 48, -1, -1, 51, 52, 53, -1, -1, 56, -1,
+ -1, -1, 60, 61, 62, -1, -1, -1, -1, 0,
+ 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 83, 84, -1, -1, -1,
+ -1, 89, -1, -1, 25, -1, -1, -1, 29, -1,
+ 98, 32, 33, 34, 35, -1, -1, -1, 39, 40,
+ 41, 42, 43, -1, -1, -1, -1, 48, -1, -1,
+ 51, 52, 53, 1, -1, 56, -1, -1, -1, 60,
+ 61, 62, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 25, -1, -1,
+ -1, 29, 83, 84, 32, 33, 34, 35, 89, 37,
+ 38, 39, 40, 41, 42, 43, -1, 98, -1, -1,
+ 48, -1, -1, 51, 52, 53, -1, -1, 56, -1,
+ -1, -1, 60, 61, 62, 1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
- 84, -1, 24, -1, 88, 27, 28, -1, -1, 31,
- 32, 33, 34, 97, -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, 83, 84, -1, 86, 25,
+ -1, 89, -1, 29, -1, -1, 32, 33, 34, 35,
+ 98, -1, -1, 39, 40, 41, 42, 43, -1, -1,
+ -1, -1, 48, -1, -1, 51, 52, 53, -1, -1,
+ 56, -1, -1, -1, 60, 61, 62, 1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 24, -1, -1, -1, 28,
- 82, 83, 31, 32, 33, 34, 88, -1, -1, 38,
- 39, 40, 41, 42, -1, 97, -1, -1, 47, -1,
- -1, 50, 51, 52, -1, 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, 88,
- 36, 37, 38, 39, 40, 41, 42, -1, 97, -1,
- -1, 47, -1, -1, 50, 51, 52, -1, -1, 55,
- -1, -1, -1, 59, 60, 61, -1, 1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 83, 84, -1,
+ -1, 25, 88, 89, -1, 29, -1, -1, 32, 33,
+ 34, 35, 98, -1, -1, 39, 40, 41, 42, 43,
+ -1, -1, -1, -1, 48, -1, -1, 51, 52, 53,
+ -1, -1, 56, -1, -1, -1, 60, 61, 62, -1,
+ -1, -1, -1, -1, 1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
+ 84, -1, -1, 87, -1, 89, -1, -1, 25, -1,
+ -1, -1, 29, -1, 98, 32, 33, 34, 35, -1,
+ -1, -1, 39, 40, 41, 42, 43, -1, -1, -1,
+ -1, 48, -1, -1, 51, 52, 53, -1, -1, 56,
+ -1, -1, -1, 60, 61, 62, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 82, 83, -1, 85,
- 24, -1, 88, -1, 28, -1, -1, 31, 32, 33,
- 34, 97, -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, -1, -1, -1, -1, -1, 83, 84, -1, 86,
+ -1, -1, 89, -1, -1, 15, -1, -1, 18, 19,
+ -1, 98, 22, 23, 24, 25, 26, 27, -1, -1,
+ -1, 31, 32, 33, 34, 35, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
- -1, 24, -1, 87, 88, 28, -1, -1, 31, 32,
- 33, 34, -1, 97, -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, -1, -1, 15, -1, -1, 18, 19, -1,
+ -1, 22, 23, 24, 25, 26, 27, -1, -1, 69,
+ 31, 32, 33, 34, 35, -1, 76, 77, 78, 79,
+ 80, -1, -1, -1, -1, -1, 47, 48, 49, 50,
+ -1, -1, -1, 93, 94, -1, -1, -1, -1, 99,
+ -1, -1, 102, -1, 104, -1, -1, -1, 69, -1,
+ -1, -1, -1, -1, -1, 76, 77, 78, 79, 80,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
- 83, -1, 24, 86, -1, 88, 28, -1, -1, 31,
- 32, 33, 34, -1, 97, -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, 93, 94, -1, -1, 15, -1, 99, 18,
+ 19, 102, -1, 22, 23, 24, 25, 26, 27, -1,
+ -1, -1, 31, 32, 33, 34, 35, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 47, -1,
+ 49, -1, -1, -1, -1, 15, -1, -1, 18, 19,
+ -1, 21, 22, 23, 24, 25, 26, 27, -1, -1,
+ 69, 31, 32, 33, 34, 35, -1, 76, 77, 78,
+ 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, 94, -1, -1, -1, -1,
+ 99, -1, -1, 102, -1, -1, -1, -1, -1, 69,
+ -1, -1, -1, -1, -1, -1, 76, 77, 78, 79,
+ 80, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 93, 94, -1, -1, 15, -1, 99,
+ 18, 19, 102, -1, 22, 23, 24, 25, 26, 27,
+ -1, -1, -1, 31, 32, 33, 34, 35, -1, -1,
+ -1, -1, -1, -1, 15, -1, -1, 18, 19, -1,
+ -1, 22, 23, 24, 25, 26, 27, -1, -1, -1,
+ 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
+ -1, 69, -1, -1, -1, -1, -1, -1, 76, 77,
+ 78, 79, 80, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 93, 94, -1, 69, -1,
+ -1, 99, -1, -1, 102, 76, 77, 78, 79, 80,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 93, 94, -1, -1, 15, -1, 99, 18,
+ 19, 102, -1, 22, 23, 24, 25, 26, 27, -1,
+ -1, -1, 31, 32, 33, 34, 35, -1, -1, 47,
+ -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 63, 64, 65, 66, 67,
+ 68, -1, 70, -1, -1, 73, 74, 75, -1, -1,
+ 69, -1, -1, -1, -1, -1, -1, 76, 77, 78,
+ 79, 80, 90, 91, 92, 93, 94, 95, 96, -1,
+ 49, -1, -1, -1, -1, -1, 55, -1, -1, -1,
+ -1, -1, -1, 102, 63, 64, 65, 66, 67, 68,
+ -1, 70, -1, -1, 73, 74, 75, -1, -1, -1,
+ -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
+ 55, 90, 91, 92, 93, 94, 95, 96, 63, 64,
+ 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
+ 75, -1, -1, -1, -1, -1, -1, -1, 49, -1,
+ -1, -1, -1, -1, 55, 90, 91, 92, 93, 94,
+ 95, 96, 63, 64, 65, 66, 67, 68, -1, 70,
+ -1, -1, 73, 74, 75, -1, -1, -1, -1, -1,
+ -1, -1, 49, -1, -1, -1, -1, -1, 55, 90,
+ 91, 92, 93, 94, 95, 96, 63, 64, 65, 66,
+ 67, 68, -1, 70, -1, -1, 73, 74, 75, -1,
+ -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
+ -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
+ 63, 64, 65, 66, 67, 68, -1, 70, -1, -1,
+ 73, 74, 75, -1, -1, -1, -1, -1, -1, -1,
+ 49, -1, -1, -1, -1, -1, -1, 90, 91, 92,
+ 93, 94, 95, 96, 63, 64, 65, 66, 67, 68,
+ -1, 70, -1, -1, 73, 74, 75, -1, -1, -1,
+ -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
+ -1, 90, 91, 92, 93, 94, 95, 96, 63, 64,
+ 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
+ 75, -1, -1, -1, -1, -1, -1, -1, 49, -1,
+ -1, -1, -1, -1, -1, 90, 91, 92, 93, 94,
+ 95, 96, 63, 64, 65, 66, 67, 68, 55, 70,
+ -1, -1, 73, 74, 75, -1, 63, 64, 65, 66,
+ 67, 68, -1, 70, -1, -1, 73, 74, 75, 90,
+ 91, 92, 93, 94, 95, 96, -1, -1, -1, -1,
+ -1, -1, -1, 90, 91, 92, 93, 94, 95, 96,
+ 55, 98, -1, -1, -1, -1, -1, -1, 63, 64,
+ 65, 66, 67, 68, -1, 70, 57, -1, 73, 74,
+ 75, -1, 63, 64, 65, 66, 67, 68, -1, 70,
+ -1, -1, 73, 74, 75, 90, 91, 92, 93, 94,
+ 95, 96, -1, -1, -1, -1, -1, -1, -1, 90,
+ 91, 92, 93, 94, 95, 96, 63, 64, 65, 66,
+ 67, 68, -1, 70, -1, -1, 73, 74, 75, 63,
+ 64, 65, 66, 67, 68, -1, 70, -1, -1, 73,
+ 74, 75, -1, 90, 91, 92, 93, 94, 95, 96,
+ -1, -1, -1, 100, 101, -1, 90, 91, 92, 93,
+ 94, 95, 96, -1, -1, -1, -1, 101, 63, 64,
+ 65, 66, 67, 68, -1, 70, -1, -1, 73, 74,
+ 75, 63, 64, 65, 66, 67, 68, -1, 70, -1,
+ -1, 73, 74, 75, -1, 90, 91, 92, 93, 94,
+ 95, 96, -1, -1, -1, -1, 101, -1, 90, 91,
+ 92, 93, 94, 95, 96, -1, -1, -1, 100, 63,
+ 64, 65, 66, 67, 68, -1, 70, -1, -1, 73,
+ 74, 75, -1, -1, -1, -1, -1, 81, 82, -1,
+ -1, -1, -1, -1, -1, -1, 90, 91, 92, 93,
+ 94, 95, 96, 63, 64, 65, 66, 67, 68, -1,
+ 70, -1, -1, 73, 74, 75, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 82, 83, -1, 85, -1, -1, 88, -1, -1, 14,
- -1, -1, 17, 18, -1, 97, 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, -1, -1, -1, -1, -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, 47, 48, 49, -1, -1, -1, 92, 93, -1,
- -1, -1, -1, 98, -1, -1, 101, -1, 103, -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, -1, 92, 93, -1, -1,
- 14, -1, 98, 17, 18, 101, -1, 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, -1, 48, -1, -1, -1, -1, 14,
- -1, -1, 17, 18, -1, 20, 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, -1, -1, -1, -1, -1, -1, -1, 92, 93,
- -1, -1, -1, -1, 98, -1, -1, 101, -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, -1, 92, 93, -1,
- -1, 14, -1, 98, 17, 18, 101, -1, 21, 22,
- 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
- 33, 34, -1, -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, 68, -1, -1, -1, -1,
- -1, -1, 75, 76, 77, 78, 79, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
- 93, -1, 68, -1, -1, 98, -1, -1, 101, 75,
- 76, 77, 78, 79, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 92, 93, -1, -1,
- 14, -1, 98, 17, 18, 101, -1, 21, 22, 23,
- 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
- 34, -1, -1, 46, -1, 48, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
- 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
- 73, 74, -1, -1, 68, -1, -1, -1, -1, -1,
- -1, 75, 76, 77, 78, 79, 89, 90, 91, 92,
- 93, 94, 95, -1, 48, -1, -1, -1, -1, -1,
- 54, -1, -1, -1, -1, -1, -1, 101, 62, 63,
- 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, -1, -1, 48, -1,
- -1, -1, -1, -1, 54, 89, 90, 91, 92, 93,
- 94, 95, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
- -1, -1, 48, -1, -1, -1, -1, -1, 54, 89,
- 90, 91, 92, 93, 94, 95, 62, 63, 64, 65,
- 66, 67, -1, 69, -1, -1, 72, 73, 74, -1,
- -1, -1, -1, -1, -1, -1, 48, -1, -1, -1,
- -1, -1, 54, 89, 90, 91, 92, 93, 94, 95,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, -1, -1, -1, -1, -1, -1, -1,
- 48, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, 62, 63, 64, 65, 66, 67,
- -1, 69, -1, -1, 72, 73, 74, -1, -1, -1,
- -1, -1, -1, -1, 48, -1, -1, -1, -1, -1,
- -1, 89, 90, 91, 92, 93, 94, 95, 62, 63,
- 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, -1, -1, 48, -1,
- -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
- 94, 95, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
- -1, -1, 48, -1, -1, -1, -1, -1, -1, 89,
- 90, 91, 92, 93, 94, 95, 62, 63, 64, 65,
- 66, 67, 54, 69, -1, -1, 72, 73, 74, -1,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, 89, 90, 91, 92, 93, 94, 95,
- -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
- 92, 93, 94, 95, 54, 97, -1, -1, -1, -1,
- -1, -1, 62, 63, 64, 65, 66, 67, -1, 69,
- 56, -1, 72, 73, 74, -1, 62, 63, 64, 65,
- 66, 67, -1, 69, -1, -1, 72, 73, 74, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
- -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
- 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, -1, 89, 90, 91,
- 92, 93, 94, 95, -1, -1, -1, 99, 100, -1,
- 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
- -1, 100, 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, -1, 89,
- 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
- 100, -1, 89, 90, 91, 92, 93, 94, 95, -1,
- -1, -1, 99, 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, -1,
- 89, 90, 91, 92, 93, 94, 95, 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, -1, 89, 90, 91, 92, 93, 94,
- 95
+ 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, 88, 105, 106,
- 107, 108, 109, 110, 123, 129, 139, 147, 149, 151,
- 154, 97, 150, 153, 51, 140, 14, 17, 18, 21,
- 22, 23, 25, 26, 30, 31, 32, 33, 34, 46,
- 47, 48, 49, 68, 75, 76, 77, 78, 79, 92,
- 93, 98, 101, 107, 133, 135, 136, 137, 138, 148,
- 162, 152, 51, 20, 136, 56, 57, 17, 18, 19,
- 30, 107, 107, 107, 136, 136, 148, 142, 136, 141,
- 155, 122, 0, 97, 98, 136, 160, 136, 130, 160,
- 130, 107, 144, 135, 48, 135, 133, 133, 133, 133,
- 136, 46, 135, 136, 136, 136, 136, 136, 135, 135,
- 136, 25, 26, 103, 107, 136, 163, 164, 165, 166,
- 98, 62, 63, 64, 65, 66, 67, 69, 72, 73,
- 74, 89, 90, 91, 92, 93, 94, 95, 148, 107,
- 107, 44, 70, 71, 107, 130, 54, 64, 136, 135,
- 54, 64, 54, 64, 53, 56, 148, 107, 146, 54,
- 97, 107, 145, 107, 109, 106, 107, 136, 160, 100,
- 126, 107, 156, 157, 157, 100, 135, 136, 48, 54,
- 48, 54, 48, 54, 48, 54, 80, 81, 99, 103,
- 103, 103, 102, 100, 100, 107, 160, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 130, 135, 107, 137, 107, 137,
- 107, 137, 43, 64, 136, 136, 136, 54, 64, 48,
- 136, 136, 136, 136, 136, 136, 100, 121, 121, 100,
- 99, 100, 99, 160, 53, 100, 97, 97, 144, 135,
- 136, 135, 136, 135, 136, 135, 136, 135, 135, 136,
- 136, 136, 136, 25, 26, 107, 166, 99, 100, 99,
- 157, 44, 136, 136, 126, 136, 136, 107, 146, 109,
- 110, 131, 132, 145, 143, 131, 157, 159, 159, 48,
- 48, 48, 48, 134, 97, 136, 117, 111, 114, 120,
- 135, 130, 130, 97, 136, 161, 127, 131, 131, 135,
- 135, 135, 135, 161, 159, 130, 128, 128, 131, 54,
- 64, 87, 131, 100, 99, 124, 27, 99, 131, 118,
- 112, 115, 127, 136, 136, 161, 36, 37, 125, 130,
- 107, 158, 126, 54, 35, 86, 131, 136, 85, 100,
- 119, 136, 54, 130, 126, 107, 120, 113, 136, 85,
- 53, 131, 126, 116, 131, 86, 120, 126, 127, 131,
- 120, 86, 131, 86
+ 0, 1, 25, 29, 30, 32, 33, 34, 35, 39,
+ 40, 41, 42, 43, 46, 48, 51, 52, 53, 56,
+ 59, 60, 61, 62, 83, 84, 85, 89, 106, 107,
+ 108, 109, 110, 111, 124, 130, 140, 148, 150, 152,
+ 155, 98, 151, 154, 52, 141, 15, 18, 19, 22,
+ 23, 24, 26, 27, 31, 32, 33, 34, 35, 47,
+ 48, 49, 50, 69, 76, 77, 78, 79, 80, 93,
+ 94, 99, 102, 108, 134, 136, 137, 138, 139, 149,
+ 163, 153, 52, 21, 137, 57, 58, 18, 19, 20,
+ 31, 108, 108, 108, 137, 137, 149, 143, 137, 142,
+ 156, 123, 0, 98, 99, 137, 161, 137, 131, 161,
+ 131, 108, 145, 136, 49, 136, 134, 134, 134, 134,
+ 137, 47, 136, 137, 137, 137, 137, 137, 136, 136,
+ 137, 26, 27, 104, 108, 137, 164, 165, 166, 167,
+ 99, 63, 64, 65, 66, 67, 68, 70, 73, 74,
+ 75, 90, 91, 92, 93, 94, 95, 96, 149, 108,
+ 108, 45, 71, 72, 108, 131, 55, 65, 137, 136,
+ 55, 65, 55, 65, 54, 57, 149, 108, 147, 55,
+ 98, 108, 146, 108, 110, 107, 108, 137, 161, 101,
+ 127, 108, 157, 158, 158, 101, 136, 137, 49, 55,
+ 49, 55, 49, 55, 49, 55, 81, 82, 100, 104,
+ 104, 104, 103, 101, 101, 108, 161, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 131, 136, 108, 138, 108, 138,
+ 108, 138, 44, 65, 137, 137, 137, 55, 65, 49,
+ 137, 137, 137, 137, 137, 137, 101, 122, 122, 101,
+ 100, 101, 100, 161, 54, 101, 98, 98, 145, 136,
+ 137, 136, 137, 136, 137, 136, 137, 136, 136, 137,
+ 137, 137, 137, 26, 27, 108, 167, 100, 101, 100,
+ 158, 45, 137, 137, 127, 137, 137, 108, 147, 110,
+ 111, 132, 133, 146, 144, 132, 158, 160, 160, 49,
+ 49, 49, 49, 135, 98, 137, 118, 112, 115, 121,
+ 136, 131, 131, 98, 137, 162, 128, 132, 132, 136,
+ 136, 136, 136, 162, 160, 131, 129, 129, 132, 55,
+ 65, 88, 132, 101, 100, 125, 28, 100, 132, 119,
+ 113, 116, 128, 137, 137, 162, 37, 38, 126, 131,
+ 108, 159, 127, 55, 36, 87, 132, 137, 86, 101,
+ 120, 137, 55, 131, 127, 108, 121, 114, 137, 86,
+ 54, 132, 127, 117, 132, 87, 121, 127, 128, 132,
+ 121, 87, 132, 87
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 104, 105, 105, 106, 106, 106, 107, 107, 107,
- 107, 107, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 109,
- 109, 110, 110, 110, 111, 112, 113, 110, 114, 115,
- 116, 110, 117, 118, 119, 110, 110, 110, 110, 110,
- 110, 110, 120, 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,
+ 0, 105, 106, 106, 107, 107, 107, 108, 108, 108,
+ 108, 108, 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 110,
+ 110, 111, 111, 111, 112, 113, 114, 111, 115, 116,
+ 117, 111, 118, 119, 120, 111, 111, 111, 111, 111,
+ 111, 111, 121, 122, 123, 124, 124, 125, 125, 126,
+ 127, 128, 129, 130, 131, 132, 132, 133, 133, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 135, 134, 134, 134,
+ 136, 136, 137, 137, 137, 137, 137, 137, 137, 137,
137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 138, 138, 138, 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
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 139, 139, 139, 140, 140, 140, 140, 140, 141, 140,
+ 142, 140, 143, 140, 140, 140, 140, 144, 140, 140,
+ 140, 145, 145, 145, 146, 146, 146, 147, 147, 147,
+ 148, 148, 148, 148, 148, 148, 149, 149, 150, 150,
+ 150, 151, 150, 153, 152, 152, 154, 152, 152, 152,
+ 156, 155, 157, 158, 158, 158, 159, 159, 159, 160,
+ 161, 161, 161, 162, 162, 162, 163, 164, 164, 164,
+ 164, 165, 165, 166, 166, 167, 167, 167
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1753,61 +1758,61 @@ yydestruct (const char *yymsg,
case YYSYMBOL_THEFUNC: /* THEFUNC */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1757 "engines/director/lingo/lingo-gr.cpp"
+#line 1762 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_THEFUNCINOF: /* THEFUNCINOF */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1763 "engines/director/lingo/lingo-gr.cpp"
+#line 1768 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_VARID: /* VARID */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1769 "engines/director/lingo/lingo-gr.cpp"
+#line 1774 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_STRING: /* STRING */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1775 "engines/director/lingo/lingo-gr.cpp"
+#line 1780 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_SYMBOL: /* SYMBOL */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1781 "engines/director/lingo/lingo-gr.cpp"
+#line 1786 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ENDCLAUSE: /* ENDCLAUSE */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1787 "engines/director/lingo/lingo-gr.cpp"
+#line 1792 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1793 "engines/director/lingo/lingo-gr.cpp"
+#line 1798 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tMETHOD: /* tMETHOD */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1799 "engines/director/lingo/lingo-gr.cpp"
+#line 1804 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1805 "engines/director/lingo/lingo-gr.cpp"
+#line 1810 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_on: /* on */
#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1811 "engines/director/lingo/lingo-gr.cpp"
+#line 1816 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2075,25 +2080,25 @@ yyreduce:
case 8: /* ID: tCAST */
#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2079 "engines/director/lingo/lingo-gr.cpp"
+#line 2084 "engines/director/lingo/lingo-gr.cpp"
break;
case 9: /* ID: tFIELD */
#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2085 "engines/director/lingo/lingo-gr.cpp"
+#line 2090 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* ID: tSCRIPT */
#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2091 "engines/director/lingo/lingo-gr.cpp"
+#line 2096 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* ID: tWINDOW */
#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2097 "engines/director/lingo/lingo-gr.cpp"
+#line 2102 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* asgn: tPUT expr tINTO ID */
@@ -2105,7 +2110,7 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2109 "engines/director/lingo/lingo-gr.cpp"
+#line 2114 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* asgn: tPUT expr tINTO chunkexpr */
@@ -2113,7 +2118,7 @@ yyreduce:
{
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code); }
-#line 2117 "engines/director/lingo/lingo-gr.cpp"
+#line 2122 "engines/director/lingo/lingo-gr.cpp"
break;
case 14: /* asgn: tPUT THEMENUITEMSENTITY ID simpleexpr tINTO expr */
@@ -2129,7 +2134,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-4].e)[1]);
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code); }
-#line 2133 "engines/director/lingo/lingo-gr.cpp"
+#line 2138 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* asgn: tPUT expr tAFTER ID */
@@ -2141,7 +2146,7 @@ yyreduce:
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2145 "engines/director/lingo/lingo-gr.cpp"
+#line 2150 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* asgn: tPUT expr tAFTER chunkexpr */
@@ -2149,7 +2154,7 @@ yyreduce:
{
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code); }
-#line 2153 "engines/director/lingo/lingo-gr.cpp"
+#line 2158 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* asgn: tPUT expr tBEFORE ID */
@@ -2161,7 +2166,7 @@ yyreduce:
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2165 "engines/director/lingo/lingo-gr.cpp"
+#line 2170 "engines/director/lingo/lingo-gr.cpp"
break;
case 18: /* asgn: tPUT expr tBEFORE chunkexpr */
@@ -2169,7 +2174,7 @@ yyreduce:
{
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code); }
-#line 2173 "engines/director/lingo/lingo-gr.cpp"
+#line 2178 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* asgn: tSET ID tEQ expr */
@@ -2181,7 +2186,7 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2185 "engines/director/lingo/lingo-gr.cpp"
+#line 2190 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* asgn: tSET THEENTITY tEQ expr */
@@ -2193,7 +2198,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2197 "engines/director/lingo/lingo-gr.cpp"
+#line 2202 "engines/director/lingo/lingo-gr.cpp"
break;
case 21: /* asgn: tSET ID tTO expr */
@@ -2205,7 +2210,7 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2209 "engines/director/lingo/lingo-gr.cpp"
+#line 2214 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* asgn: tSET THEENTITY tTO expr */
@@ -2217,7 +2222,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2221 "engines/director/lingo/lingo-gr.cpp"
+#line 2226 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* asgn: tSET THEENTITYWITHID expr tTO expr */
@@ -2228,7 +2233,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-3].e)[0]);
g_lingo->codeInt((yyvsp[-3].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2232 "engines/director/lingo/lingo-gr.cpp"
+#line 2237 "engines/director/lingo/lingo-gr.cpp"
break;
case 24: /* asgn: tSET THEENTITYWITHID expr tEQ expr */
@@ -2239,7 +2244,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-3].e)[0]);
g_lingo->codeInt((yyvsp[-3].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2243 "engines/director/lingo/lingo-gr.cpp"
+#line 2248 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr */
@@ -2255,7 +2260,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2259 "engines/director/lingo/lingo-gr.cpp"
+#line 2264 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tEQ expr */
@@ -2271,7 +2276,7 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2275 "engines/director/lingo/lingo-gr.cpp"
+#line 2280 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* asgn: tSET THEOBJECTPROP tTO expr */
@@ -2283,7 +2288,7 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2287 "engines/director/lingo/lingo-gr.cpp"
+#line 2292 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* asgn: tSET THEOBJECTPROP tEQ expr */
@@ -2295,7 +2300,7 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2299 "engines/director/lingo/lingo-gr.cpp"
+#line 2304 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* stmt: tREPEAT tWHILE lbl expr jumpifz startrepeat stmtlist jump tENDREPEAT */
@@ -2307,7 +2312,7 @@ 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 2311 "engines/director/lingo/lingo-gr.cpp"
+#line 2316 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* $@1: %empty */
@@ -2315,20 +2320,20 @@ yyreduce:
{ g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
mVar((yyvsp[-2].s), globalCheck()); }
-#line 2319 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* $@2: %empty */
#line 395 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2326 "engines/director/lingo/lingo-gr.cpp"
+#line 2331 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* $@3: %empty */
#line 398 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2332 "engines/director/lingo/lingo-gr.cpp"
+#line 2337 "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 */
@@ -2353,7 +2358,7 @@ 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 2357 "engines/director/lingo/lingo-gr.cpp"
+#line 2362 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* $@4: %empty */
@@ -2361,20 +2366,20 @@ yyreduce:
{ g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
mVar((yyvsp[-2].s), globalCheck()); }
-#line 2365 "engines/director/lingo/lingo-gr.cpp"
+#line 2370 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* $@5: %empty */
#line 429 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2372 "engines/director/lingo/lingo-gr.cpp"
+#line 2377 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* $@6: %empty */
#line 432 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2383 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* stmt: tREPEAT tWITH ID tEQ expr $@4 varassign $@5 tDOWN tTO expr $@6 jumpifz startrepeat stmtlist tENDREPEAT */
@@ -2399,7 +2404,7 @@ 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 2403 "engines/director/lingo/lingo-gr.cpp"
+#line 2408 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* $@7: %empty */
@@ -2410,7 +2415,7 @@ yyreduce:
g_lingo->codeFunc(&count, 1);
g_lingo->code1(LC::c_intpush); // start counter
g_lingo->codeInt(1); }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2419 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* $@8: %empty */
@@ -2420,7 +2425,7 @@ yyreduce:
g_lingo->code1(LC::c_stackpeek); // get array size
g_lingo->codeInt(2);
g_lingo->code1(LC::c_le); }
-#line 2424 "engines/director/lingo/lingo-gr.cpp"
+#line 2429 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* $@9: %empty */
@@ -2435,7 +2440,7 @@ yyreduce:
g_lingo->codeString((yyvsp[-6].s)->c_str());
mVar((yyvsp[-6].s), globalCheck());
g_lingo->code1(LC::c_assign); }
-#line 2439 "engines/director/lingo/lingo-gr.cpp"
+#line 2444 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* stmt: tREPEAT tWITH ID tIN expr $@7 lbl $@8 jumpifz $@9 startrepeat stmtlist tENDREPEAT */
@@ -2459,7 +2464,7 @@ 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 2463 "engines/director/lingo/lingo-gr.cpp"
+#line 2468 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* stmt: tNEXT tREPEAT */
@@ -2472,7 +2477,7 @@ yyreduce:
} else {
warning("# LINGO: next repeat not inside repeat block");
} }
-#line 2476 "engines/director/lingo/lingo-gr.cpp"
+#line 2481 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* stmt: tWHEN ID tTHEN expr */
@@ -2480,49 +2485,49 @@ yyreduce:
{
g_lingo->code1(LC::c_whencode);
g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2484 "engines/director/lingo/lingo-gr.cpp"
+#line 2489 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* stmt: tTELL expr '\n' tellstart stmtlist lbl tENDTELL */
#line 513 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2490 "engines/director/lingo/lingo-gr.cpp"
+#line 2495 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* stmt: tTELL expr tTO tellstart stmtoneliner lbl */
#line 514 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2496 "engines/director/lingo/lingo-gr.cpp"
+#line 2501 "engines/director/lingo/lingo-gr.cpp"
break;
case 50: /* stmt: tASSERTERROR asserterrorstart stmtoneliner */
#line 515 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_asserterrordone); }
-#line 2502 "engines/director/lingo/lingo-gr.cpp"
+#line 2507 "engines/director/lingo/lingo-gr.cpp"
break;
case 51: /* stmt: error '\n' */
#line 516 "engines/director/lingo/lingo-gr.y"
{ yyerrok; }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2513 "engines/director/lingo/lingo-gr.cpp"
break;
case 52: /* startrepeat: %empty */
#line 518 "engines/director/lingo/lingo-gr.y"
{ startRepeat(); }
-#line 2514 "engines/director/lingo/lingo-gr.cpp"
+#line 2519 "engines/director/lingo/lingo-gr.cpp"
break;
case 53: /* tellstart: %empty */
#line 520 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_tell); }
-#line 2520 "engines/director/lingo/lingo-gr.cpp"
+#line 2525 "engines/director/lingo/lingo-gr.cpp"
break;
case 54: /* asserterrorstart: %empty */
#line 522 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_asserterror); }
-#line 2526 "engines/director/lingo/lingo-gr.cpp"
+#line 2531 "engines/director/lingo/lingo-gr.cpp"
break;
case 55: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist lbl tENDIF */
@@ -2534,7 +2539,7 @@ 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 2538 "engines/director/lingo/lingo-gr.cpp"
+#line 2543 "engines/director/lingo/lingo-gr.cpp"
break;
case 56: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist tELSE stmtlist lbl tENDIF */
@@ -2546,7 +2551,7 @@ 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 2550 "engines/director/lingo/lingo-gr.cpp"
+#line 2555 "engines/director/lingo/lingo-gr.cpp"
break;
case 59: /* elseifstmt: tELSIF expr jumpifz tTHEN stmtlist jump */
@@ -2556,7 +2561,7 @@ yyreduce:
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 2560 "engines/director/lingo/lingo-gr.cpp"
+#line 2565 "engines/director/lingo/lingo-gr.cpp"
break;
case 60: /* jumpifz: %empty */
@@ -2564,7 +2569,7 @@ yyreduce:
{
g_lingo->code2(LC::c_jumpifz, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2568 "engines/director/lingo/lingo-gr.cpp"
+#line 2573 "engines/director/lingo/lingo-gr.cpp"
break;
case 61: /* jump: %empty */
@@ -2572,7 +2577,7 @@ yyreduce:
{
g_lingo->code2(LC::c_jump, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2581 "engines/director/lingo/lingo-gr.cpp"
break;
case 62: /* varassign: %empty */
@@ -2580,20 +2585,20 @@ yyreduce:
{
g_lingo->code1(LC::c_assign);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2584 "engines/director/lingo/lingo-gr.cpp"
+#line 2589 "engines/director/lingo/lingo-gr.cpp"
break;
case 63: /* if: tIF */
#line 560 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeLabel(0); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2596 "engines/director/lingo/lingo-gr.cpp"
break;
case 64: /* lbl: %empty */
#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2597 "engines/director/lingo/lingo-gr.cpp"
+#line 2602 "engines/director/lingo/lingo-gr.cpp"
break;
case 69: /* simpleexprnoparens: INT */
@@ -2601,7 +2606,7 @@ yyreduce:
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt((yyvsp[0].i)); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
break;
case 70: /* simpleexprnoparens: FLOAT */
@@ -2609,7 +2614,7 @@ yyreduce:
{
(yyval.code) = g_lingo->code1(LC::c_floatpush);
g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2613 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
break;
case 71: /* simpleexprnoparens: SYMBOL */
@@ -2618,7 +2623,7 @@ yyreduce:
(yyval.code) = g_lingo->code1(LC::c_symbolpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2622 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
break;
case 72: /* simpleexprnoparens: STRING */
@@ -2627,25 +2632,25 @@ yyreduce:
(yyval.code) = g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2631 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
break;
case 73: /* simpleexprnoparens: '+' simpleexpr */
#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2637 "engines/director/lingo/lingo-gr.cpp"
+#line 2642 "engines/director/lingo/lingo-gr.cpp"
break;
case 74: /* simpleexprnoparens: '-' simpleexpr */
#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2643 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
break;
case 75: /* simpleexprnoparens: tNOT simpleexpr */
#line 587 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_not); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2654 "engines/director/lingo/lingo-gr.cpp"
break;
case 77: /* simpleexprnoparens: THEENTITY */
@@ -2658,7 +2663,7 @@ yyreduce:
WRITE_UINT32(&e, (yyvsp[0].e)[0]);
WRITE_UINT32(&f, (yyvsp[0].e)[1]);
g_lingo->code2(e, f); }
-#line 2662 "engines/director/lingo/lingo-gr.cpp"
+#line 2667 "engines/director/lingo/lingo-gr.cpp"
break;
case 78: /* simpleexprnoparens: THEENTITYWITHID simpleexpr */
@@ -2669,7 +2674,7 @@ yyreduce:
WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
g_lingo->code2(e, f); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2678 "engines/director/lingo/lingo-gr.cpp"
break;
case 79: /* simpleexprnoparens: THEFUNCINOF simpleexpr */
@@ -2677,7 +2682,7 @@ yyreduce:
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-1].s), 1);
delete (yyvsp[-1].s); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2686 "engines/director/lingo/lingo-gr.cpp"
break;
case 80: /* simpleexprnoparens: THEFUNC tOF simpleexpr */
@@ -2685,7 +2690,7 @@ yyreduce:
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
delete (yyvsp[-2].s); }
-#line 2689 "engines/director/lingo/lingo-gr.cpp"
+#line 2694 "engines/director/lingo/lingo-gr.cpp"
break;
case 81: /* simpleexprnoparens: THEOBJECTPROP */
@@ -2696,19 +2701,19 @@ yyreduce:
g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
delete (yyvsp[0].objectprop).obj;
delete (yyvsp[0].objectprop).prop; }
-#line 2700 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
break;
case 82: /* simpleexprnoparens: tSPRITE expr tINTERSECTS simpleexpr */
#line 615 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_intersects); }
-#line 2706 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
break;
case 83: /* simpleexprnoparens: tSPRITE expr tWITHIN simpleexpr */
#line 616 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_within); }
-#line 2712 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
break;
case 85: /* simpleexprnoparens: ID '(' ID ')' */
@@ -2719,13 +2724,13 @@ yyreduce:
g_lingo->codeFunc((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2728 "engines/director/lingo/lingo-gr.cpp"
break;
case 86: /* $@10: %empty */
#line 624 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2734 "engines/director/lingo/lingo-gr.cpp"
break;
case 87: /* simpleexprnoparens: ID '(' ID ',' $@10 nonemptyarglist ')' */
@@ -2734,7 +2739,7 @@ yyreduce:
g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
delete (yyvsp[-6].s);
delete (yyvsp[-4].s); }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
break;
case 88: /* simpleexprnoparens: ID '(' arglist ')' */
@@ -2742,7 +2747,7 @@ yyreduce:
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 2746 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
break;
case 89: /* simpleexprnoparens: ID */
@@ -2755,121 +2760,121 @@ yyreduce:
}
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2764 "engines/director/lingo/lingo-gr.cpp"
break;
case 91: /* simpleexpr: '(' expr ')' */
#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2770 "engines/director/lingo/lingo-gr.cpp"
break;
case 92: /* expr: simpleexpr */
#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2771 "engines/director/lingo/lingo-gr.cpp"
+#line 2776 "engines/director/lingo/lingo-gr.cpp"
break;
case 93: /* expr: expr '+' expr */
#line 645 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_add); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2782 "engines/director/lingo/lingo-gr.cpp"
break;
case 94: /* expr: expr '-' expr */
#line 646 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_sub); }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2788 "engines/director/lingo/lingo-gr.cpp"
break;
case 95: /* expr: expr '*' expr */
#line 647 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mul); }
-#line 2789 "engines/director/lingo/lingo-gr.cpp"
+#line 2794 "engines/director/lingo/lingo-gr.cpp"
break;
case 96: /* expr: expr '/' expr */
#line 648 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_div); }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2800 "engines/director/lingo/lingo-gr.cpp"
break;
case 97: /* expr: expr tMOD expr */
#line 649 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mod); }
-#line 2801 "engines/director/lingo/lingo-gr.cpp"
+#line 2806 "engines/director/lingo/lingo-gr.cpp"
break;
case 98: /* expr: expr '>' expr */
#line 650 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gt); }
-#line 2807 "engines/director/lingo/lingo-gr.cpp"
+#line 2812 "engines/director/lingo/lingo-gr.cpp"
break;
case 99: /* expr: expr '<' expr */
#line 651 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lt); }
-#line 2813 "engines/director/lingo/lingo-gr.cpp"
+#line 2818 "engines/director/lingo/lingo-gr.cpp"
break;
case 100: /* expr: expr tEQ expr */
#line 652 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eq); }
-#line 2819 "engines/director/lingo/lingo-gr.cpp"
+#line 2824 "engines/director/lingo/lingo-gr.cpp"
break;
case 101: /* expr: expr tNEQ expr */
#line 653 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_neq); }
-#line 2825 "engines/director/lingo/lingo-gr.cpp"
+#line 2830 "engines/director/lingo/lingo-gr.cpp"
break;
case 102: /* expr: expr tGE expr */
#line 654 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2831 "engines/director/lingo/lingo-gr.cpp"
+#line 2836 "engines/director/lingo/lingo-gr.cpp"
break;
case 103: /* expr: expr tLE expr */
#line 655 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2837 "engines/director/lingo/lingo-gr.cpp"
+#line 2842 "engines/director/lingo/lingo-gr.cpp"
break;
case 104: /* expr: expr tAND expr */
#line 656 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_and); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2848 "engines/director/lingo/lingo-gr.cpp"
break;
case 105: /* expr: expr tOR expr */
#line 657 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_or); }
-#line 2849 "engines/director/lingo/lingo-gr.cpp"
+#line 2854 "engines/director/lingo/lingo-gr.cpp"
break;
case 106: /* expr: expr '&' expr */
#line 658 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ampersand); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2860 "engines/director/lingo/lingo-gr.cpp"
break;
case 107: /* expr: expr tCONCAT expr */
#line 659 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_concat); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2866 "engines/director/lingo/lingo-gr.cpp"
break;
case 108: /* expr: expr tCONTAINS expr */
#line 660 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_contains); }
-#line 2867 "engines/director/lingo/lingo-gr.cpp"
+#line 2872 "engines/director/lingo/lingo-gr.cpp"
break;
case 109: /* expr: expr tSTARTS expr */
#line 661 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_starts); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2878 "engines/director/lingo/lingo-gr.cpp"
break;
case 110: /* chunkexpr: tFIELD simpleexprnoparens */
@@ -2877,7 +2882,7 @@ yyreduce:
{
Common::String field("field");
g_lingo->codeFunc(&field, 1); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2886 "engines/director/lingo/lingo-gr.cpp"
break;
case 111: /* chunkexpr: tCAST simpleexprnoparens */
@@ -2885,55 +2890,55 @@ yyreduce:
{
Common::String cast("cast");
g_lingo->codeFunc(&cast, 1); }
-#line 2889 "engines/director/lingo/lingo-gr.cpp"
+#line 2894 "engines/director/lingo/lingo-gr.cpp"
break;
case 112: /* chunkexpr: tCHAR expr tOF simpleexpr */
#line 669 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charOf); }
-#line 2895 "engines/director/lingo/lingo-gr.cpp"
+#line 2900 "engines/director/lingo/lingo-gr.cpp"
break;
case 113: /* chunkexpr: tCHAR expr tTO expr tOF simpleexpr */
#line 670 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charToOf); }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 2906 "engines/director/lingo/lingo-gr.cpp"
break;
case 114: /* chunkexpr: tITEM expr tOF simpleexpr */
#line 671 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemOf); }
-#line 2907 "engines/director/lingo/lingo-gr.cpp"
+#line 2912 "engines/director/lingo/lingo-gr.cpp"
break;
case 115: /* chunkexpr: tITEM expr tTO expr tOF simpleexpr */
#line 672 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemToOf); }
-#line 2913 "engines/director/lingo/lingo-gr.cpp"
+#line 2918 "engines/director/lingo/lingo-gr.cpp"
break;
case 116: /* chunkexpr: tLINE expr tOF simpleexpr */
#line 673 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineOf); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 2924 "engines/director/lingo/lingo-gr.cpp"
break;
case 117: /* chunkexpr: tLINE expr tTO expr tOF simpleexpr */
#line 674 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineToOf); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 2930 "engines/director/lingo/lingo-gr.cpp"
break;
case 118: /* chunkexpr: tWORD expr tOF simpleexpr */
#line 675 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordOf); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 2936 "engines/director/lingo/lingo-gr.cpp"
break;
case 119: /* chunkexpr: tWORD expr tTO expr tOF simpleexpr */
#line 676 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordToOf); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 2942 "engines/director/lingo/lingo-gr.cpp"
break;
case 121: /* reference: tSCRIPT simpleexprnoparens */
@@ -2941,7 +2946,7 @@ yyreduce:
{
Common::String script("script");
g_lingo->codeFunc(&script, 1); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2950 "engines/director/lingo/lingo-gr.cpp"
break;
case 122: /* reference: tWINDOW simpleexprnoparens */
@@ -2949,7 +2954,7 @@ yyreduce:
{
Common::String window("window");
g_lingo->codeFunc(&window, 1); }
-#line 2953 "engines/director/lingo/lingo-gr.cpp"
+#line 2958 "engines/director/lingo/lingo-gr.cpp"
break;
case 123: /* proc: tPUT expr */
@@ -2957,7 +2962,7 @@ yyreduce:
{
Common::String put("put");
g_lingo->codeCmd(&put, 1); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2966 "engines/director/lingo/lingo-gr.cpp"
break;
case 126: /* proc: tEXIT tREPEAT */
@@ -2970,49 +2975,49 @@ yyreduce:
} else {
warning("# LINGO: exit repeat not inside repeat block");
} }
-#line 2974 "engines/director/lingo/lingo-gr.cpp"
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
break;
case 127: /* proc: tEXIT */
#line 699 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_procret); }
-#line 2980 "engines/director/lingo/lingo-gr.cpp"
+#line 2985 "engines/director/lingo/lingo-gr.cpp"
break;
case 128: /* $@11: %empty */
#line 700 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 2991 "engines/director/lingo/lingo-gr.cpp"
break;
case 129: /* proc: tGLOBAL $@11 globallist */
#line 700 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2992 "engines/director/lingo/lingo-gr.cpp"
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
break;
case 130: /* $@12: %empty */
#line 701 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
break;
case 131: /* proc: tPROPERTY $@12 propertylist */
#line 701 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 3004 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
break;
case 132: /* $@13: %empty */
#line 702 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 3010 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
break;
case 133: /* proc: tINSTANCE $@13 instancelist */
#line 702 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
break;
case 134: /* proc: tOPEN expr tWITH expr */
@@ -3020,7 +3025,7 @@ yyreduce:
{
Common::String open("open");
g_lingo->codeCmd(&open, 2); }
-#line 3024 "engines/director/lingo/lingo-gr.cpp"
+#line 3029 "engines/director/lingo/lingo-gr.cpp"
break;
case 135: /* proc: tOPEN expr */
@@ -3028,7 +3033,7 @@ yyreduce:
{
Common::String open("open");
g_lingo->codeCmd(&open, 1); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
break;
case 136: /* proc: ID '(' ID ')' */
@@ -3039,13 +3044,13 @@ yyreduce:
g_lingo->codeCmd((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3048 "engines/director/lingo/lingo-gr.cpp"
break;
case 137: /* $@14: %empty */
#line 715 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3054 "engines/director/lingo/lingo-gr.cpp"
break;
case 138: /* proc: ID '(' ID ',' $@14 nonemptyarglist ')' */
@@ -3054,7 +3059,7 @@ yyreduce:
g_lingo->codeCmd((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
delete (yyvsp[-6].s);
delete (yyvsp[-4].s); }
-#line 3058 "engines/director/lingo/lingo-gr.cpp"
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
break;
case 139: /* proc: ID '(' arglist ')' */
@@ -3062,7 +3067,7 @@ yyreduce:
{
g_lingo->codeCmd((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 3066 "engines/director/lingo/lingo-gr.cpp"
+#line 3071 "engines/director/lingo/lingo-gr.cpp"
break;
case 140: /* proc: ID arglist */
@@ -3070,7 +3075,7 @@ yyreduce:
{
g_lingo->codeCmd((yyvsp[-1].s), (yyvsp[0].narg));
delete (yyvsp[-1].s); }
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3079 "engines/director/lingo/lingo-gr.cpp"
break;
case 142: /* globallist: ID */
@@ -3078,7 +3083,7 @@ yyreduce:
{
mVar((yyvsp[0].s), kVarGlobal);
delete (yyvsp[0].s); }
-#line 3082 "engines/director/lingo/lingo-gr.cpp"
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
break;
case 143: /* globallist: ID ',' globallist */
@@ -3086,7 +3091,7 @@ yyreduce:
{
mVar((yyvsp[-2].s), kVarGlobal);
delete (yyvsp[-2].s); }
-#line 3090 "engines/director/lingo/lingo-gr.cpp"
+#line 3095 "engines/director/lingo/lingo-gr.cpp"
break;
case 145: /* propertylist: ID */
@@ -3094,7 +3099,7 @@ yyreduce:
{
mVar((yyvsp[0].s), kVarProperty);
delete (yyvsp[0].s); }
-#line 3098 "engines/director/lingo/lingo-gr.cpp"
+#line 3103 "engines/director/lingo/lingo-gr.cpp"
break;
case 146: /* propertylist: ID ',' propertylist */
@@ -3102,7 +3107,7 @@ yyreduce:
{
mVar((yyvsp[-2].s), kVarProperty);
delete (yyvsp[-2].s); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
break;
case 148: /* instancelist: ID */
@@ -3110,7 +3115,7 @@ yyreduce:
{
mVar((yyvsp[0].s), kVarInstance);
delete (yyvsp[0].s); }
-#line 3114 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
break;
case 149: /* instancelist: ID ',' instancelist */
@@ -3118,25 +3123,25 @@ yyreduce:
{
mVar((yyvsp[-2].s), kVarInstance);
delete (yyvsp[-2].s); }
-#line 3122 "engines/director/lingo/lingo-gr.cpp"
+#line 3127 "engines/director/lingo/lingo-gr.cpp"
break;
case 150: /* gotofunc: tGOLOOP */
#line 758 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoloop); }
-#line 3128 "engines/director/lingo/lingo-gr.cpp"
+#line 3133 "engines/director/lingo/lingo-gr.cpp"
break;
case 151: /* gotofunc: tGO tNEXT */
#line 759 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotonext); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3139 "engines/director/lingo/lingo-gr.cpp"
break;
case 152: /* gotofunc: tGO tPREVIOUS */
#line 760 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoprevious); }
-#line 3140 "engines/director/lingo/lingo-gr.cpp"
+#line 3145 "engines/director/lingo/lingo-gr.cpp"
break;
case 153: /* gotofunc: tGO expr */
@@ -3145,7 +3150,7 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(LC::c_goto); }
-#line 3149 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
break;
case 154: /* gotofunc: tGO expr gotomovie */
@@ -3154,7 +3159,7 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_goto); }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3163 "engines/director/lingo/lingo-gr.cpp"
break;
case 155: /* gotofunc: tGO gotomovie */
@@ -3163,7 +3168,7 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_goto); }
-#line 3167 "engines/director/lingo/lingo-gr.cpp"
+#line 3172 "engines/director/lingo/lingo-gr.cpp"
break;
case 158: /* playfunc: tPLAY expr */
@@ -3172,7 +3177,7 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(LC::c_play); }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3181 "engines/director/lingo/lingo-gr.cpp"
break;
case 159: /* playfunc: tPLAY expr gotomovie */
@@ -3181,7 +3186,7 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_play); }
-#line 3185 "engines/director/lingo/lingo-gr.cpp"
+#line 3190 "engines/director/lingo/lingo-gr.cpp"
break;
case 160: /* playfunc: tPLAY gotomovie */
@@ -3190,13 +3195,13 @@ yyreduce:
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_play); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3199 "engines/director/lingo/lingo-gr.cpp"
break;
case 161: /* $@15: %empty */
#line 789 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeSetImmediate(true); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3205 "engines/director/lingo/lingo-gr.cpp"
break;
case 162: /* playfunc: tPLAYACCEL $@15 arglist */
@@ -3205,13 +3210,13 @@ yyreduce:
g_lingo->codeSetImmediate(false);
g_lingo->codeCmd((yyvsp[-2].s), (yyvsp[0].narg));
delete (yyvsp[-2].s); }
-#line 3209 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
break;
case 163: /* $@16: %empty */
#line 819 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3215 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
break;
case 164: /* defn: tMACRO $@16 ID lbl argdef '\n' argstore stmtlist */
@@ -3221,13 +3226,13 @@ yyreduce:
g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
endDef();
delete (yyvsp[-5].s); }
-#line 3225 "engines/director/lingo/lingo-gr.cpp"
+#line 3230 "engines/director/lingo/lingo-gr.cpp"
break;
case 165: /* defn: tFACTORY ID */
#line 825 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3231 "engines/director/lingo/lingo-gr.cpp"
+#line 3236 "engines/director/lingo/lingo-gr.cpp"
break;
case 166: /* $@17: %empty */
@@ -3238,7 +3243,7 @@ yyreduce:
g_lingo->codeArg(&me);
mVar(&me, kVarArgument);
}
-#line 3242 "engines/director/lingo/lingo-gr.cpp"
+#line 3247 "engines/director/lingo/lingo-gr.cpp"
break;
case 167: /* defn: tMETHOD $@17 lbl argdef '\n' argstore stmtlist */
@@ -3248,7 +3253,7 @@ yyreduce:
g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
endDef();
delete (yyvsp[-6].s); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3257 "engines/director/lingo/lingo-gr.cpp"
break;
case 168: /* defn: on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef */
@@ -3261,7 +3266,7 @@ yyreduce:
checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
delete (yyvsp[-7].s);
delete (yyvsp[-1].s); }
-#line 3265 "engines/director/lingo/lingo-gr.cpp"
+#line 3270 "engines/director/lingo/lingo-gr.cpp"
break;
case 169: /* defn: on lbl argdef '\n' argstore stmtlist */
@@ -3271,151 +3276,151 @@ yyreduce:
g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
endDef();
delete (yyvsp[-5].s); }
-#line 3275 "engines/director/lingo/lingo-gr.cpp"
+#line 3280 "engines/director/lingo/lingo-gr.cpp"
break;
case 170: /* $@18: %empty */
#line 850 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3281 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
break;
case 171: /* on: tON $@18 ID */
#line 850 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = (yyvsp[0].s); }
-#line 3287 "engines/director/lingo/lingo-gr.cpp"
+#line 3292 "engines/director/lingo/lingo-gr.cpp"
break;
case 172: /* argname: ID */
#line 852 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); delete (yyvsp[0].s); }
-#line 3293 "engines/director/lingo/lingo-gr.cpp"
+#line 3298 "engines/director/lingo/lingo-gr.cpp"
break;
case 173: /* argdef: %empty */
#line 854 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3299 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
break;
case 174: /* argdef: argname */
#line 855 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3305 "engines/director/lingo/lingo-gr.cpp"
+#line 3310 "engines/director/lingo/lingo-gr.cpp"
break;
case 175: /* argdef: argname ',' argdef */
#line 856 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3311 "engines/director/lingo/lingo-gr.cpp"
+#line 3316 "engines/director/lingo/lingo-gr.cpp"
break;
case 177: /* endargdef: ID */
#line 859 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3317 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
break;
case 178: /* endargdef: endargdef ',' ID */
#line 860 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3323 "engines/director/lingo/lingo-gr.cpp"
+#line 3328 "engines/director/lingo/lingo-gr.cpp"
break;
case 179: /* argstore: %empty */
#line 862 "engines/director/lingo/lingo-gr.y"
{ inDef(); }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3334 "engines/director/lingo/lingo-gr.cpp"
break;
case 180: /* arglist: %empty */
#line 864 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3335 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
break;
case 181: /* arglist: expr */
#line 865 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3341 "engines/director/lingo/lingo-gr.cpp"
+#line 3346 "engines/director/lingo/lingo-gr.cpp"
break;
case 182: /* arglist: expr ',' arglist */
#line 866 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3347 "engines/director/lingo/lingo-gr.cpp"
+#line 3352 "engines/director/lingo/lingo-gr.cpp"
break;
case 183: /* nonemptyarglist: expr */
#line 868 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3358 "engines/director/lingo/lingo-gr.cpp"
break;
case 184: /* nonemptyarglist: expr ',' */
#line 869 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3359 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
break;
case 185: /* nonemptyarglist: expr ',' nonemptyarglist */
#line 870 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3370 "engines/director/lingo/lingo-gr.cpp"
break;
case 186: /* list: '[' valuelist ']' */
#line 872 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3376 "engines/director/lingo/lingo-gr.cpp"
break;
case 187: /* valuelist: %empty */
#line 874 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3377 "engines/director/lingo/lingo-gr.cpp"
+#line 3382 "engines/director/lingo/lingo-gr.cpp"
break;
case 188: /* valuelist: ':' */
#line 875 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3383 "engines/director/lingo/lingo-gr.cpp"
+#line 3388 "engines/director/lingo/lingo-gr.cpp"
break;
case 189: /* valuelist: proplist */
#line 876 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3389 "engines/director/lingo/lingo-gr.cpp"
+#line 3394 "engines/director/lingo/lingo-gr.cpp"
break;
case 190: /* valuelist: linearlist */
#line 877 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3395 "engines/director/lingo/lingo-gr.cpp"
+#line 3400 "engines/director/lingo/lingo-gr.cpp"
break;
case 191: /* linearlist: expr */
#line 879 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3401 "engines/director/lingo/lingo-gr.cpp"
+#line 3406 "engines/director/lingo/lingo-gr.cpp"
break;
case 192: /* linearlist: linearlist ',' expr */
#line 880 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3407 "engines/director/lingo/lingo-gr.cpp"
+#line 3412 "engines/director/lingo/lingo-gr.cpp"
break;
case 193: /* proplist: proppair */
#line 882 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3413 "engines/director/lingo/lingo-gr.cpp"
+#line 3418 "engines/director/lingo/lingo-gr.cpp"
break;
case 194: /* proplist: proplist ',' proppair */
#line 883 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3419 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
break;
case 195: /* proppair: SYMBOL ':' expr */
@@ -3424,7 +3429,7 @@ yyreduce:
g_lingo->code1(LC::c_symbolpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3428 "engines/director/lingo/lingo-gr.cpp"
+#line 3433 "engines/director/lingo/lingo-gr.cpp"
break;
case 196: /* proppair: STRING ':' expr */
@@ -3433,7 +3438,7 @@ yyreduce:
g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3437 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
break;
case 197: /* proppair: ID ':' expr */
@@ -3442,11 +3447,11 @@ yyreduce:
g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3446 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3450 "engines/director/lingo/lingo-gr.cpp"
+#line 3455 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index b5d69d4d89..73b6a236b5 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -65,81 +65,82 @@ extern int yydebug;
PARRAY = 266, /* PARRAY */
CASTREF = 267, /* CASTREF */
FIELDREF = 268, /* FIELDREF */
- 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 */
- tASSERTERROR = 343 /* tASSERTERROR */
+ CHUNKREF = 269, /* CHUNKREF */
+ INT = 270, /* INT */
+ ARGC = 271, /* ARGC */
+ ARGCNORET = 272, /* ARGCNORET */
+ THEENTITY = 273, /* THEENTITY */
+ THEENTITYWITHID = 274, /* THEENTITYWITHID */
+ THEMENUITEMENTITY = 275, /* THEMENUITEMENTITY */
+ THEMENUITEMSENTITY = 276, /* THEMENUITEMSENTITY */
+ FLOAT = 277, /* FLOAT */
+ THEFUNC = 278, /* THEFUNC */
+ THEFUNCINOF = 279, /* THEFUNCINOF */
+ VARID = 280, /* VARID */
+ STRING = 281, /* STRING */
+ SYMBOL = 282, /* SYMBOL */
+ ENDCLAUSE = 283, /* ENDCLAUSE */
+ tPLAYACCEL = 284, /* tPLAYACCEL */
+ tMETHOD = 285, /* tMETHOD */
+ THEOBJECTPROP = 286, /* THEOBJECTPROP */
+ tCAST = 287, /* tCAST */
+ tFIELD = 288, /* tFIELD */
+ tSCRIPT = 289, /* tSCRIPT */
+ tWINDOW = 290, /* tWINDOW */
+ tDOWN = 291, /* tDOWN */
+ tELSE = 292, /* tELSE */
+ tELSIF = 293, /* tELSIF */
+ tEXIT = 294, /* tEXIT */
+ tGLOBAL = 295, /* tGLOBAL */
+ tGO = 296, /* tGO */
+ tGOLOOP = 297, /* tGOLOOP */
+ tIF = 298, /* tIF */
+ tIN = 299, /* tIN */
+ tINTO = 300, /* tINTO */
+ tMACRO = 301, /* tMACRO */
+ tMOVIE = 302, /* tMOVIE */
+ tNEXT = 303, /* tNEXT */
+ tOF = 304, /* tOF */
+ tPREVIOUS = 305, /* tPREVIOUS */
+ tPUT = 306, /* tPUT */
+ tREPEAT = 307, /* tREPEAT */
+ tSET = 308, /* tSET */
+ tTHEN = 309, /* tTHEN */
+ tTO = 310, /* tTO */
+ tWHEN = 311, /* tWHEN */
+ tWITH = 312, /* tWITH */
+ tWHILE = 313, /* tWHILE */
+ tFACTORY = 314, /* tFACTORY */
+ tOPEN = 315, /* tOPEN */
+ tPLAY = 316, /* tPLAY */
+ tINSTANCE = 317, /* tINSTANCE */
+ tGE = 318, /* tGE */
+ tLE = 319, /* tLE */
+ tEQ = 320, /* tEQ */
+ tNEQ = 321, /* tNEQ */
+ tAND = 322, /* tAND */
+ tOR = 323, /* tOR */
+ tNOT = 324, /* tNOT */
+ tMOD = 325, /* tMOD */
+ tAFTER = 326, /* tAFTER */
+ tBEFORE = 327, /* tBEFORE */
+ tCONCAT = 328, /* tCONCAT */
+ tCONTAINS = 329, /* tCONTAINS */
+ tSTARTS = 330, /* tSTARTS */
+ tCHAR = 331, /* tCHAR */
+ tITEM = 332, /* tITEM */
+ tLINE = 333, /* tLINE */
+ tWORD = 334, /* tWORD */
+ tSPRITE = 335, /* tSPRITE */
+ tINTERSECTS = 336, /* tINTERSECTS */
+ tWITHIN = 337, /* tWITHIN */
+ tTELL = 338, /* tTELL */
+ tPROPERTY = 339, /* tPROPERTY */
+ tON = 340, /* tON */
+ tENDIF = 341, /* tENDIF */
+ tENDREPEAT = 342, /* tENDREPEAT */
+ tENDTELL = 343, /* tENDTELL */
+ tASSERTERROR = 344 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -163,7 +164,7 @@ union YYSTYPE
Common::String *prop;
} objectprop;
-#line 167 "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 c85ab28623..c7cc35725a 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -196,7 +196,7 @@ static void mVar(Common::String *s, VarType type) {
// Datum types
%token VOID VAR POINT RECT ARRAY OBJECT LEXERROR PARRAY
-%token CASTREF FIELDREF
+%token CASTREF FIELDREF CHUNKREF
%token<i> INT ARGC ARGCNORET
%token<e> THEENTITY THEENTITYWITHID THEMENUITEMENTITY THEMENUITEMSENTITY
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 28ff1ef2f4..10b39a6601 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -838,6 +838,9 @@ void Datum::reset() {
delete u.obj;
}
break;
+ case CHUNKREF:
+ delete u.cref;
+ break;
default:
break;
}
@@ -848,7 +851,7 @@ void Datum::reset() {
}
Datum Datum::eval() {
- if (type == VAR || type == FIELDREF) {
+ if (type == VAR || type == FIELDREF || type == CHUNKREF) {
return g_lingo->varFetch(*this);
}
@@ -982,6 +985,12 @@ Common::String Datum::asString(bool printonly) const {
s = Common::String::format("field: \"%s\"", ((TextCastMember *)member)->getText().c_str());
}
break;
+ case CHUNKREF:
+ {
+ Common::String src = u.cref->source.asString(true);
+ s = Common::String::format("chunk: char %d to %d of %s", u.cref->start, u.cref->end, src.c_str());
+ }
+ break;
case POINT:
s = "point:";
// fallthrough
@@ -1076,6 +1085,8 @@ const char *Datum::type2str(bool isk) const {
return isk ? "#object" : "OBJECT";
case FIELDREF:
return "FIELDREF";
+ case CHUNKREF:
+ return "CHUNKREF";
case VAR:
return isk ? "#var" : "VAR";
default:
@@ -1360,6 +1371,10 @@ Datum Lingo::varFetch(Datum &var, bool global, DatumHash *localvars, bool silent
warning("varFetch: Unhandled cast type %d", member->_type);
break;
}
+ } else if (var.type == CHUNKREF) {
+ Common::String src = var.u.cref->source.eval().asString();
+ result.type = STRING;
+ result.u.s = new Common::String(src.substr(var.u.cref->start, var.u.cref->end - var.u.cref->start));
} else {
warning("varFetch: fetch from non-variable");
}
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 1b6f289478..a0de86fe83 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -37,6 +37,7 @@ class SeekableReadStreamEndian;
namespace Director {
+struct ChunkReference;
struct TheEntity;
struct TheEntityField;
struct LingoArchive;
@@ -116,7 +117,8 @@ struct Datum { /* interpreter stack type */
Common::String *s; /* STRING, VAR, OBJECT */
DatumArray *farr; /* ARRAY, POINT, RECT */
PropertyArray *parr; /* PARRAY */
- AbstractObject *obj;
+ AbstractObject *obj; /* OBJECT */
+ ChunkReference *cref; /* CHUNKREF */
} u;
int *refCount;
@@ -146,6 +148,14 @@ struct Datum { /* interpreter stack type */
int compareTo(Datum &d, bool ignoreCase = false) const;
};
+struct ChunkReference {
+ Datum source;
+ int start;
+ int end;
+
+ ChunkReference(const Datum &src, uint s, uint e) : source(src), start(s), end(e) {}
+};
+
struct PCell {
Datum p;
Datum v;
diff --git a/engines/director/types.h b/engines/director/types.h
index fcdcbd598a..6114b3e8b4 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -307,6 +307,13 @@ enum SymbolType {
HANDLER // user-defined handler
};
+enum ChunkType {
+ kChunkChar,
+ kChunkWord,
+ kChunkItem,
+ kChunkLine
+};
+
struct Datum;
struct PCell;
typedef Common::Array<Datum> DatumArray;
Commit: 5201974ec7efe40dc282b4ef76095a62a7b086de
https://github.com/scummvm/scummvm/commit/5201974ec7efe40dc282b4ef76095a62a7b086de
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T21:52:54-04:00
Commit Message:
DIRECTOR: LINGO: Comment out bad chunk tests
Changed paths:
engines/director/lingo/tests/chunks.lingo
diff --git a/engines/director/lingo/tests/chunks.lingo b/engines/director/lingo/tests/chunks.lingo
index 17d3ad51be..f138ea203e 100644
--- a/engines/director/lingo/tests/chunks.lingo
+++ b/engines/director/lingo/tests/chunks.lingo
@@ -1,6 +1,6 @@
- put randomName() into item i of field "In"
+-- put randomName() into item i of field "In"
-put the last word of field 1 into field 3
+-- put the last word of field 1 into field 3
put the last char of "Macromedia, the multimedia company"
put the last word of "Macromedia, the multimedia company"
Commit: d50b9a8a37feef9d908675d1bbdc2ea0d46e5bfe
https://github.com/scummvm/scummvm/commit/d50b9a8a37feef9d908675d1bbdc2ea0d46e5bfe
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T21:52:54-04:00
Commit Message:
DIRECTOR: LINGO: Add chunk tests
Changed paths:
engines/director/lingo/tests/chunks.lingo
diff --git a/engines/director/lingo/tests/chunks.lingo b/engines/director/lingo/tests/chunks.lingo
index f138ea203e..8f51ad70ec 100644
--- a/engines/director/lingo/tests/chunks.lingo
+++ b/engines/director/lingo/tests/chunks.lingo
@@ -5,3 +5,35 @@
put the last char of "Macromedia, the multimedia company"
put the last word of "Macromedia, the multimedia company"
put the last word of "Macromedia, the multimedia company" && "man"
+
+set src = "abcdefghijklmnopqrstuvwxyz"
+scummvmAssertEqual(char 2 of src, "b")
+scummvmAssertEqual(char 2 to 0 of src, "b")
+scummvmAssertEqual(char 2 to 4 of src, "bcd")
+scummvmAssertEqual(char 2 to 1000 of src, "bcdefghijklmnopqrstuvwxyz")
+scummvmAssertEqual(word 1000 of src, "")
+
+set src = " the quick brown fox jumped over the lazy dog"
+scummvmAssertEqual(word 2 of src, "quick")
+scummvmAssertEqual(word 2 to 4 of src, "quick brown fox")
+scummvmAssertEqual(word 2 to 1000 of src, "quick brown fox jumped over the lazy dog")
+scummvmAssertEqual(word 1000 of src, "")
+
+set src = "the,quick,brown,fox,jumped,over,the,lazy,dog"
+scummvmAssertEqual(item 2 of src, "quick")
+scummvmAssertEqual(item 2 to 4 of src, "quick,brown,fox")
+scummvmAssertEqual(item 2 to 1000 of src, "quick,brown,fox,jumped,over,the,lazy,dog")
+scummvmAssertEqual(item 1000 of src, "")
+
+set src = "the quick" & RETURN & "brown fox" & RETURN & "jumped over" & RETURN & "the lazy dog"
+scummvmAssertEqual(line 2 of src, "brown fox")
+scummvmAssertEqual(line 2 to 4 of src, "brown fox" & RETURN & "jumped over" & RETURN & "the lazy dog")
+scummvmAssertEqual(line 2 to 1000 of src, "brown fox" & RETURN & "jumped over" & RETURN & "the lazy dog")
+scummvmAssertEqual(line 1000 of src, "")
+
+put "abcdefghijklmnopqrstuvwxyz" into field 1
+scummvmAssertEqual(char 2 of field 1, "b")
+scummvmAssertEqual(char 2 to 0 of field 1, "b")
+scummvmAssertEqual(char 2 to 4 of field 1, "bcd")
+scummvmAssertEqual(char 2 to 1000 of field 1, "bcdefghijklmnopqrstuvwxyz")
+scummvmAssertEqual(word 1000 of field 1, "")
More information about the Scummvm-git-logs
mailing list