void InterpreterService_impl::interpretMain(const char* expr) { ostream& os = MessageView::instance()->cout(); os << (format(_("%1%: interpret(\"%2%\")")) % item->name() % expr) << endl; ScriptItem* scriptItem = item->findOwnerItem<ScriptItem>(); if(!scriptItem){ os <<(format(_("The owner script item of %1% is not found. The interpret function cannot be executed.")) % item->name()) << endl; } else { if(scriptItem->isRunning()){ os << (format(_("Owner script item \"%1%\" is running now. The interpret function cannot be executed.")) % scriptItem->name()) << endl; } else { if(!scriptItem->executeCode(expr)){ os << (format(_("Executing the script given to the interpret function failed."))) << endl; } else { if(!scriptItem->waitToFinish()){ os << (format(_("The script does not return.")) % item->name()) << endl; } else { result = scriptItem->resultString(); if(!result.empty()){ os << (format(_("%1%: interpret() returns %2%.")) % item->name() % result) << endl; } else { os << (format(_("%1%: interpret() finished.")) % item->name()) << endl; } } } } } }