]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreter.cxx
Some indentation
[bbtk.git] / kernel / src / bbtkInterpreter.cxx
index a6e4869da13ba3aa37898565273e3e165fe20cdc..35572dfaf3f4f0be5a58c8e10ac55ba1b0f7b9c8 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkInterpreter.cxx,v $ $
   Language:  C++
-  Date:      $Date: 2008/02/14 10:47:51 $
-  Version:   $Revision: 1.30 $
+  Date:      $Date: 2008/02/14 11:26:43 $
+  Version:   $Revision: 1.31 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 =========================================================================*/
 /**
  *  \file 
- *  \brief class Interpreter : 
+ *  \brief class Interpreter :
  */
 
-#include "bbtkInterpreter.h" 
+#include "bbtkInterpreter.h"
 #include "bbtkMessageManager.h"
 #include "bbtkConfigurationFile.h"
 #include "bbtkWxConsole.h"
@@ -40,7 +40,7 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL;
 
  //=======================================================================
  /**
-   *  
+   *
    */
   Interpreter::Interpreter() 
     :
@@ -441,18 +441,18 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
       case cNew :
         mExecuter->Create(words[1],words[2]);
         break;
-        
+
       case cDelete :
         // TO DO !!
         // mExecuter->Remove(words[1]);
         break;
-        
+
       case cConnect :
         Utilities::SplitAroundFirstDot(words[1],left,right);
         Utilities::SplitAroundFirstDot(words[2],left2,right2);      
         mExecuter->Connect(left,right,left2,right2);
         break;
-        
+
       case cPackage :
         mExecuter->BeginPackage(words[1]);
         break;
@@ -460,7 +460,7 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
       case cEndPackage :
         mExecuter->EndPackage();
         break;
-        
+
       case cDefine :
         if (mFileName.size()>0) 
         {
@@ -470,16 +470,16 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
         {
            mExecuter->Define(words[1],"",filename);
         }
-        else 
+        else
         {
            mExecuter->Define(words[1],words[2],filename);
         }
         break;
-        
+
       case cEndDefine :
         mExecuter->EndDefine();
         break;
-        
+
       case cPrint :
         Print(words[1]); /// \todo use mExecuter 
         break;
@@ -489,79 +489,80 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
           mExecuter->SetNoExecMode(true);
         else if (words[1]=="unfreeze") 
           mExecuter->SetNoExecMode(false);
-        else 
+        else
           mExecuter->Update(words[1]);
         break;
-        
+
       case cInput :
         Utilities::SplitAroundFirstDot(words[2],left,right);
         mExecuter->DefineInput(words[1],left,right,words[3]);
         break;
-        
+
       case cOutput :
         Utilities::SplitAroundFirstDot(words[2],left,right);
         mExecuter->DefineOutput(words[1],left,right,words[3]);
         break;
-        
+
       case cSet :
         Utilities::SplitAroundFirstDot(words[1],left,right);
         mExecuter->Set(left,right,words[2]);
         break;
-        
+
       case cAuthor :
         mExecuter->Author(words[1]);
         break;
 
-    case cCategory :
-      mExecuter->Category(words[1]);
-      break;
-      
-    case cIndex :
-      if (words.size()==1) 
-       Index("tmp_index.html");
-      else if (words.size()==2) 
-       Index(words[1]);
-      else if (words.size()==3) 
-       Index(words[1],words[2]);
-      break;
-    case cDescription :
-      mExecuter->Description(words[1]);
+      case cCategory :
+        mExecuter->Category(words[1]);
         break;
-        
+
+      case cIndex :
+        if (words.size()==1)
+            Index("tmp_index.html");
+        else if (words.size()==2)
+            Index(words[1]);
+        else if (words.size()==3)
+            Index(words[1],words[2]);
+        break;
+
+      case cDescription :
+        mExecuter->Description(words[1]);
+        break;
+
       case cHelp :
         Help(words);
         break;
-        
+
       case cMessage : 
-        if (words.size()<3) 
+        if (words.size()<3)
         {
             bbtk::MessageManager::PrintInfo();
         }
-        else 
+        else
         {
            sscanf(words[2].c_str(),"%d",&level);
            bbtk::MessageManager::SetMessageLevel(words[1],level);
         }
         break;
-        
-      case cGraph : 
+
+      case cGraph :
         Graph(words);
         break;
-        
+
       case cConfig :
-        Config();            
+        Config();
         break;
-        
+
       case cReset :  // EED
         this->mExecuter->Reset();
         break;
-        
+
       case cInclude :
-        if (mCommandLine) 
+        if (mCommandLine)
         {
            InterpretFile(words[1], true ); // true : better pass use_config_file
         }
-        else 
+        else
         {
             SwitchToFile(words[1], true ); // true : better pass use_config_file
         }
@@ -571,26 +572,26 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
            this->mExecuter->SetCurrentFileName(words[1]);
          }
         break;
