SEQUENCE_INTERRUPTION_LIST GrfExecuteString::executeInternal(DtaScriptVariable& visibility) { DtaScriptVariable* pThis = visibility.getVariable(*_pThis); std::string sCommand = _pCommand->getValue(visibility); ScpStream theCommand(sCommand); DtaScript script(getParent()); script.parseStream(theCommand); return script.execute(*pThis); }
void* _THyPhy::AskFor (const char* resultID) { if (resultID && askFID >= 0) { _String theCommand (128L,true); theCommand << "return "; theCommand << _tHYPHYAskFor; theCommand << "(\""; theCommand.EscapeAndAppend (resultID); theCommand << "\");"; theCommand.Finalize(); _ExecutionList compiledCode (theCommand); compiledCode.ExecuteAndClean (0x7ffffff); _PMathObj retResult = compiledCode.GetResult (); if (retResult && retResult->ObjectClass() == STRING) { _FString * checkHandled = (_FString*)retResult; if (checkHandled->theString->Equal (&_tHYPHYNotHandled)) { return nil; } } return retResult->makeDynamic(); } return nil; }