]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreterVirtual.cxx
#3073 BBTK Bug New Normal - message documentation in boxes
[bbtk.git] / kernel / src / bbtkInterpreterVirtual.cxx
index aa9e3cca9f05b5f97347e19fcd2af4f585364d4d..93d05ed5cf88ef1d335734a949476b26cb088134 100644 (file)
@@ -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(\""
                     <<line<<"\")"<<std::endl);
     std::vector<std::string> 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<std::ifstream*>(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<std::ifstream*>(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]); "<<line<<std::endl;
     // other cammands
 
@@ -1123,7 +1126,7 @@ namespace bbtk
 
     bbtkDebugMessage("interpreter",6,"<== InterpreterVirtual::DoInterpretLine(\""
                     <<line<<"\")"<<std::endl);
-         
+
   }
   //=======================================================================  
 
@@ -1270,7 +1273,8 @@ namespace bbtk
     std::string fullPathScriptName;  // full path script name
     std::string pkgname;             // e.g. <scriptname>.bbs
     std::vector<std::string> 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<std::string>::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<sizeFilenames; iFilesnames++)
+             {
+                         for (jFilesnames=iFilesnames;jFilesnames<sizeFilenames; jFilesnames++)
+                         {
+                                 if ( Filenames[iFilesnames] > Filenames[jFilesnames] )
+                                 {
+                                         tmpFilenames                          = Filenames[iFilesnames];
+                                         Filenames[iFilesnames]        = Filenames[jFilesnames];
+                                         Filenames[jFilesnames]        = tmpFilenames;
+                                 } // if Filesnames
+                         } // for iFilesnames
+             } // for iFilesnames
+                 
+                 
+                 
            for (std::vector<std::string>::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