X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkInterpreterVirtual.cxx;h=93d05ed5cf88ef1d335734a949476b26cb088134;hb=4d3619bf05342807aec39f571d94e4aea2efa38b;hp=aa9e3cca9f05b5f97347e19fcd2af4f585364d4d;hpb=0a4e8193b1c12923f11f2f5637558d2d44f0941f;p=bbtk.git diff --git a/kernel/src/bbtkInterpreterVirtual.cxx b/kernel/src/bbtkInterpreterVirtual.cxx index aa9e3cc..93d05ed 100644 --- a/kernel/src/bbtkInterpreterVirtual.cxx +++ b/kernel/src/bbtkInterpreterVirtual.cxx @@ -1,4 +1,31 @@ -/*========================================================================= +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # 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. + # ------------------------------------------------------------------------ */ + + +/*========================================================================= Program: bbtk Module: $RCSfile: bbtkInterpreter.cxx,v $ Language: C++ @@ -6,27 +33,7 @@ Version: $Revision: 1.88 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* 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 @@ -339,7 +346,6 @@ namespace bbtk */ - } //======================================================================= @@ -797,8 +803,7 @@ namespace bbtk //======================================================================= void InterpreterVirtual::DoInterpretLine( const std::string& line ) - { - + { bbtkDebugMessage("interpreter",6,"==> InterpreterVirtual::DoInterpretLine(\"" < words; @@ -885,19 +890,19 @@ namespace bbtk // break and quit commands if ((command.code==cBreak) || (command.code==cQuit)) - { - bool in_script = false; - std::string file(""); - int line = 0; - - if (mFileName.size()) - { - std::ifstream* fs = dynamic_cast(mFile.back()); - if (fs!=0) in_script = true; - file = mFileName.back(); - line = mLine.back(); - } - if (command.code==cBreak) + { +//EED-Borrame bool in_script = false; +//EED-Borrame std::string file(""); +//EED-Borrame int line = 0; + +//EED-Borrame if (mFileName.size()) +//EED-Borrame { +//EED-Borrame std::ifstream* fs = dynamic_cast(mFile.back()); +//EED-Borrame if (fs!=0) in_script = true; +//EED-Borrame file = mFileName.back(); +//EED-Borrame line = mLine.back(); +//EED-Borrame } + if (command.code==cBreak) { /* std::cout << "BreakException(" @@ -908,15 +913,13 @@ namespace bbtk commandBreak(); //EED Borrame bbtkError("break");//,in_script,file,line); // throw BreakException(in_script,file,line); - } - else - { + } else { commandQuit(); //EED Borrame bbtkError("quit");//,in_script,file,line); //throw QuitException(in_script,file,line); - } - return; - } + } // cBreak + return; + } // cBreak cQuit //std::cout<<" mVirtualExecuter->Create(words[1],words[2]); "<.bbs std::vector Filenames; - + std::string tmpFilenames; + // The following is *NOT* a debug time message : // It's a user intended message. // Please don't remove it. @@ -1282,7 +1286,6 @@ namespace bbtk std::string upath; pkgname = Utilities::ExtractScriptName(name,upath); - bbtkMessage("interpreter",3, "package name:[" << pkgname << "] path:[" << upath << "]" << std::endl); @@ -1363,6 +1366,7 @@ namespace bbtk std::vector::iterator i; for (i=script_paths.begin();i!=script_paths.end();i++) { + bbtkMessage("interpreter",1, "--> Looking in '" << *i << "'" << std::endl); @@ -1370,6 +1374,27 @@ namespace bbtk //int nbFiles = Utilities::Explore(*i, false, Filenames); + int iFilesnames,jFilesnames,sizeFilenames; + sizeFilenames=Filenames.size(); + + + // EEDd 30 sept 2012 + //Sorting list of files + for (iFilesnames=0;iFilesnames Filenames[jFilesnames] ) + { + tmpFilenames = Filenames[iFilesnames]; + Filenames[iFilesnames] = Filenames[jFilesnames]; + Filenames[jFilesnames] = tmpFilenames; + } // if Filesnames + } // for iFilesnames + } // for iFilesnames + + + for (std::vector::iterator j = Filenames.begin(); j!= Filenames.end(); ++j) { @@ -1467,6 +1492,7 @@ namespace bbtk } std::string tfullPathScriptName = Utilities::MakePkgnameFromPath(path, name, false); + //Addition JCP tfullPathScriptName.size()>=4 if(tfullPathScriptName.size()>=4){ if (tfullPathScriptName.substr(tfullPathScriptName.size()-4, 3)==".bb") @@ -1528,8 +1554,12 @@ namespace bbtk return; } else { LoadScript(fullPathScriptName,name); -//EED Borrame if (source) GetExecuter()->SetCurrentFileName(fullPathScriptName); - if (source) SetCurrentFileName(fullPathScriptName); + if (source) + { + // Over writing the fullpath of the bbp file. + SetCurrentFileName( fullPathScriptName ); + SetTypeOfScript_Application(); + } } return; @@ -1542,6 +1572,14 @@ namespace bbtk } //======================================================================= + + //======================================================================= + void InterpreterVirtual::SetTypeOfScript_Application( ) + { + } + //======================================================================= + + //======================================================================= void InterpreterVirtual::SwitchToStream( std::stringstream* stream ) { @@ -1957,8 +1995,7 @@ void InterpreterVirtual::SwitchToStream( std::stringstream* stream ) ter.c_cc[VTIME]=0; tcsetattr(0,TCSANOW,&ter); #endif - - + mCommandLine = true; bool again = true; // bool insideComment = false; // for multiline comment