-        
+
       case cLoad:
         LoadPackage(words[1], true ); // true : better pass use_config_file
         break;
-        
+
       case cUnload:
         UnLoadPackage(words[1]);
         break;
-        
+
       case cQuit :
         throw QuitException();
         break;
-        
-         case cWorkspace :
+
+      case cWorkspace :
         if (words.size() == 2) 
         {
            if (words[1]=="freeze")        mExecuter->SetNoExecMode(true);
            else if (words[1]=="unfreeze") mExecuter->SetNoExecMode(false);
         }
-        else 
+        else
         {
            mExecuter->SetWorkspaceName(words[2]);
         }
@@ -599,7 +600,7 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
       default:
         bbtkInternalError("should not reach here !!!");
    }
-    
+
    bbtkDecTab("Interpreter",9);
 }
   //=======================================================================  
@@ -610,12 +611,12 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
 
   //=======================================================================
   /**
-   *  
+   *
    */
 void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>& tokens)
 {
     bbtkDebugMessageInc("Interpreter",9,"Interpreter::SplitLine(\""<<str<<"\")"<<std::endl);
+
     std::string delimiters = "\"";
     std::vector<std::string> quote;
     Utilities::SplitString(str,delimiters,quote);
@@ -640,7 +641,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
     }
     bbtkDebugMessageCont("Interpreter",9,std::endl);
 
-    bbtkDebugDecTab("Interpreter",9);    
+    bbtkDebugDecTab("Interpreter",9);
  }
   //=======================================================================
 
@@ -657,14 +658,14 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
    {
       s.replace(pos,2,cr,1);
       pos = s.find(ss, pos-1);
-   } 
+   }
   }
   //=======================================================================
 
 
   //=======================================================================
   /**
-   *  
+   *
    */
   void Interpreter::Print( const std::string& str)
   {
@@ -679,10 +680,10 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
     std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
     bool is_text = true;
     if (lastPos>0) is_text = false;
-  
+
     // Find first delimiter.
     std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
-    
+
     while (std::string::npos != pos || std::string::npos != lastPos)
     {
        if (is_text) 
@@ -713,12 +714,12 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
        std::cout << *i;
      }
      std::cout << std::endl;
-     bbtkDebugDecTab("Interpreter",9);    
+     bbtkDebugDecTab("Interpreter",9);
  }
 
   //=======================================================================
   /**
-   *  
+   *
    */
 
 // ===================================================================================
@@ -735,7 +736,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
   //
   // use ./directory/subdir/scrname.bbs
   //
-  
+
     bbtkDebugMessageInc("Interpreter",9,"Interpreter::SwitchToFile( \""
                          <<name<<"\")"<<std::endl);
 
@@ -743,7 +744,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
     std::string fullPathScriptName;  // full path script name
     std::string pkgname;             // e.g. <scriptname>.bbs
     std::vector<std::string> Filenames;
-        
+
     if (use_configuration_file)
     {
         // The following is *NOT* a debug time message :
@@ -779,10 +780,8 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
            bbtkMessage("Interpreter",2,
                       "WARNING : No '.bbs' file found in [" 
                       << upath << "]" << std::endl);
-
         return;
       }
-      
 
       std::string path;
       std::vector<std::string>::iterator i;
@@ -801,7 +800,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
 
         fullDirectoryName = Utilities::MakePkgnameFromPath(path, upath, false);
 
-      // Check if library exists           
+      // Check if library exists
         if ( ! Utilities::IsDirectory(fullDirectoryName) )
         {
         // The following is *NOT* a debug time message :
@@ -829,7 +828,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
          bbtkMessage("Interpreter",1,
                      "WARNING : No '.bbs' file found in [" 
                      << fullDirectoryName << "]" << std::endl);
-           
+
         //break; // a directory was found; we stop iterating
        // LG : No! We want all files included !
        }
@@ -849,7 +848,6 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
       // ===========================================================check user supplied location
       fullnameGiven = true;
 
-      
       fullPathScriptName =  Utilities::ExpandLibName(name, false);
 
       // allow user to always forget ".bbs"
@@ -911,7 +909,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
         }
        bbtkMessage("Interpreter",2,
                    "   [" <<fullPathScriptName 
-                   <<"] : found" <<std::endl);        
+                   <<"] : found" <<std::endl);
         foundFile = true;
         break; // a script was found; we stop iterating
 
@@ -927,14 +925,14 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
             bbtkError("Script ["<<fullPathScriptName<<"] not found");
        else
           bbtkError("No ["<<pkgname<<".bbs] script found");
-       return;    
+       return;
     }
     else
       LoadScript(fullPathScriptName,name);
 
     return;
-  }   
-   
+  }
+
 
   //=======================================================================
 
@@ -949,15 +947,15 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
        return;
       }
 
