aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/livingbooks_code.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mohawk/livingbooks_code.cpp')
-rw-r--r--engines/mohawk/livingbooks_code.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/mohawk/livingbooks_code.cpp b/engines/mohawk/livingbooks_code.cpp
index bb8f7a0d05..38719e5e00 100644
--- a/engines/mohawk/livingbooks_code.cpp
+++ b/engines/mohawk/livingbooks_code.cpp
@@ -669,6 +669,24 @@ void LBCode::parseMain() {
_stack.push(_stack.pop().isZero() ? 1 : 0);
break;
+ case kTokenEval:
+ // FIXME: original token?
+ debugN("..");
+ nextToken();
+ parseStatement();
+ if (!_stack.size())
+ error("eval op failed");
+ {
+ // FIXME: XXX
+ LBValue in = _stack.pop();
+ if (in.type != kLBValueString)
+ error("eval op on non-string");
+ Common::String varname = in.string;
+ LBValue &val = _vm->_variables[varname];
+ _stack.push(val);
+ }
+ break;
+
case kTokenGeneralCommand:
runGeneralCommand();
break;