]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreter.h
Move some general usage methods to Utilities, to avoid dupplicate code :
[bbtk.git] / kernel / src / bbtkInterpreter.h
index b078a5884d5c5f8a579a89e6a39bae0427332be5..4d81c655d54406aa42dc5ee63510e0abe9b38bfa 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkInterpreter.h,v $ $
   Language:  C++
-  Date:      $Date: 2008/01/22 15:02:00 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2008/01/22 16:55:04 $
+  Version:   $Revision: 1.2 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 #ifndef __bbtkInterpreter_h__
 #define __bbtkInterpreter_h__
 
-
+#include "bbtkVirtualExec.h"
 #include "bbtkExecuter.h"
+#include "bbtkTranscriptor.h"
+
 #include <fstream>
 #include <deque>
 
 namespace bbtk
 {
  
   class BBTK_EXPORT Interpreter
   {
 
@@ -67,7 +68,7 @@ namespace bbtk
       cPrint,
       cWorkspace // LG 
     } CommandCodeType;
-    
+
     /// The structure storing the informations on a command 
     typedef struct 
     {
@@ -78,14 +79,13 @@ namespace bbtk
       std::string help;
     } CommandInfoType;
 
-
-
     /// The type of dictionnary of commands 
     typedef std::map<std::string,CommandInfoType> CommandDictType;
 
   public:
     /// Constructor
-    Interpreter();  
+    Interpreter();
     /// Destructor
     ~Interpreter();
       
@@ -104,7 +104,8 @@ namespace bbtk
     void SetNoExecMode(bool b) { mExecuter->SetNoExecMode(b); }
 
     /// 
-    typedef Executer::DialogModeType DialogModeType;
+    //typedef Executer::DialogModeType DialogModeType;
+    typedef VirtualExec::DialogModeType DialogModeType;
 
     void SetDialogMode(DialogModeType t) { mExecuter->SetDialogMode(t); }
 
@@ -150,11 +151,7 @@ namespace bbtk
     void Config(bool verbose) const; // JPR
     /// 
     void Print(const std::string&);
-    
-    /// Splits the string in around the first dot encountered
-    void SplitAroundFirstDot( const std::string& in,
-                              std::string& left,
-                              std::string& right);
+
     ///
     void FindCommandsWithPrefix( char* buf,
                                 int n,
@@ -163,32 +160,35 @@ namespace bbtk
     /// Sets the bool that indicates wether we are in command line context
     void SetCommandLine(bool v = true) { mCommandLine = v; }
 
-  private:
-  /// the methods for include bbs
-  bool FileExists(std::string strFilename);
-  std::string ExtractScriptName(const std::string &name);
-  std::string ExpandLibName(const std::string &name, bool v);  
-  std::string MakeLibnameFromPath(std::string path, std::string pkgname);
-  bool IsAtRoot(std::string cwd);       
+  private: 
     
   private:
   
     //==================================================================
     // ATTRIBUTES
+
     /// The factory
     //    bbtk::Factory* mFactory;
+
     /// The command executer  
-    bbtk::Executer* mExecuter;
+   // bbtk::Executer* mExecuter;
+    bbtk::VirtualExec* mExecuter;
+
     /// Vector of opened files  
-    std::vector<std::ifstream*> mFile; 
+    std::vector<std::ifstream*> mFile;
+
     /// Vector of names of open files  
-    std::vector<std::string> mFileName; 
+    std::vector<std::string> mFileName;
+
     /// Stores the current line number in each open file
-    std::vector<int> mLine; 
+    std::vector<int> mLine;
+
     /// The dictionnary of commands
     CommandDictType mCommandDict;
+
     /// Are we in a command line context ?
     bool mCommandLine;
+    
     /// The history of commands 
     std::deque< char* > mHistory;