-    std::ifstream* s;      
+    std::ifstream* s;
     s = new std::ifstream;
     s->open(fullPathScriptName.c_str());
     if (!s->good()) 
     {
         bbtkError("Could not open file ["<<fullPathScriptName<<"]");
-        return;     
+        return;
     }
-    
+
     bbtkMessage("Interpreter",1,"   -->[" << fullPathScriptName 
                << "] found" << std::endl);
 
@@ -965,7 +963,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
     mFileName.push_back(fullPathScriptName);
     mIncludeFileName.push_back(includeScriptName);
     mLine.push_back(0);
-    return;  
+    return;
   }
 
   //=======================================================================
@@ -976,8 +974,8 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
   {
     bbtkDebugMessage("Interpreter",9,"Interpreter::CloseCurrentFile()"
                       <<std::endl);
-    
-    if (mFile.size()==0) 
+
+    if (mFile.size()==0)
     {
       bbtkDebugMessage("Interpreter",9," -> no file left open"<<std::endl);
       return;
@@ -988,7 +986,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
     mFile.pop_back();
     bbtkDebugMessage("Interpreter",9,
                      " Closing file '"<<mFileName.back()<<"'"<<std::endl);
-    
+
     mFileName.pop_back();
     mIncludeFileName.pop_back();
     mLine.pop_back();
@@ -1008,7 +1006,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
   {
     bbtkDebugMessage("Interpreter",9,"Interpreter::CloseAllFiles()"
                       <<std::endl);
-    
+
     while (mFile.size() != 0) 
     {
       mFile.back()->close();
@@ -1035,7 +1033,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
                                       CommandInfoType& info )
   {
     bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretCommand(...)"<<std::endl);
-    
+
     // searches the command category
     CommandDictType::iterator c;
     c = mCommandDict.find(words[0]);
@@ -1062,7 +1060,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
 void Interpreter::Help(const std::vector<std::string>& words)
 {
     unsigned int nbarg = words.size()-1;
-    
+
     if (nbarg==0) 
     {
        HelpCommands();
@@ -1108,13 +1106,13 @@ void Interpreter::Help(const std::vector<std::string>& words)
                   std::string url = 
                     ConfigurationFile::GetInstance().Get_doc_path();
                   url += "/bbdoc/" + package + "/index.html";
-                  if (Utilities::FileExists(url)) 
+                  if (Utilities::FileExists(url))
                     {
                       url += "#" + words[1];
                       WxConsole::GetInstance()->ShowHtmlPage(url);
                     }
                 }
-#endif     
+#endif
            }
            catch (bbtk::Exception g) 
              {
@@ -1180,7 +1178,7 @@ void Interpreter::Help(const std::vector<std::string>& words)
               std::cout << " " << i->first << std::endl;
       //      std::cout << "   usage : " << i->second.syntax << std::endl;
       //     std::cout << "    " << i->second.help << std::endl;
+
     }
   }
   //=======================================================================
@@ -1202,7 +1200,7 @@ void Interpreter::Help(const std::vector<std::string>& words)
     //      ++i) {
     std::cout << " usage : " << c->second.syntax << std::endl;
     std::cout << "  " << c->second.help << std::endl;
-    
+
   }
   //=======================================================================
 
@@ -1226,7 +1224,7 @@ void Interpreter::Help(const std::vector<std::string>& words)
   //=======================================================================
 
 
-  
+
   //=======================================================================
 #ifdef BBTK_USE_TERMIOS_BASED_PROMPT
   
@@ -1249,19 +1247,18 @@ void Interpreter::Help(const std::vector<std::string>& words)
   {
     int c;
     int ind=0;
-    
+
     int MAX_LINE_SIZE = 160;
     int MAX_HISTORY_SIZE = 100;
-    
+
     char* newline = new char[MAX_LINE_SIZE];
     memset(newline,0,MAX_LINE_SIZE);
     char* histline = new char[MAX_LINE_SIZE];
     memset(histline,0,MAX_LINE_SIZE);
-    
+
     char* line = newline;
     int hist = mHistory.size();
-    
-    
+
     write(1,"> ",2);
     while(1)
     {
@@ -1450,7 +1447,7 @@ void Interpreter::Help(const std::vector<std::string>& words)
   {
     bbtkDebugMessageInc("Interpreter",9,
                         "Interpreter::CommandLineInterpreter()"<<std::endl);
-    
+
 #ifdef BBTK_USE_TERMIOS_BASED_PROMPT  
     // Initialise the tty in non canonical mode with no echo
     // oter remembers the previous settings to restore them after 
@@ -1493,13 +1490,13 @@ void Interpreter::Help(const std::vector<std::string>& words)
       }
     }
     while (again);
-  
+
 #ifdef BBTK_USE_TERMIOS_BASED_PROMPT
     tcsetattr(0,TCSANOW,&oter);
 #endif
-  
+
     std::cout << "Good bye !" << std::endl;
-    
+
     bbtkDebugDecTab("Interpreter",9);
   }