[Scummvm-git-logs] scummvm master -> dd0f31ada1cf639061b1c319bf692607c31b0096
sev-
noreply at scummvm.org
Wed Feb 8 12:31:06 UTC 2023
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5d408bb9e9 DIRECTOR: Only redither 8-bit images in Director 4 and up.
e2053c51ab DIRECTOR: Add event breakpoints to debugger
32b878b694 DIRECTOR: Attempt to unfreeze scripts more often
eb2f3db2af DIRECTOR: Cap the number of recursive 'on enterFrame' calls in D4
eb10a139be DIRECTOR: Rework enterFrame invocation to match tests
dd0f31ada1 DIRECTOR: LINGO: Fix parsing 'go"framename"'
Commit: 5d408bb9e9902e5bc2052b7e4b01e48c3a6bb829
https://github.com/scummvm/scummvm/commit/5d408bb9e9902e5bc2052b7e4b01e48c3a6bb829
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: Only redither 8-bit images in Director 4 and up.
Director 4 has a cast member field to set a palette for a bitmap. If
this field differs from the current movie palette, Director will try and
do nearest-neighbour colour remapping of the bitmap to the movie palette.
Director 3 and below have a cast member field to set a palette for a
bitmap, but it doesn't appear to be used for rendering. You can have an
entirely different palette set there, and it will ignore it and use the
movie palette instead.
Fixes the inventory bar icons in Hell Cab.
Changed paths:
engines/director/castmember.cpp
engines/director/castmember.h
diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 4003231b20c..8c4338c4be2 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -317,6 +317,9 @@ Graphics::MacWidget *BitmapCastMember::createWidget(Common::Rect &bbox, Channel
break;
// 8bpp - if using a different palette, and we're not doing a color cycling operation, convert using nearest colour matching
case 8:
+ // Only redither images in Director 4 and up.
+ if (g_director->getVersion() < 400)
+ break;
if (castPaletteId != currentPaletteId && !isColorCycling) {
const auto pals = g_director->getLoadedPalettes();
int palIndex = pals.contains(castPaletteId) ? castPaletteId : kClutSystemMac;
@@ -1601,4 +1604,15 @@ PaletteCastMember::PaletteCastMember(Cast *cast, uint16 castId, Common::Seekable
_palette = nullptr;
}
+Common::String PaletteCastMember::formatInfo() {
+ Common::String result;
+ if (_palette) {
+ result = "data: ";
+ for (size_t i = 0; i < (size_t)_palette->length; i++) {
+ result += Common::String::format("%02X%02X%02X", _palette->palette[3 * i], _palette->palette[3 * i + 1], _palette->palette[3 * i + 2]);
+ }
+ }
+ return result;
+}
+
} // End of namespace Director
diff --git a/engines/director/castmember.h b/engines/director/castmember.h
index 67a6f149d18..161e83766dd 100644
--- a/engines/director/castmember.h
+++ b/engines/director/castmember.h
@@ -400,6 +400,8 @@ public:
int getPaletteId() { return _palette ? _palette->id : 0; }
void activatePalette() { if (_palette) g_director->setPalette(_palette->id); }
+ Common::String formatInfo() override;
+
PaletteV4 *_palette;
};
Commit: e2053c51ab44e5e86f6d13f056b2564873a6ec98
https://github.com/scummvm/scummvm/commit/e2053c51ab44e5e86f6d13f056b2564873a6ec98
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: Add event breakpoints to debugger
Changed paths:
engines/director/debugger.cpp
engines/director/debugger.h
engines/director/lingo/lingo-events.cpp
diff --git a/engines/director/debugger.cpp b/engines/director/debugger.cpp
index 3cb59f28fb7..1276e0c5701 100644
--- a/engines/director/debugger.cpp
+++ b/engines/director/debugger.cpp
@@ -91,6 +91,8 @@ Debugger::Debugger(): GUI::Debugger() {
registerCmd("be", WRAP_METHOD(Debugger, cmdBpEntity));
registerCmd("bpvar", WRAP_METHOD(Debugger, cmdBpVar));
registerCmd("bv", WRAP_METHOD(Debugger, cmdBpVar));
+ registerCmd("bpevent", WRAP_METHOD(Debugger, cmdBpEvent));
+ registerCmd("bn", WRAP_METHOD(Debugger, cmdBpEvent));
registerCmd("bpdel", WRAP_METHOD(Debugger, cmdBpDel));
registerCmd("bpenable", WRAP_METHOD(Debugger, cmdBpEnable));
registerCmd("bpdisable", WRAP_METHOD(Debugger, cmdBpDisable));
@@ -118,6 +120,7 @@ Debugger::Debugger(): GUI::Debugger() {
_bpCheckVarWrite = false;
_bpCheckEntityRead = false;
_bpCheckEntityWrite = false;
+ _bpCheckEvent = false;
}
Debugger::~Debugger() {
@@ -177,6 +180,7 @@ bool Debugger::cmdHelp(int argc, const char **argv) {
debugPrintf(" bpentity / be [entityName:fieldName] [r/w/rw] - Create a breakpoint on a Lingo \"the\" field being accessed in a specific way");
debugPrintf(" bpvar / bv [varName] - Create a breakpoint on a Lingo variable being read or modified");
debugPrintf(" bpvar / bv [varName] [r/w/rw] - Create a breakpoint on a Lingo variable being accessed in a specific way");
+ debugPrintf(" bpevent / bn [eventName] - Create a breakpoint on a Lingo event");
debugPrintf(" bpdel [n] - Deletes a specific breakpoint\n");
debugPrintf(" bpenable [n] - Enables a specific breakpoint\n");
debugPrintf(" bpdisable [n] - Disables a specific breakpoint\n");
@@ -672,6 +676,35 @@ bool Debugger::cmdBpVar(int argc, const char **argv) {
return true;
}
+bool Debugger::cmdBpEvent(int argc, const char **argv) {
+ if (argc == 2) {
+ Breakpoint bp;
+ bp.type = kBreakpointEvent;
+ for (auto &it : g_lingo->_eventHandlerTypeIds) {
+ if (it._key.equalsIgnoreCase(argv[1])) {
+ bp.eventId = (LEvent)it._value;
+ break;
+ }
+ }
+ if (bp.eventId == kEventNone) {
+ debugPrintf("Event %s not found.\n", argv[1]);
+ return true;
+ }
+ bp.id = _bpNextId;
+ _bpNextId++;
+ _breakpoints.push_back(bp);
+ bpUpdateState();
+ debugPrintf("Added %s\n", bp.format().c_str());
+ } else {
+ debugPrintf("Must specify an event name. Choices are:\n");
+ for (auto &it : g_lingo->_eventHandlerTypeIds) {
+ debugPrintf("%s ", it._key.c_str());
+ }
+ debugPrintf("\n");
+ }
+ return true;
+}
+
bool Debugger::cmdBpFrame(int argc, const char **argv) {
Movie *movie = g_director->getCurrentMovie();
if (argc == 2 || argc == 3) {
@@ -816,6 +849,7 @@ void Debugger::bpUpdateState() {
_bpCheckVarWrite = false;
_bpCheckEntityRead = false;
_bpCheckEntityWrite = false;
+ _bpCheckEvent = false;
Movie *movie = g_director->getCurrentMovie();
Common::Array<CFrame *> &callstack = g_lingo->_state->callstack;
for (auto &it : _breakpoints) {
@@ -855,6 +889,8 @@ void Debugger::bpUpdateState() {
} else if (it.type == kBreakpointEntity) {
_bpCheckEntityRead |= it.varRead;
_bpCheckEntityWrite |= it.varWrite;
+ } else if (it.type == kBreakpointEvent) {
+ _bpCheckEvent = true;
}
}
}
@@ -985,6 +1021,21 @@ void Debugger::movieHook() {
}
}
+void Debugger::eventHook(LEvent eventId) {
+ if (_bpCheckEvent) {
+ for (auto &it : _breakpoints) {
+ if (it.type == kBreakpointEvent && eventId == it.eventId) {
+ debugPrintf("Hit a breakpoint:\n");
+ debugPrintf("%s\n", it.format().c_str());
+ cmdScriptFrame(0, nullptr);
+ attach();
+ g_system->updateScreen();
+ break;
+ }
+ }
+ }
+}
+
void Debugger::pushContextHook() {
if (_next)
_nextCounter++;
diff --git a/engines/director/debugger.h b/engines/director/debugger.h
index 16781b7bba6..1a8153b51c7 100644
--- a/engines/director/debugger.h
+++ b/engines/director/debugger.h
@@ -37,6 +37,7 @@ enum BreakpointType {
kBreakpointMovieFrame = 3,
kBreakpointVariable = 4,
kBreakpointEntity = 5,
+ kBreakpointEvent = 6,
};
struct Breakpoint {
@@ -50,6 +51,7 @@ struct Breakpoint {
Common::String moviePath;
uint frameOffset = 0;
Common::String varName;
+ LEvent eventId = kEventNone;
int entity = 0;
int field = 0;
bool varRead = false;
@@ -85,6 +87,15 @@ struct Breakpoint {
result += ":";
result += varRead ? "r" : "";
result += varWrite ? "w" : "";
+ break;
+ case kBreakpointEvent:
+ result += "Event ";
+ if (eventId == kEventNone) {
+ result += "none";
+ } else {
+ result += g_lingo->_eventHandlerTypes[eventId];
+ }
+ break;
default:
break;
}
@@ -101,6 +112,7 @@ public:
void stepHook();
void frameHook();
void movieHook();
+ void eventHook(LEvent eventId);
void pushContextHook();
void popContextHook();
void builtinHook(const Symbol &funcSym);
@@ -136,6 +148,7 @@ private:
bool cmdBpFrame(int argc, const char **argv);
bool cmdBpEntity(int argc, const char **argv);
bool cmdBpVar(int argc, const char **argv);
+ bool cmdBpEvent(int argc, const char **argv);
bool cmdBpDel(int argc, const char **argv);
bool cmdBpEnable(int argc, const char **argv);
bool cmdBpDisable(int argc, const char **argv);
@@ -179,6 +192,7 @@ private:
bool _bpCheckVarWrite;
bool _bpCheckEntityRead;
bool _bpCheckEntityWrite;
+ bool _bpCheckEvent;
};
diff --git a/engines/director/lingo/lingo-events.cpp b/engines/director/lingo/lingo-events.cpp
index a7e834d475d..2e906fbca12 100644
--- a/engines/director/lingo/lingo-events.cpp
+++ b/engines/director/lingo/lingo-events.cpp
@@ -362,6 +362,7 @@ void Lingo::processEvent(LEvent event, ScriptType st, CastMemberID scriptId, int
if (script && script->_eventHandlers.contains(event)) {
debugC(1, kDebugEvents, "Lingo::processEvent(%s, %s, %s): executing event handler", _eventHandlerTypes[event], scriptType2str(st), scriptId.asString().c_str());
+ g_debugger->eventHook(event);
LC::call(script->_eventHandlers[event], 0, false);
execute();
} else {
Commit: 32b878b6943b34f7d55c2ba3aeac9b3b0fedff40
https://github.com/scummvm/scummvm/commit/32b878b6943b34f7d55c2ba3aeac9b3b0fedff40
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: Attempt to unfreeze scripts more often
Score::update() has several branches that quit early, e.g. if the frame
is waiting for a click or a sound. All of these should try to unfreeze
any contexts that are waiting.
Fixes opening the inventory screen in Hell Cab.
Changed paths:
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index f37a036dd28..196c11a1725 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -125,6 +125,21 @@ bool Score::processImmediateFrameScript(Common::String s, int id) {
return false;
}
+bool Score::processFrozenScripts() {
+ // Unfreeze any in-progress scripts and attempt to run them
+ // to completion.
+ while (uint32 count = _window->frozenLingoStateCount()) {
+ _window->thawLingoState();
+ g_lingo->switchStateFromWindow();
+ g_lingo->execute();
+ if (_window->frozenLingoStateCount() >= count) {
+ debugC(3, kDebugLingoExec, "Score::processFrozenScripts(): State froze again mid-thaw, interrupting");
+ return false;
+ }
+ }
+ return true;
+}
+
uint16 Score::getLabel(Common::String &label) {
if (!_labels) {
warning("Score::getLabel: No labels set");
@@ -353,6 +368,7 @@ void Score::update() {
updateWidgets(true);
_window->render();
}
+ processFrozenScripts();
return;
}
}
@@ -376,8 +392,10 @@ void Score::update() {
_vm->_skipFrameAdvance = false;
// the exitFrame event handler may have stopped this movie
- if (_playState == kPlayStopped)
+ if (_playState == kPlayStopped) {
+ processFrozenScripts();
return;
+ }
if (!_vm->_playbackPaused) {
if (_nextFrame)
@@ -397,6 +415,7 @@ void Score::update() {
_playState = kPlayStopped;
window->setNextMovie(ref.movie);
window->_nextMovie.frameI = ref.frameI;
+ processFrozenScripts();
return;
}
@@ -404,6 +423,7 @@ void Score::update() {
} else {
if (debugChannelSet(-1, kDebugNoLoop)) {
_playState = kPlayStopped;
+ processFrozenScripts();
return;
}
@@ -492,16 +512,11 @@ void Score::update() {
return;
}
- // Attempt to thaw and continue any frozen execution after startMovie and enterFrame
- while (uint32 count = _window->frozenLingoStateCount()) {
- _window->thawLingoState();
- g_lingo->switchStateFromWindow();
- g_lingo->execute();
- if (_window->frozenLingoStateCount() >= count) {
- debugC(3, kDebugLingoExec, "State froze again mid-thaw, interrupting");
- return;
- }
- }
+ // Attempt to thaw and continue any frozen execution after startMovie and enterFrame.
+ // If they don't complete (i.e. another freezing event like a "go to frame"),
+ // force another cycle of Score::update().
+ if (!processFrozenScripts())
+ return;
if (!_vm->_playbackPaused) {
if ((_vm->getVersion() >= 300 && _vm->getVersion() < 400) || _movie->_allowOutdatedLingo) {
diff --git a/engines/director/score.h b/engines/director/score.h
index 70b43abe113..94cc3b951ce 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -131,6 +131,7 @@ private:
void screenShot();
bool processImmediateFrameScript(Common::String s, int id);
+ bool processFrozenScripts();
public:
Common::Array<Channel *> _channels;
Commit: eb2f3db2af84c9faa930e0c84041887d15d067f0
https://github.com/scummvm/scummvm/commit/eb2f3db2af84c9faa930e0c84041887d15d067f0
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: Cap the number of recursive 'on enterFrame' calls in D4
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 196c11a1725..13764db90ad 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -506,7 +506,10 @@ void Score::update() {
if (!_vm->_playbackPaused) {
uint32 count = _window->frozenLingoStateCount();
// Triggers the frame script in D2-3, explicit enterFrame handlers in D4+
- _movie->processEvent(kEventEnterFrame);
+ // D4 will only process recursive enterFrame handlers to a depth of 2.
+ // Any more will be ignored.
+ if ((_vm->getVersion() >= 400) && (count < 2))
+ _movie->processEvent(kEventEnterFrame);
// If another frozen state gets triggered, wait another update() before thawing
if (_window->frozenLingoStateCount() > count)
return;
Commit: eb10a139be759ebfbc151190c27949867a47b736
https://github.com/scummvm/scummvm/commit/eb10a139be759ebfbc151190c27949867a47b736
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: Rework enterFrame invocation to match tests
In D3, when "go to" is invoked in a Score script, the context is frozen
and "on stepMovie" is called, then the frozen context is finished, then
the next frame's Score script gets called with an "enterFrame" event.
In D4, you're allowed to freeze and recurse "enterFrame" scripts to a
depth of 2; any deeper and "enterFrame" events will no longer be thrown.
Fixes Lingo freeze recursion loop in Wrath of the Gods.
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 13764db90ad..897e3cfc2e1 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -508,8 +508,20 @@ void Score::update() {
// Triggers the frame script in D2-3, explicit enterFrame handlers in D4+
// D4 will only process recursive enterFrame handlers to a depth of 2.
// Any more will be ignored.
- if ((_vm->getVersion() >= 400) && (count < 2))
+ if ((_vm->getVersion() >= 400) && (count < 2)) {
_movie->processEvent(kEventEnterFrame);
+ } else if ((_vm->getVersion() < 400) || _movie->_allowOutdatedLingo) {
+ // Force a flush of any frozen scripts before raising enterFrame
+ if (!processFrozenScripts())
+ return;
+ _movie->processEvent(kEventEnterFrame);
+ if ((_vm->getVersion() >= 300) || _movie->_allowOutdatedLingo) {
+ // Movie version of enterFrame, for D3 only. The D3 Interactivity Manual claims
+ // "This handler executes before anything else when the playback head moves."
+ // but this is incorrect. The frame script is executed first.
+ _movie->processEvent(kEventStepMovie);
+ }
+ }
// If another frozen state gets triggered, wait another update() before thawing
if (_window->frozenLingoStateCount() > count)
return;
@@ -522,12 +534,6 @@ void Score::update() {
return;
if (!_vm->_playbackPaused) {
- if ((_vm->getVersion() >= 300 && _vm->getVersion() < 400) || _movie->_allowOutdatedLingo) {
- // Movie version of enterFrame, for D3 only. The D3 Interactivity Manual claims
- // "This handler executes before anything else when the playback head moves."
- // but this is incorrect. The frame script is executed first.
- _movie->processEvent(kEventStepMovie);
- }
if (_movie->_timeOutPlay)
_movie->_lastTimeOut = _vm->getMacTicks();
}
Commit: dd0f31ada1cf639061b1c319bf692607c31b0096
https://github.com/scummvm/scummvm/commit/dd0f31ada1cf639061b1c319bf692607c31b0096
Author: Scott Percival (code at moral.net.au)
Date: 2023-02-08T13:30:58+01:00
Commit Message:
DIRECTOR: LINGO: Fix parsing 'go"framename"'
The lexer originally had a rule mandating that "go" was followed by a
space, with an optional "to" afterwards. The rule has been changed so
that "go" can be immediately followed by a string.
Fixes the script compilation error on the second screen of Wrath of the
Gods.
Changed paths:
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index b774e30ef79..5e32257ec71 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -372,14 +372,14 @@ static const flex_int16_t yy_accept[353] =
80, 80, 80, 80, 86, 1, 80, 86, 1, 84,
0, 0, 85, 2, 78, 81, 82, 77, 75, 76,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 25,
+ 80, 80, 80, 80, 80, 80, 80, 23, 80, 25,
29, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 47, 48, 80, 50, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 67, 80,
80, 80, 1, 0, 0, 80, 2, 81, 80, 80,
7, 80, 80, 80, 80, 80, 80, 80, 80, 17,
- 80, 80, 80, 80, 23, 0, 80, 80, 80, 80,
+ 80, 80, 80, 80, 0, 0, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 42, 80, 80, 45,
80, 80, 80, 80, 80, 54, 80, 80, 80, 58,
80, 80, 80, 80, 80, 64, 80, 80, 80, 80,
@@ -433,13 +433,13 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 64, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
} ;
-static const YY_CHAR yy_meta[65] =
+static const YY_CHAR yy_meta[64] =
{ 0,
1, 2, 3, 3, 2, 1, 1, 1, 1, 4,
4, 1, 1, 1, 5, 5, 5, 5, 5, 5,
@@ -447,50 +447,50 @@ static const YY_CHAR yy_meta[65] =
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 1, 2, 2
+ 5, 1, 2
} ;
static const flex_int16_t yy_base[360] =
{ 0,
- 0, 63, 272, 836, 67, 836, 836, 258, 0, 836,
- 250, 56, 60, 836, 242, 59, 57, 62, 63, 60,
- 58, 64, 57, 101, 0, 109, 120, 117, 134, 142,
- 75, 183, 175, 185, 161, 238, 215, 157, 245, 836,
- 128, 183, 836, 0, 836, 173, 85, 836, 836, 836,
- 0, 82, 84, 101, 103, 112, 127, 130, 137, 154,
- 147, 154, 135, 132, 152, 186, 163, 215, 184, 0,
- 212, 209, 179, 223, 225, 239, 232, 252, 224, 230,
- 239, 0, 0, 238, 0, 256, 271, 240, 245, 272,
- 259, 264, 263, 268, 289, 281, 292, 286, 0, 298,
-
- 291, 294, 329, 312, 120, 320, 0, 164, 308, 321,
- 0, 314, 311, 315, 319, 331, 334, 327, 337, 352,
- 325, 333, 333, 347, 363, 88, 347, 339, 357, 352,
- 351, 369, 368, 354, 357, 375, 0, 375, 368, 0,
- 383, 377, 368, 375, 381, 0, 398, 395, 393, 0,
- 394, 402, 408, 404, 410, 409, 413, 410, 413, 422,
- 422, 427, 429, 416, 428, 419, 420, 0, 420, 439,
- 0, 424, 0, 0, 461, 79, 0, 447, 448, 461,
- 450, 448, 462, 451, 0, 451, 0, 452, 0, 456,
- 463, 459, 471, 0, 473, 0, 0, 470, 477, 482,
-
- 469, 476, 476, 494, 482, 486, 0, 0, 0, 525,
- 494, 494, 505, 499, 500, 505, 500, 0, 510, 0,
- 516, 521, 0, 0, 0, 517, 836, 522, 516, 513,
- 0, 0, 0, 514, 0, 530, 0, 519, 522, 524,
- 526, 527, 526, 0, 0, 543, 537, 591, 75, 0,
- 535, 547, 0, 547, 546, 556, 0, 553, 0, 0,
- 0, 0, 568, 568, 571, 0, 0, 563, 569, 0,
- 0, 578, 0, 0, 572, 577, 572, 0, 0, 576,
- 570, 595, 580, 594, 604, 590, 591, 588, 612, 595,
- 602, 611, 604, 0, 610, 0, 0, 611, 616, 0,
-
- 0, 618, 634, 625, 634, 836, 639, 628, 0, 630,
- 634, 634, 650, 643, 652, 0, 655, 642, 679, 670,
- 645, 0, 659, 664, 695, 71, 667, 669, 670, 673,
- 703, 685, 673, 709, 715, 691, 697, 690, 690, 695,
- 728, 693, 733, 696, 747, 66, 706, 0, 751, 63,
- 0, 836, 815, 80, 817, 819, 823, 825, 830
+ 0, 62, 708, 788, 66, 788, 788, 686, 0, 788,
+ 562, 55, 59, 788, 551, 58, 56, 61, 62, 59,
+ 57, 63, 56, 98, 0, 101, 108, 109, 137, 138,
+ 74, 179, 181, 133, 451, 130, 182, 362, 212, 788,
+ 349, 357, 788, 0, 788, 294, 84, 788, 788, 788,
+ 0, 81, 89, 102, 119, 104, 131, 143, 143, 157,
+ 148, 179, 140, 155, 199, 204, 194, 184, 200, 0,
+ 205, 211, 207, 212, 213, 227, 220, 232, 218, 223,
+ 230, 0, 0, 226, 0, 243, 254, 232, 236, 250,
+ 237, 243, 243, 254, 271, 265, 268, 265, 0, 275,
+
+ 268, 271, 324, 284, 241, 292, 0, 248, 281, 294,
+ 0, 287, 284, 289, 297, 302, 312, 306, 313, 336,
+ 303, 316, 319, 331, 346, 190, 326, 319, 331, 327,
+ 325, 342, 341, 335, 333, 342, 0, 347, 339, 0,
+ 360, 350, 342, 347, 354, 0, 372, 369, 369, 0,
+ 366, 370, 370, 373, 380, 380, 391, 384, 387, 396,
+ 396, 404, 406, 392, 407, 397, 399, 0, 400, 418,
+ 0, 404, 0, 0, 438, 189, 0, 421, 422, 429,
+ 420, 419, 430, 423, 0, 424, 0, 426, 0, 430,
+ 438, 435, 443, 0, 447, 0, 0, 444, 452, 458,
+
+ 446, 453, 450, 456, 451, 455, 0, 0, 0, 487,
+ 459, 465, 473, 468, 471, 476, 473, 0, 490, 0,
+ 487, 493, 0, 0, 0, 488, 788, 496, 490, 487,
+ 0, 0, 0, 488, 0, 498, 0, 491, 495, 494,
+ 493, 496, 495, 0, 0, 513, 503, 541, 115, 0,
+ 502, 526, 0, 526, 526, 528, 0, 531, 0, 0,
+ 0, 0, 543, 543, 544, 0, 0, 531, 534, 0,
+ 0, 542, 0, 0, 551, 543, 553, 0, 0, 542,
+ 541, 566, 551, 566, 576, 571, 567, 563, 588, 569,
+ 574, 583, 573, 0, 579, 0, 0, 580, 582, 0,
+
+ 0, 583, 598, 586, 600, 788, 601, 591, 0, 593,
+ 597, 598, 610, 610, 624, 0, 626, 611, 652, 634,
+ 616, 0, 625, 630, 662, 113, 630, 630, 628, 630,
+ 669, 643, 639, 675, 683, 653, 659, 659, 659, 665,
+ 692, 668, 698, 672, 702, 111, 674, 0, 704, 79,
+ 0, 788, 767, 79, 769, 771, 775, 777, 782
} ;
static const flex_int16_t yy_def[360] =
@@ -536,7 +536,7 @@ static const flex_int16_t yy_def[360] =
355, 0, 352, 352, 352, 352, 352, 352, 352
} ;
-static const flex_int16_t yy_nxt[901] =
+static const flex_int16_t yy_nxt[852] =
{ 0,
4, 5, 6, 7, 5, 8, 9, 10, 11, 4,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
@@ -544,102 +544,97 @@ static const flex_int16_t yy_nxt[901] =
31, 32, 33, 25, 25, 34, 25, 25, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 25, 25, 34, 25,
- 25, 4, 35, 35, 36, 46, 47, 36, 39, 40,
- 40, 39, 48, 49, 52, 55, 56, 59, 53, 69,
- 65, 60, 37, 57, 44, 62, 54, 63, 66, 67,
- 58, 61, 68, 89, 46, 47, 64, 109, 52, 55,
-
- 56, 59, 53, 69, 65, 60, 37, 57, 62, 54,
- 63, 66, 67, 58, 61, 68, 110, 89, 111, 64,
- 70, 109, 112, 73, 349, 38, 38, 345, 71, 41,
- 41, 74, 325, 72, 76, 79, 248, 75, 77, 110,
- 175, 114, 111, 113, 70, 80, 112, 73, 78, 125,
- 81, 71, 120, 82, 121, 74, 72, 115, 76, 79,
- 75, 83, 77, 84, 85, 114, 113, 86, 80, 116,
- 122, 78, 87, 81, 108, 88, 120, 82, 121, 117,
- 115, 103, 118, 108, 83, 119, 84, 85, 43, 39,
- 86, 124, 116, 96, 122, 87, 97, 98, 88, 90,
-
- 123, 91, 117, 99, 92, 118, 100, 101, 119, 127,
- 131, 93, 94, 102, 124, 95, 125, 96, 103, 125,
- 97, 98, 39, 90, 123, 91, 99, 130, 92, 106,
- 100, 101, 127, 131, 93, 94, 102, 65, 95, 103,
- 40, 40, 103, 128, 129, 66, 39, 40, 40, 39,
- 132, 130, 133, 106, 50, 134, 142, 104, 45, 135,
- 139, 65, 140, 43, 136, 141, 128, 129, 66, 137,
- 143, 352, 146, 132, 147, 133, 352, 126, 126, 134,
- 142, 104, 135, 139, 352, 140, 138, 136, 141, 144,
- 352, 150, 151, 137, 143, 146, 152, 147, 153, 145,
-
- 105, 105, 148, 154, 352, 149, 155, 41, 41, 138,
- 156, 352, 157, 144, 150, 151, 158, 352, 160, 152,
- 159, 153, 145, 161, 162, 148, 163, 154, 149, 155,
- 103, 40, 40, 103, 156, 157, 164, 352, 165, 166,
- 158, 160, 167, 168, 159, 169, 161, 162, 104, 171,
- 163, 170, 172, 175, 173, 174, 175, 177, 178, 179,
- 164, 165, 180, 166, 125, 167, 168, 125, 169, 182,
- 352, 183, 104, 171, 170, 184, 172, 173, 186, 174,
- 177, 178, 179, 187, 190, 185, 180, 188, 189, 352,
- 191, 105, 105, 182, 183, 181, 192, 193, 195, 184,
-
- 194, 186, 352, 352, 196, 197, 187, 190, 185, 198,
- 199, 188, 189, 191, 176, 176, 200, 201, 181, 202,
- 192, 193, 195, 194, 203, 126, 126, 196, 197, 204,
- 205, 209, 198, 199, 206, 207, 208, 210, 211, 212,
- 200, 201, 202, 213, 214, 215, 217, 203, 216, 218,
- 219, 220, 204, 221, 205, 209, 222, 206, 207, 208,
- 210, 211, 175, 212, 224, 175, 225, 213, 214, 215,
- 217, 216, 218, 219, 220, 226, 229, 221, 227, 222,
- 228, 230, 231, 232, 233, 234, 352, 236, 224, 237,
- 225, 238, 239, 352, 235, 240, 241, 352, 242, 226,
-
- 229, 227, 243, 228, 230, 231, 232, 233, 244, 234,
- 236, 245, 250, 237, 246, 238, 239, 235, 247, 240,
- 241, 242, 251, 176, 176, 243, 248, 252, 257, 248,
- 253, 244, 254, 255, 256, 245, 250, 246, 258, 259,
- 262, 247, 261, 263, 264, 251, 265, 266, 352, 267,
- 268, 252, 257, 253, 269, 254, 255, 256, 270, 271,
- 272, 273, 258, 259, 262, 261, 263, 264, 274, 265,
- 278, 266, 267, 268, 279, 280, 281, 269, 282, 352,
- 283, 270, 271, 272, 284, 273, 285, 249, 249, 286,
- 290, 274, 248, 278, 292, 248, 287, 279, 280, 281,
-
- 352, 288, 282, 283, 289, 291, 293, 294, 284, 295,
- 285, 296, 297, 286, 290, 275, 299, 276, 292, 287,
- 298, 352, 300, 277, 288, 301, 302, 289, 291, 293,
- 294, 352, 303, 295, 296, 304, 297, 305, 275, 299,
- 276, 306, 307, 308, 298, 300, 277, 309, 301, 310,
- 302, 311, 314, 249, 249, 303, 313, 315, 304, 316,
- 305, 317, 318, 319, 306, 307, 308, 312, 320, 322,
- 309, 321, 310, 323, 352, 311, 314, 324, 329, 313,
- 325, 315, 316, 325, 317, 318, 319, 327, 352, 330,
- 312, 331, 320, 322, 321, 333, 325, 323, 334, 325,
-
- 324, 329, 335, 328, 325, 336, 337, 325, 338, 339,
- 325, 327, 330, 325, 331, 340, 325, 341, 333, 325,
- 342, 334, 343, 344, 347, 335, 328, 332, 336, 325,
- 337, 338, 325, 339, 345, 352, 351, 345, 352, 340,
- 341, 326, 326, 342, 352, 343, 344, 347, 349, 352,
- 332, 349, 349, 352, 352, 349, 352, 326, 326, 351,
- 352, 352, 352, 352, 352, 326, 326, 352, 352, 352,
- 352, 326, 326, 352, 352, 352, 352, 326, 326, 352,
+ 25, 4, 35, 36, 46, 47, 36, 39, 40, 40,
+ 39, 48, 49, 52, 55, 56, 59, 53, 69, 65,
+ 60, 37, 57, 44, 62, 54, 63, 66, 67, 58,
+ 61, 68, 89, 46, 47, 64, 109, 52, 55, 56,
+
+ 59, 53, 69, 65, 60, 37, 57, 62, 54, 63,
+ 66, 67, 58, 61, 68, 73, 89, 70, 64, 111,
+ 109, 110, 76, 74, 38, 71, 77, 79, 41, 75,
+ 72, 103, 40, 40, 103, 113, 78, 80, 112, 73,
+ 349, 70, 81, 111, 110, 114, 76, 74, 71, 104,
+ 77, 79, 75, 72, 100, 101, 82, 120, 113, 78,
+ 80, 102, 112, 86, 83, 81, 84, 85, 87, 114,
+ 115, 88, 345, 104, 325, 116, 248, 121, 100, 101,
+ 82, 120, 117, 118, 102, 125, 86, 83, 125, 84,
+ 85, 87, 105, 115, 88, 90, 106, 91, 116, 96,
+
+ 92, 121, 97, 98, 65, 117, 118, 93, 94, 99,
+ 119, 95, 66, 39, 40, 40, 39, 122, 123, 90,
+ 106, 91, 124, 96, 92, 127, 97, 98, 65, 130,
+ 93, 94, 99, 119, 95, 66, 128, 129, 131, 132,
+ 133, 122, 123, 134, 142, 124, 126, 135, 127, 137,
+ 175, 125, 136, 130, 139, 140, 141, 143, 108, 128,
+ 129, 131, 132, 133, 146, 147, 138, 134, 142, 150,
+ 135, 151, 144, 137, 41, 136, 152, 139, 140, 141,
+ 148, 143, 145, 149, 153, 154, 156, 146, 147, 138,
+ 155, 157, 150, 158, 151, 160, 144, 159, 163, 152,
+
+ 161, 162, 103, 148, 108, 145, 149, 153, 164, 154,
+ 156, 165, 166, 155, 157, 167, 168, 158, 160, 169,
+ 171, 159, 163, 161, 162, 103, 40, 40, 103, 170,
+ 172, 174, 164, 173, 165, 177, 166, 175, 167, 168,
+ 175, 178, 169, 104, 171, 179, 180, 125, 182, 184,
+ 125, 183, 170, 186, 172, 174, 173, 187, 177, 185,
+ 188, 189, 43, 192, 178, 190, 191, 104, 179, 193,
+ 180, 194, 182, 184, 183, 195, 186, 196, 181, 197,
+ 187, 198, 185, 199, 188, 189, 105, 192, 190, 191,
+ 200, 201, 205, 193, 194, 202, 203, 204, 176, 195,
+
+ 196, 181, 197, 206, 198, 207, 199, 208, 126, 209,
+ 39, 210, 211, 212, 200, 201, 205, 213, 202, 203,
+ 204, 214, 215, 103, 216, 217, 206, 218, 207, 219,
+ 208, 220, 221, 209, 210, 211, 222, 212, 224, 175,
+ 225, 213, 175, 226, 229, 214, 215, 216, 227, 217,
+ 218, 228, 219, 230, 220, 231, 221, 232, 233, 222,
+ 234, 237, 224, 236, 225, 238, 239, 226, 229, 235,
+ 240, 227, 241, 245, 228, 242, 230, 250, 231, 243,
+ 232, 233, 244, 246, 234, 237, 236, 247, 248, 238,
+ 239, 248, 235, 251, 240, 252, 241, 245, 242, 253,
+
+ 176, 250, 243, 254, 255, 244, 246, 256, 257, 258,
+ 247, 259, 39, 261, 262, 266, 251, 263, 264, 252,
+ 265, 267, 253, 268, 269, 270, 254, 255, 271, 272,
+ 256, 273, 257, 258, 274, 259, 261, 278, 262, 266,
+ 263, 264, 248, 265, 267, 248, 268, 269, 270, 249,
+ 282, 271, 272, 279, 280, 273, 281, 274, 283, 284,
+ 278, 285, 286, 50, 287, 275, 288, 276, 289, 290,
+ 45, 291, 293, 277, 282, 292, 279, 280, 294, 281,
+ 295, 283, 296, 284, 297, 285, 286, 287, 275, 288,
+ 276, 289, 298, 290, 291, 293, 277, 299, 300, 292,
+
+ 301, 294, 302, 249, 295, 296, 303, 304, 297, 305,
+ 306, 307, 308, 309, 310, 311, 298, 313, 314, 315,
+ 299, 300, 316, 301, 317, 318, 302, 319, 320, 303,
+ 304, 312, 305, 306, 307, 308, 309, 310, 321, 311,
+ 313, 322, 314, 315, 323, 316, 324, 317, 318, 329,
+ 319, 327, 320, 325, 312, 330, 325, 331, 333, 334,
+ 335, 321, 336, 325, 337, 322, 325, 328, 323, 324,
+ 325, 339, 329, 325, 338, 327, 325, 340, 330, 325,
+ 331, 333, 334, 335, 325, 336, 341, 325, 337, 342,
+ 328, 43, 343, 325, 332, 339, 325, 338, 344, 345,
+
+ 347, 340, 345, 349, 351, 349, 349, 352, 349, 341,
+ 352, 352, 342, 352, 326, 343, 352, 332, 352, 352,
+ 352, 344, 352, 347, 326, 352, 352, 351, 352, 352,
+ 352, 326, 352, 352, 352, 352, 352, 326, 352, 352,
+ 352, 352, 352, 352, 352, 326, 352, 352, 352, 352,
+ 352, 352, 352, 352, 326, 352, 352, 352, 352, 352,
+ 346, 352, 352, 352, 350, 352, 350, 42, 42, 352,
+ 42, 42, 51, 51, 107, 107, 223, 352, 352, 223,
+ 260, 260, 348, 348, 352, 348, 348, 3, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
- 326, 326, 352, 352, 352, 346, 346, 352, 352, 352,
- 352, 352, 352, 352, 352, 352, 352, 352, 352, 350,
- 350, 352, 352, 350, 350, 42, 42, 352, 42, 42,
- 51, 51, 107, 107, 223, 352, 352, 223, 260, 260,
- 348, 348, 352, 348, 348, 3, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
- 352, 352, 352, 352, 352, 352, 352, 352, 352, 352
-
+ 352
} ;
-static const flex_int16_t yy_chk[901] =
+static const flex_int16_t yy_chk[852] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -647,99 +642,94 @@ static const flex_int16_t yy_chk[901] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 12, 12, 2, 5, 5,
- 5, 5, 13, 13, 16, 17, 18, 19, 16, 23,
- 21, 19, 2, 18, 354, 20, 16, 20, 21, 22,
- 18, 19, 22, 31, 47, 47, 20, 52, 16, 17,
-
- 18, 19, 16, 23, 21, 19, 2, 18, 20, 16,
- 20, 21, 22, 18, 19, 22, 53, 31, 54, 20,
- 24, 52, 55, 26, 350, 2, 2, 346, 24, 5,
- 5, 26, 326, 24, 27, 28, 249, 26, 27, 53,
- 176, 57, 54, 56, 24, 28, 55, 26, 27, 126,
- 28, 24, 63, 29, 64, 26, 24, 58, 27, 28,
- 26, 29, 27, 29, 29, 57, 56, 30, 28, 59,
- 65, 27, 30, 28, 108, 30, 63, 29, 64, 60,
- 58, 105, 61, 46, 29, 62, 29, 29, 42, 41,
- 30, 67, 59, 33, 65, 30, 33, 33, 30, 32,
-
- 66, 32, 60, 33, 32, 61, 34, 34, 62, 69,
- 73, 32, 32, 34, 67, 32, 68, 33, 38, 68,
- 33, 33, 35, 32, 66, 32, 33, 72, 32, 37,
- 34, 34, 69, 73, 32, 32, 34, 37, 32, 36,
- 36, 36, 36, 71, 71, 37, 39, 39, 39, 39,
- 74, 72, 75, 37, 15, 76, 84, 36, 11, 77,
- 79, 37, 80, 8, 77, 81, 71, 71, 37, 78,
- 86, 3, 88, 74, 89, 75, 0, 68, 68, 76,
- 84, 36, 77, 79, 0, 80, 78, 77, 81, 87,
- 0, 91, 92, 78, 86, 88, 93, 89, 94, 87,
-
- 36, 36, 90, 95, 0, 90, 96, 39, 39, 78,
- 97, 0, 98, 87, 91, 92, 100, 0, 101, 93,
- 100, 94, 87, 101, 102, 90, 104, 95, 90, 96,
- 103, 103, 103, 103, 97, 98, 106, 0, 109, 110,
- 100, 101, 112, 113, 100, 114, 101, 102, 103, 116,
- 104, 115, 117, 120, 118, 119, 120, 121, 122, 123,
- 106, 109, 124, 110, 125, 112, 113, 125, 114, 127,
- 0, 128, 103, 116, 115, 129, 117, 118, 130, 119,
- 121, 122, 123, 131, 134, 129, 124, 132, 133, 0,
- 135, 103, 103, 127, 128, 125, 136, 138, 141, 129,
-
- 139, 130, 0, 0, 142, 143, 131, 134, 129, 144,
- 145, 132, 133, 135, 120, 120, 147, 148, 125, 149,
- 136, 138, 141, 139, 151, 125, 125, 142, 143, 152,
- 153, 157, 144, 145, 154, 155, 156, 158, 159, 160,
- 147, 148, 149, 161, 162, 163, 165, 151, 164, 166,
- 167, 169, 152, 170, 153, 157, 172, 154, 155, 156,
- 158, 159, 175, 160, 178, 175, 179, 161, 162, 163,
- 165, 164, 166, 167, 169, 180, 183, 170, 181, 172,
- 182, 184, 186, 188, 190, 191, 0, 192, 178, 193,
- 179, 195, 198, 0, 191, 199, 200, 0, 201, 180,
-
- 183, 181, 202, 182, 184, 186, 188, 190, 203, 191,
- 192, 204, 211, 193, 205, 195, 198, 191, 206, 199,
- 200, 201, 212, 175, 175, 202, 210, 213, 219, 210,
- 214, 203, 215, 216, 217, 204, 211, 205, 221, 222,
- 228, 206, 226, 229, 230, 212, 234, 236, 0, 238,
- 239, 213, 219, 214, 240, 215, 216, 217, 241, 242,
- 243, 246, 221, 222, 228, 226, 229, 230, 247, 234,
- 251, 236, 238, 239, 252, 254, 255, 240, 256, 0,
- 258, 241, 242, 243, 263, 246, 264, 210, 210, 265,
- 275, 247, 248, 251, 277, 248, 268, 252, 254, 255,
-
- 0, 269, 256, 258, 272, 276, 280, 281, 263, 282,
- 264, 283, 284, 265, 275, 248, 286, 248, 277, 268,
- 285, 0, 287, 248, 269, 288, 289, 272, 276, 280,
- 281, 0, 290, 282, 283, 291, 284, 292, 248, 286,
- 248, 293, 295, 298, 285, 287, 248, 299, 288, 302,
- 289, 303, 305, 248, 248, 290, 304, 307, 291, 308,
- 292, 310, 311, 312, 293, 295, 298, 303, 313, 315,
- 299, 314, 302, 317, 0, 303, 305, 318, 321, 304,
- 319, 307, 308, 319, 310, 311, 312, 320, 0, 323,
- 303, 324, 313, 315, 314, 327, 325, 317, 328, 325,
-
- 318, 321, 329, 320, 331, 330, 332, 331, 333, 336,
- 334, 320, 323, 334, 324, 337, 335, 338, 327, 335,
- 339, 328, 340, 342, 344, 329, 320, 325, 330, 341,
- 332, 333, 341, 336, 343, 0, 347, 343, 0, 337,
- 338, 319, 319, 339, 0, 340, 342, 344, 345, 0,
- 325, 345, 349, 0, 0, 349, 0, 325, 325, 347,
- 0, 0, 0, 0, 0, 331, 331, 0, 0, 0,
- 0, 334, 334, 0, 0, 0, 0, 335, 335, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 341, 341, 0, 0, 0, 343, 343, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
- 345, 0, 0, 349, 349, 353, 353, 0, 353, 353,
- 355, 355, 356, 356, 357, 0, 0, 357, 358, 358,
- 359, 359, 0, 359, 359, 352, 352, 352, 352, 352,
+ 1, 1, 1, 2, 12, 12, 2, 5, 5, 5,
+ 5, 13, 13, 16, 17, 18, 19, 16, 23, 21,
+ 19, 2, 18, 354, 20, 16, 20, 21, 22, 18,
+ 19, 22, 31, 47, 47, 20, 52, 16, 17, 18,
+
+ 19, 16, 23, 21, 19, 2, 18, 20, 16, 20,
+ 21, 22, 18, 19, 22, 26, 31, 24, 20, 54,
+ 52, 53, 27, 26, 2, 24, 27, 28, 5, 26,
+ 24, 36, 36, 36, 36, 56, 27, 28, 55, 26,
+ 350, 24, 28, 54, 53, 57, 27, 26, 24, 36,
+ 27, 28, 26, 24, 34, 34, 29, 63, 56, 27,
+ 28, 34, 55, 30, 29, 28, 29, 29, 30, 57,
+ 58, 30, 346, 36, 326, 59, 249, 64, 34, 34,
+ 29, 63, 60, 61, 34, 68, 30, 29, 68, 29,
+ 29, 30, 36, 58, 30, 32, 37, 32, 59, 33,
+
+ 32, 64, 33, 33, 37, 60, 61, 32, 32, 33,
+ 62, 32, 37, 39, 39, 39, 39, 65, 66, 32,
+ 37, 32, 67, 33, 32, 69, 33, 33, 37, 72,
+ 32, 32, 33, 62, 32, 37, 71, 71, 73, 74,
+ 75, 65, 66, 76, 84, 67, 68, 77, 69, 78,
+ 176, 126, 77, 72, 79, 80, 81, 86, 108, 71,
+ 71, 73, 74, 75, 88, 89, 78, 76, 84, 91,
+ 77, 92, 87, 78, 39, 77, 93, 79, 80, 81,
+ 90, 86, 87, 90, 94, 95, 97, 88, 89, 78,
+ 96, 98, 91, 100, 92, 101, 87, 100, 104, 93,
+
+ 101, 102, 105, 90, 46, 87, 90, 94, 106, 95,
+ 97, 109, 110, 96, 98, 112, 113, 100, 101, 114,
+ 116, 100, 104, 101, 102, 103, 103, 103, 103, 115,
+ 117, 119, 106, 118, 109, 121, 110, 120, 112, 113,
+ 120, 122, 114, 103, 116, 123, 124, 125, 127, 129,
+ 125, 128, 115, 130, 117, 119, 118, 131, 121, 129,
+ 132, 133, 42, 136, 122, 134, 135, 103, 123, 138,
+ 124, 139, 127, 129, 128, 141, 130, 142, 125, 143,
+ 131, 144, 129, 145, 132, 133, 103, 136, 134, 135,
+ 147, 148, 153, 138, 139, 149, 151, 152, 120, 141,
+
+ 142, 125, 143, 154, 144, 155, 145, 156, 125, 157,
+ 41, 158, 159, 160, 147, 148, 153, 161, 149, 151,
+ 152, 162, 163, 38, 164, 165, 154, 166, 155, 167,
+ 156, 169, 170, 157, 158, 159, 172, 160, 178, 175,
+ 179, 161, 175, 180, 183, 162, 163, 164, 181, 165,
+ 166, 182, 167, 184, 169, 186, 170, 188, 190, 172,
+ 191, 193, 178, 192, 179, 195, 198, 180, 183, 191,
+ 199, 181, 200, 204, 182, 201, 184, 211, 186, 202,
+ 188, 190, 203, 205, 191, 193, 192, 206, 210, 195,
+ 198, 210, 191, 212, 199, 213, 200, 204, 201, 214,
+
+ 175, 211, 202, 215, 216, 203, 205, 217, 219, 221,
+ 206, 222, 35, 226, 228, 236, 212, 229, 230, 213,
+ 234, 238, 214, 239, 240, 241, 215, 216, 242, 243,
+ 217, 246, 219, 221, 247, 222, 226, 251, 228, 236,
+ 229, 230, 248, 234, 238, 248, 239, 240, 241, 210,
+ 256, 242, 243, 252, 254, 246, 255, 247, 258, 263,
+ 251, 264, 265, 15, 268, 248, 269, 248, 272, 275,
+ 11, 276, 280, 248, 256, 277, 252, 254, 281, 255,
+ 282, 258, 283, 263, 284, 264, 265, 268, 248, 269,
+ 248, 272, 285, 275, 276, 280, 248, 286, 287, 277,
+
+ 288, 281, 289, 248, 282, 283, 290, 291, 284, 292,
+ 293, 295, 298, 299, 302, 303, 285, 304, 305, 307,
+ 286, 287, 308, 288, 310, 311, 289, 312, 313, 290,
+ 291, 303, 292, 293, 295, 298, 299, 302, 314, 303,
+ 304, 315, 305, 307, 317, 308, 318, 310, 311, 321,
+ 312, 320, 313, 319, 303, 323, 319, 324, 327, 328,
+ 329, 314, 330, 325, 332, 315, 325, 320, 317, 318,
+ 331, 336, 321, 331, 333, 320, 334, 337, 323, 334,
+ 324, 327, 328, 329, 335, 330, 338, 335, 332, 339,
+ 320, 8, 340, 341, 325, 336, 341, 333, 342, 343,
+
+ 344, 337, 343, 345, 347, 349, 345, 3, 349, 338,
+ 0, 0, 339, 0, 319, 340, 0, 325, 0, 0,
+ 0, 342, 0, 344, 325, 0, 0, 347, 0, 0,
+ 0, 331, 0, 0, 0, 0, 0, 334, 0, 0,
+ 0, 0, 0, 0, 0, 335, 0, 0, 0, 0,
+ 0, 0, 0, 0, 341, 0, 0, 0, 0, 0,
+ 343, 0, 0, 0, 345, 0, 349, 353, 353, 0,
+ 353, 353, 355, 355, 356, 356, 357, 0, 0, 357,
+ 358, 358, 359, 359, 0, 359, 359, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
+
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
- 352, 352, 352, 352, 352, 352, 352, 352, 352, 352
-
+ 352, 352, 352, 352, 352, 352, 352, 352, 352, 352,
+ 352
} ;
static yy_state_type yy_last_accepting_state;
@@ -895,8 +885,8 @@ static Common::String *readUntilNull(const char **ptr) {
return res;
}
-#line 898 "engines/director/lingo/lingo-lex.cpp"
-#line 899 "engines/director/lingo/lingo-lex.cpp"
+#line 888 "engines/director/lingo/lingo-lex.cpp"
+#line 889 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1117,7 +1107,7 @@ YY_DECL
#line 159 "engines/director/lingo/lingo-lex.l"
-#line 1120 "engines/director/lingo/lingo-lex.cpp"
+#line 1110 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1645,7 +1635,7 @@ YY_RULE_SETUP
#line 290 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1648 "engines/director/lingo/lingo-lex.cpp"
+#line 1638 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 660a1bf324f..616626f2f42 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -198,7 +198,7 @@ exit { count(); return tEXIT; }
field { count(); return tFIELD; }
frame { count(); return tFRAME; }
global { count(); return tGLOBAL; }
-go{spc}+(to)? { count(); return tGO; }
+go({spc}+to)? { count(); return tGO; }
hilite { count(); return tHILITE; }
if { count(); return tIF; }
instance { count(); return tINSTANCE; }
More information about the Scummvm-git-logs
mailing list