X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkInterpreter.cxx;h=8e87d7a4dd0d72222eed7f8549de2ee25639447e;hb=5c4a538667f27876a5259ce1478ff809ad2bee6f;hp=7d2eb54530322538df4253fdf6bb53afde5bca77;hpb=5d503ab0e50fbae3cd2ebd26e6c815557abbe42e;p=bbtk.git diff --git a/kernel/src/bbtkInterpreter.cxx b/kernel/src/bbtkInterpreter.cxx index 7d2eb54..8e87d7a 100644 --- a/kernel/src/bbtkInterpreter.cxx +++ b/kernel/src/bbtkInterpreter.cxx @@ -1,20 +1,33 @@ -/*========================================================================= - +/*========================================================================= Program: bbtk - Module: $RCSfile: bbtkInterpreter.cxx,v $ $ + Module: $RCSfile: bbtkInterpreter.cxx,v $ Language: C++ - Date: $Date: 2008/07/01 07:58:28 $ - Version: $Revision: 1.67 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - + Date: $Date: 2009/06/08 14:50:03 $ + Version: $Revision: 1.86 $ =========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + /** * \file * \brief class Interpreter : @@ -26,6 +39,7 @@ #include "bbtkMessageManager.h" #include "bbtkConfigurationFile.h" #include "bbtkUtilities.h" +#include "bbtkAtomicBlackBox.h" #include "bbtkWxBlackBox.h" #include #include @@ -42,7 +56,7 @@ namespace bbtk //======================================================================= Interpreter::Pointer Interpreter::New(const std::string& cpp_file) { - bbtkDebugMessage("Kernel",9,"Interpreter::New('"< Interpreter("< Interpreter(VirtualExec)"< Interpreter::~Interpreter()" < ~Interpreter()" <GetNoErrorMode()) + { + bbtkWarning("ERROR :"<GetNoErrorMode()) + { + std::string file("?"); + int line = 0; + if (mFileName.size()) { + file = mFileName.back(); + line = mLine.back(); + } + bbtkWarning("ERROR '"<GetNoErrorMode()) + { + std::string file("?"); + int line = 0; + if (mFileName.size()) { + file = mFileName.back(); + line = mLine.back(); + } + bbtkWarning("ERROR '"<GetNoErrorMode()) + { + std::string file("?"); + int line = 0; + if (mFileName.size()) { + file = mFileName.back(); + line = mLine.back(); + } + bbtkWarning("UNDEFINED ERROR " + <<"("< Interpreter::InterpretFile(\""<0) - { - while (!mFile.back()->eof()) { - mLine.back()++; - char buf[500]; - mFile.back()->getline(buf,500); - std::string str(buf); - int size=str.length(); - if ( str[ size-1 ]==13 ) - { - str.erase(size-1,1); - } - - InterpretLine(str, insideComment); - - }//while - CloseCurrentFile(); - } - } + mStatus = Interpreter_OK; + SwitchToFile(filename,source); + mInsideComment = false; + InterpretCurrentStreams(); + } CATCH_MACRO; - CloseAllFiles(); - bbtkDebugMessage("Interpreter",9,"EO Interpreter::InterpretFile(\""< Interpreter::InterpretBuffer()"<0) + mInsideComment = false; + InterpretCurrentStreams(); + } + CATCH_MACRO; + + // CloseAllFiles(); + bbtkDebugMessage("interpreter",4,"<== Interpreter::InterpretBuffer()"< Interpreter::InterpretCurrentStreams()"<0) { while (!mFile.back()->eof()) { mLine.back()++; @@ -581,22 +693,18 @@ namespace bbtk { str.erase(size-1,1); } - - InterpretLine(str, insideComment); - - }//while - + try + { + DoInterpretLine(str); + } + CATCH_MACRO; + } CloseCurrentFile(); } - } - CATCH_MACRO; - - CloseAllFiles(); - bbtkDebugMessage("Interpreter",9,"EO Interpreter::InterpretBuffer()"< Interpreter::InterpretLine('"< Interpreter::DoInterpretLine(\"" + < words; SplitLine(line,words); // Empty line if (words.size()<1) { - bbtkDebugDecTab("Interpreter",9); + bbtkDebugDecTab("interpreter",9); return; } // Single line comment : # or // if ( words[0][0]=='#' || (words[0][0]=='/' && words[0][1]=='/') ) { - bbtkDebugDecTab("Interpreter",9); - bbtkMessage("Interpreter",9,"Comment"<SetMessageLevel(words[1],level); + } + return; + } + else + { + bbtkMessage("echo",2,line<(mFile.back()); + if (fs!=0) in_script = true; + file = mFileName.back(); + line = mLine.back(); + } + if (command.code==cBreak) + { + /* + std::cout << "BreakException(" + <Create(words[1],words[2]); break; @@ -717,7 +873,7 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) case cDefine : if (mFileName.size()>0) { - filename = mIncludeFileName.back(); //Utilities::get_file_name(mFileName.back()); + filename = mFileName.back(); //mIncludeFileName.back(); //Utilities::get_file_name(mFileName.back()); } if (words.size()==2) { @@ -743,11 +899,25 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) case cExec : if (words[1]=="freeze") - mVirtualExecuter->SetNoExecMode(true); - else if (words[1]=="unfreeze") - mVirtualExecuter->SetNoExecMode(false); - else - mVirtualExecuter->Execute(words[1]); + { + mVirtualExecuter->SetNoExecMode(true); + mThrow = false; + } + else if (words[1]=="freeze_no_error") + { + mVirtualExecuter->SetNoExecMode(true); + mVirtualExecuter->SetNoErrorMode(true); + mThrow = false; + } + else if (words[1]=="unfreeze") + { + mVirtualExecuter->SetNoExecMode(false); + mVirtualExecuter->SetNoErrorMode(false); + } + else + { + mVirtualExecuter->Execute(words[1]); + } break; case cInput : @@ -794,17 +964,6 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) Help(words); break; - case cMessage : - if (words.size()<3) - { - mVirtualExecuter->HelpMessages(); - } - else - { - sscanf(words[2].c_str(),"%d",&level); - mVirtualExecuter->SetMessageLevel(words[1],level); - } - break; case cGraph : Graph(words); @@ -817,22 +976,23 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) case cReset : Reset(); break; + + case cClear : + mVirtualExecuter->Clear(); + break; case cInclude : - if (mCommandLine) + // if 'source' was given (words.size()==3) then tell to set the + // source file name of the current complex box with the full file name included + if (mCommandLine) { - InterpretFile(words[1]); + InterpretFile(words[1],(words.size()==3)); } else { - SwitchToFile(words[1]); + SwitchToFile(words[1],(words.size()==3) ); } - // if 'source' was given - if (words.size()==3) - { - GetExecuter()->SetCurrentFileName(words[1]); - } - break; + break; case cLoad: GetExecuter()->LoadPackage(words[1]); @@ -842,10 +1002,6 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) GetExecuter()->UnLoadPackage(words[1]); break; - case cQuit : - throw QuitException(); - break; - case cDebug : if (words.size()==2) Debug(words[1]); else Debug(""); @@ -867,8 +1023,10 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) bbtkInternalError("should not reach here !!!"); } - bbtkDecTab("Interpreter",9); -} + bbtkDebugMessage("interpreter",6,"<== Interpreter::DoInterpretLine(\"" + <& tokens) + void Interpreter::SplitLine ( const std::string& str, std::vector& tokens) { - bbtkDebugMessageInc("Interpreter",9,"Interpreter::SplitLine(\""< Interpreter::SplitLine(\""< quote; @@ -895,7 +1050,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& ++i; if (i!=quote.end()) { - // bbtkDebugMessage("Interpreter",0,"\""<<*i<<"\""<& for (i=tokens.begin(); i!=tokens.end(); ++i) { - bbtkDebugMessage("Interpreter",9,"["<<*i<<"] "); + bbtkDebugMessage("interpreter",9,"--["<<*i<<"]"<& void Interpreter::Reset() { // Cannot close all files if the reset command is read from a file ! - // CloseAllFiles(); + CloseAllFiles(); mFileNameHistory.clear(); this->mVirtualExecuter->Reset(); } @@ -931,7 +1085,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& { if (mVirtualExecuter->GetNoExecMode()) return; - bbtkDebugMessageInc("Interpreter",9,"Interpreter::Print(\""<& std::cout << *i; } std::cout << std::endl; - bbtkDebugDecTab("Interpreter",9); + bbtkDebugDecTab("interpreter",9); } */ @@ -1003,7 +1157,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& */ // ========================================================================= - void Interpreter::SwitchToFile( const std::string& name ) + void Interpreter::SwitchToFile( const std::string& name , bool source ) { // Note : in the following : // name : the user supplied name @@ -1015,8 +1169,8 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& // use ./directory/subdir/scrname.bbs // - bbtkDebugMessageInc("Interpreter",9,"Interpreter::SwitchToFile( \"" - < Interpreter::SwitchToFile( \"" + < script_paths; std::string fullPathScriptName; // full path script name @@ -1026,7 +1180,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& // The following is *NOT* a debug time message : // It's a user intended message. // Please don't remove it. - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, "look for : [" << name << "]" << std::endl); @@ -1034,9 +1188,9 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& std::string upath; pkgname = Utilities::ExtractScriptName(name,upath); - bbtkMessage("Interpreter",3, - "extract : pkgname [" << pkgname - << "] upath [" << upath << "]" << std::endl); + bbtkMessage("interpreter",3, + "package name:[" << pkgname + << "] path:[" << upath << "]" << std::endl); bool fullnameGiven = false; bool foundFile = false; @@ -1044,16 +1198,23 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& // relative (e.g. std/boxes/*) or absolute if (pkgname == "*") { - int nbBssFiles; - + std::stringstream* stream = new std::stringstream; //if (upath.size()!=0) // avoid troubles for "*" // ==== no path provided : look in root bbs path if (upath.size()==0) { - // bbtkMessage("Interpreter",1, - script_paths.push_back( ConfigurationFile::GetInstance().Get_root_bbs_path() ); + // bbtkMessage("interpreter",1, + // LG : add all bbs path + // script_paths.push_back( ConfigurationFile::GetInstance().Get_root_bbs_path() ); + std::vector::const_iterator i; + for (i=ConfigurationFile::GetInstance().Get_bbs_paths().begin(); + i!=ConfigurationFile::GetInstance().Get_bbs_paths().end(); + i++) + { + script_paths.push_back(*i); + } } // ==== absolute path provided else if (upath[0]=='/' || upath[1] == ':' ) @@ -1071,85 +1232,82 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& // the relative path provided else { - std::vector::const_iterator i; - for (i=ConfigurationFile::GetInstance().Get_bbs_paths().begin(); - i!=ConfigurationFile::GetInstance().Get_bbs_paths().end(); - i++) - { - std::string full_path(*i); - // we *really* want '.' to be the current working directory - if (full_path == ".") { - char buf[2048]; // for getcwd - char * currentDir = getcwd(buf, 2048); - std::string cwd(currentDir); - full_path = currentDir; - } // if full_path - - full_path += ConfigurationFile::GetInstance().Get_file_separator(); - full_path += upath; - - if ( Utilities::IsDirectory( full_path ) ) - { - script_paths.push_back(full_path); - } - } - if (script_paths.empty()) - { - bbtkError("no '"<::const_iterator i; + for (i=ConfigurationFile::GetInstance().Get_bbs_paths().begin(); + i!=ConfigurationFile::GetInstance().Get_bbs_paths().end(); + i++) + { + std::string full_path(*i); + // we *really* want '.' to be the current working directory + if (full_path == ".") + { + char buf[2048]; // for getcwd + char * currentDir = getcwd(buf, 2048); + std::string cwd(currentDir); + full_path = currentDir; + } // if full_path + + full_path += ConfigurationFile::GetInstance().Get_file_separator(); + full_path += upath; + + if ( Utilities::IsDirectory( full_path ) ) + { + script_paths.push_back(full_path); + } + } + if (script_paths.empty()) + { + bbtkError("no '"<::iterator i; - for (i=script_paths.begin();i!=script_paths.end();i++)// ==== relative name, iterate + load all .bbs files + for (i=script_paths.begin();i!=script_paths.end();i++) { - bbtkMessage("Interpreter",1, + bbtkMessage("interpreter",1, "--> Looking in '" << *i << "'" << std::endl); - Filenames.clear(); - int nbFiles = Utilities::Explore(*i, false, Filenames); + //int nbFiles = + Utilities::Explore(*i, false, Filenames); - nbBssFiles = 0; for (std::vector::iterator j = Filenames.begin(); j!= Filenames.end(); ++j) { int lgr = (*j).size(); - if (lgr < 5) - continue; // ignore non .bbs file - if ((*j).substr(lgr-4, 4) != ".bbs") - continue; + if (lgr < 5) continue; + // ignore non .bbp file + if ( (*j).substr(lgr-4, 4) != ".bbp") continue; (*stream) << "include \"" << *j << "\"\n"; - bbtkMessage("Interpreter",2, - " --> Found '" << *j << "'" << std::endl); + bbtkMessage("interpreter",2," --> Found '" << *j << "'" << std::endl); nbBssFiles++; - } // for vector - - if (nbBssFiles==0) - { - bbtkMessage("Interpreter",1, - " --> No .bbs found"<< std::endl); - } - else - { - bbtkMessage("Interpreter",1, - " --> "< No .bbp found"<< std::endl); + } + else + { + bbtkMessage("interpreter",1, + " --> "<& // allow user to always forget ".bbs" int l = fullPathScriptName.size(); - if (l!=0) { - - if (l>4) - { - if (fullPathScriptName.substr(l-4, 4) != ".bbs") + if (l!=0) + { + if ((fullPathScriptName.substr(l-4, 4) != ".bbs")&& + (fullPathScriptName.substr(l-4, 4) != ".bbp")) { - fullPathScriptName = fullPathScriptName + ".bbs"; - } - } - else - { - fullPathScriptName = fullPathScriptName + ".bbs"; - } - - if ( Utilities::FileExists(fullPathScriptName)) - { - foundFile = true; - } - } // endif l != 0 + std::string tfullPathScriptName = fullPathScriptName + ".bbs"; + if ( Utilities::FileExists(tfullPathScriptName) ) + { + fullPathScriptName = tfullPathScriptName; + foundFile = true; + } + else + { + tfullPathScriptName = fullPathScriptName + ".bbp"; + if ( Utilities::FileExists(tfullPathScriptName) ) + { + fullPathScriptName = tfullPathScriptName; + foundFile = true; + } + } + } + else + { + if ( Utilities::FileExists(fullPathScriptName) ) + { + foundFile = true; + } + } + } // endif l != 0 } else - // =============================== iterate on the paths - { + // =============================== iterate on the paths + { script_paths = ConfigurationFile::GetInstance().Get_bbs_paths(); std::string path; std::vector::iterator i; for (i=script_paths.begin();i!=script_paths.end();++i) - { - path = *i; - // we *really* want '.' to be the current working directory - if (path == ".") { - char buf[2048]; // for getcwd - char * currentDir = getcwd(buf, 2048); - std::string cwd(currentDir); - path = currentDir; - } - - fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true); + { + path = *i; + // we *really* want '.' to be the current working directory + if (path == ".") + { + char buf[2048]; // for getcwd + char * currentDir = getcwd(buf, 2048); + std::string cwd(currentDir); + path = currentDir; + } - // Check if library exists - if ( ! Utilities::FileExists(fullPathScriptName) ) - { - // The following is *NOT* a debug time message : - // It's a user intended message. - // Please don't remove it. - bbtkMessage("Interpreter",2, - " [" <& else bbtkError("Script ["<SetCurrentFileName(fullPathScriptName); + } return; } @@ -1247,7 +1444,9 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& //======================================================================= void Interpreter::SwitchToStream( std::stringstream* stream ) { - mFile.push_back(stream); + bbtkDebugMessage("interpreter",4,"==> Interpreter::SwitchToStream()" + < Interpreter::LoadScript(" + <[" << fullPathScriptName + bbtkMessage("interpreter",1," -->[" << fullPathScriptName << "] found" << std::endl); mFile.push_back(s); @@ -1297,23 +1500,21 @@ void Interpreter::SwitchToStream( std::stringstream* stream ) return; } + //======================================================================= //======================================================================= - /** - * - */ void Interpreter::CloseCurrentFile() { - bbtkDebugMessage("Interpreter",9,"Interpreter::CloseCurrentFile()" + bbtkDebugMessage("interpreter",9,"==> Interpreter::CloseCurrentFile()" < no file left open"< no file left open"<(mFile.back()); if (file!=0) file->close(); @@ -1324,28 +1525,25 @@ void Interpreter::SwitchToStream( std::stringstream* stream ) mIncludeFileName.pop_back(); mLine.pop_back(); - bbtkDebugMessage("Interpreter",9," Remains " + bbtkDebugMessage("interpreter",9," Remains " < Interpreter::CloseAllFiles()" <& words, CommandInfoType& info ) { - bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretCommand(...)"< Interpreter::InterpretCommand(...)"<second.argmin ) || - ( words.size()-1 > c->second.argmax ) ) + if ( ( ((int)words.size())-1 < c->second.argmin ) || + ( ((int)words.size())-1 > c->second.argmax ) ) { HelpCommand(words[0]); bbtkError(words[0]<<" : wrong number of arguments"); } info = c->second; - bbtkDecTab("Interpreter",9); + + bbtkDebugMessage("interpreter",9,"<== Interpreter::InterpretCommand(...)"<& words) { if (words[1]=="packages") { - GetExecuter()->GetFactory()->PrintPackages(true); + GetExecuter()->GetFactory()->PrintHelpListPackages(true); return; } try @@ -1407,7 +1604,7 @@ void Interpreter::Help(const std::vector& words) { try { - GetExecuter()->GetFactory()->HelpPackage(words[1]); + GetExecuter()->GetFactory()->PrintHelpPackage(words[1]); if ( mUser != 0 ) { std::string url = @@ -1424,7 +1621,8 @@ void Interpreter::Help(const std::vector& words) try { std::string package; - GetExecuter()->GetFactory()->HelpBlackBox(words[1],package); + GetExecuter()->GetFactory()->PrintHelpDescriptor(words[1], + package); if ( mUser != 0 ) { std::string url = @@ -1441,7 +1639,7 @@ void Interpreter::Help(const std::vector& words) { try { - GetExecuter()->ShowRelations(words[1],"0","9999"); + GetExecuter()->PrintHelpBlackBox(words[1],"0","9999"); } catch (bbtk::Exception h){ bbtkError("\""<& words) { if ( words[1]=="packages" ) { - GetExecuter()->GetFactory()->PrintPackages(true,true); + GetExecuter()->GetFactory()->PrintHelpListPackages(true,true); return; } try { - GetExecuter()->GetFactory()->HelpPackage(words[1],true); + GetExecuter()->GetFactory()->PrintHelpPackage(words[1],true); } catch (bbtk::Exception f) { @@ -1515,7 +1713,7 @@ void Interpreter::Help(const std::vector& words) c = mCommandDict.find(s); if ( c == mCommandDict.end() ) { bbtkError(s<<" : Unknown command"); - } + } // std::cout << " " << s << " : "<< std::endl; // CommandParamDictType::iterator i; // for ( i = c->second.begin(); @@ -1569,10 +1767,10 @@ void Interpreter::Help(const std::vector& words) void Interpreter::GetLineFromPrompt(std::string& s) { int c; - int ind=0; + unsigned int ind=0; - int MAX_LINE_SIZE = 160; - int MAX_HISTORY_SIZE = 100; + unsigned int MAX_LINE_SIZE = 160; + unsigned int MAX_HISTORY_SIZE = 100; char* newline = new char[MAX_LINE_SIZE]; memset(newline,0,MAX_LINE_SIZE); @@ -1580,7 +1778,7 @@ void Interpreter::Help(const std::vector& words) memset(histline,0,MAX_LINE_SIZE); char* line = newline; - int hist = mHistory.size(); + unsigned int hist = mHistory.size(); write(1,"> ",2); while(1) @@ -1768,7 +1966,7 @@ void Interpreter::Help(const std::vector& words) //======================================================================= void Interpreter::CommandLineInterpreter() { - bbtkDebugMessageInc("Interpreter",9, + bbtkDebugMessageInc("interpreter",9, "Interpreter::CommandLineInterpreter()"<& words) mCommandLine = true; bool again = true; - bool insideComment = false; // for multiline comment + // bool insideComment = false; // for multiline comment + mInsideComment = false; do { try { std::string line; GetLineFromPrompt(line); - InterpretLine(line, insideComment); + DoInterpretLine(line); //, insideComment); } + /* catch (QuitException e) { - bbtkMessage("Interpreter",1,"Interpreter : Quit"<& words) std::cout << "Good bye !" << std::endl; - bbtkDebugDecTab("Interpreter",9); + bbtkDebugDecTab("interpreter",9); } //======================================================================= @@ -1923,7 +2124,7 @@ void Interpreter::NewGUI(const std::string& boxname, if (workspace==0) { delete s; - bbtkError("Interpreter::CreateGUI : could not access the executer currently defined complex box"); + bbtkError("interpreter::CreateGUI : could not access the executer currently defined complex box"); } @@ -1933,7 +2134,7 @@ void Interpreter::NewGUI(const std::string& boxname, BlackBox::Pointer box = workspace->GetPrototype()->bbGetBlackBox(boxname); // BlackBox::InputConnectorMapType incm = box->bbGetInputConnectorMap(); - int nb = 0; + // int nb = 0; BlackBox::InputConnectorMapType::iterator i; for (i=box->bbGetInputConnectorMap().begin(); i!=box->bbGetInputConnectorMap().end(); @@ -1944,9 +2145,14 @@ void Interpreter::NewGUI(const std::string& boxname, // Get the input descriptor const BlackBoxInputDescriptor* d = box->bbGetDescriptor()->GetInputDescriptor(i->first); // If it is a "system" input : skip it +#ifdef USE_WXWIDGETS if ( ( d->GetCreatorTypeInfo() == typeid(AtomicBlackBoxDescriptor)) || ( d->GetCreatorTypeInfo() == typeid(WxBlackBoxDescriptor)) ) continue; +#else + if ( ( d->GetCreatorTypeInfo() == typeid(AtomicBlackBoxDescriptor)) ) + continue; +#endif bool widok = true; std::string widget,adaptor; // try to find a widget adaptor @@ -2069,7 +2275,7 @@ void Interpreter::NewGUI(const std::string& boxname, { // int o = MessageManager::GetMessageLevel("debug"); // if (o<2) MessageManager::SetMessageLevel("debug",2); - mVirtualExecuter->GetFactory()->CheckPackages(); + mVirtualExecuter->GetFactory()->Check(); // MessageManager::SetMessageLevel("debug",o); } } @@ -2079,6 +2285,17 @@ void Interpreter::NewGUI(const std::string& boxname, } } //========================================================================== + + /* + //========================================================================== + // Adds a callback when 'break' command issued + void Interpreter::AddBreakObserver( BreakCallbackType c ) + { + mBreakSignal.connect(c); + } + //========================================================================== + */ + //========================================================================== std::string Interpreter::GetObjectName() const {