X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkInterpreter.cxx;h=a6e4869da13ba3aa37898565273e3e165fe20cdc;hb=9edc48dd1cb5a2fe6a09d147eed459cb6e9f0fca;hp=694f97a74a64e2e0c59baf2a96aad56013b20ced;hpb=71376d8384d5d21b5c56d36ecc8cbf31315c039a;p=bbtk.git diff --git a/kernel/src/bbtkInterpreter.cxx b/kernel/src/bbtkInterpreter.cxx index 694f97a..a6e4869 100644 --- a/kernel/src/bbtkInterpreter.cxx +++ b/kernel/src/bbtkInterpreter.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkInterpreter.cxx,v $ $ Language: C++ - Date: $Date: 2008/02/05 13:23:46 $ - Version: $Revision: 1.25 $ + Date: $Date: 2008/02/14 10:47:51 $ + Version: $Revision: 1.30 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -54,6 +54,7 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL; // mFactory = new bbtk::Factory(); mExecuter = new bbtk::Executer(); + //mExecuter = new bbtk::Transcriptor("GeneratedProgram.txt"); //mExecuter->SetFactory(mFactory); // Builds the commands dict @@ -222,10 +223,10 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL; info.category = "include"; info.argmin = 1; - info.argmax = 1; + info.argmax = 2; info.code = cInclude; - info.syntax = "include "; - info.help = "Includes the file "; + info.syntax = "include [source]"; + info.help = "Includes the file .\n 'source' : If the keyword 'source' is provided then informs bbi that the included file is the source of the current box definition (Advanced; used to get the right 'Include' field in html doc of packages 'appli' scripts)."; mCommandDict[info.category] = info; info.category = "quit"; @@ -297,7 +298,7 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL; * */ void Interpreter::InterpretFile( const std::string& filename, - bool use_configuration_file) + bool use_configuration_file) { bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretFile(\""<0) { - filename = Utilities::get_file_name(mFileName.back()); + filename = mIncludeFileName.back(); //Utilities::get_file_name(mFileName.back()); } if (words.size()==2) { @@ -564,6 +565,11 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment ) { SwitchToFile(words[1], true ); // true : better pass use_config_file } + // if 'source' was given + if (words.size()==3) + { + this->mExecuter->SetCurrentFileName(words[1]); + } break; case cLoad: @@ -744,7 +750,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& // It's a user intended message. // Please don't remove it. bbtkMessage("Interpreter",1, - "look for : [" << name + "look for : [" << name << "] (use_configuration_file == TRUE)" << std::endl); script_paths = ConfigurationFile::GetInstance().Get_bbs_paths(); } @@ -766,7 +772,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& { if ((*i).substr((*i).size()-4, 4) != ".bbs") continue; // ignore non .bbs files - LoadScript(*i); + LoadScript(*i,name); nbBssFiles++; } if (nbBssFiles==0) @@ -816,7 +822,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& if ((*i).substr((*i).size()-4, 4) != ".bbs") continue; // ignore non .bbs files - LoadScript(*i); + LoadScript(*i,name); nbBssFiles++; } if (nbBssFiles==0) @@ -924,7 +930,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& return; } else - LoadScript(fullPathScriptName); + LoadScript(fullPathScriptName,name); return; } @@ -932,7 +938,8 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& //======================================================================= - void Interpreter::LoadScript( std::string fullPathScriptName) + void Interpreter::LoadScript( std::string fullPathScriptName, + std::string includeScriptName) { if (find(mFileName.begin(),mFileName.end(),fullPathScriptName) !=mFileName.end()) @@ -956,6 +963,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& mFile.push_back(s); mFileName.push_back(fullPathScriptName); + mIncludeFileName.push_back(includeScriptName); mLine.push_back(0); return; } @@ -982,6 +990,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector& " Closing file '"<& bbtkDebugMessage("Interpreter",9, " Closing file '"<& words) try { HelpPackage(words[1]); +#ifdef _USE_WXWIDGETS_ + if ( WxConsole::GetInstance() != 0 ) + { + std::string url = + ConfigurationFile::GetInstance().Get_doc_path(); + url += "/bbdoc/" + words[1] + "/index.html"; + if (Utilities::FileExists(url)) + { + WxConsole::GetInstance()->ShowHtmlPage(url); + } + } +#endif } catch (bbtk::Exception f) { try { - HelpBlackBox(words[1]); - } - catch (bbtk::Exception g) - { - try - { - this->mExecuter->ShowRelations(words[1],"0","9999"); - } - catch (bbtk::Exception h){ - bbtkError("\""<ShowHtmlPage(url); + } + } +#endif + } + catch (bbtk::Exception g) + { + try + { + this->mExecuter->ShowRelations(words[1],"0","9999"); + } + catch (bbtk::Exception h){ + bbtkError("\""<& words) /// Displays the Configuration void Interpreter::Config() const { - bbtkDebugMessageInc("Kernel",9,"Factory::Config"<bbs_paths = cf.Get_bbs_paths(); - const std::vectorpackage_paths = cf.Get_package_paths(); - - bbtkMessage("Help",1, "=============" << std::endl); - bbtkMessage("Help",1, "Configuration" << std::endl); - bbtkMessage("Help",1, "=============" << std::endl); - bbtkMessage("Help",1, "bbtk_config.xml : [" << config_xml_full_path << "]" << std::endl); - bbtkMessage("Help",1, "Documentation Url : [" << url << "]" << std::endl); - bbtkMessage("Help",1, "Data Path : [" << data_path << "]" << std::endl); - bbtkMessage("Help",1, "Default Doc_tmp : [" << default_doc_tmp << "]" << std::endl); - bbtkMessage("Help",1, "File Separator : [" << file_separator << "]" << std::endl); - - std::vector::const_iterator i; - - bbtkMessage("Help",1, "BBS Paths " << std::endl); - for (i = bbs_paths.begin(); i!=bbs_paths.end(); ++i ) - { - bbtkMessage("Help",1,"--- ["<<*i<<"]"<