X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkInterpreterVirtual.h;h=8370cc2b3025926aa6202000644fd87780521bcb;hb=f5ee1c433d1c86bc0aa11fdaba7aa891cbad9b8a;hp=ac91b01419eb1ab3a41cfeb12961c277ce4ffb3c;hpb=4e0c70c1aa10fed31d4a6bf30cb316eaa1194e13;p=bbtk.git diff --git a/kernel/src/bbtkInterpreterVirtual.h b/kernel/src/bbtkInterpreterVirtual.h index ac91b01..8370cc2 100644 --- a/kernel/src/bbtkInterpreterVirtual.h +++ b/kernel/src/bbtkInterpreterVirtual.h @@ -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.h,v $ Language: C++ @@ -6,27 +33,7 @@ Version: $Revision: 1.41 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* 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 @@ -51,7 +58,7 @@ #include // Signal/slot mechanism for 'break' commands -#include +//#include #include namespace bbtk @@ -182,6 +189,8 @@ namespace bbtk #endif + + /* // For 'break' commands observation typedef boost::signals::trackable BreakObserverType; @@ -274,7 +283,7 @@ namespace bbtk virtual void commandReset(); /// Displays help (entry point of any help) - virtual void commandHelp(const std::string words); + virtual void commandHelp(const std::string &words); virtual void commandHelp(const std::vector& words); /// @@ -298,40 +307,68 @@ namespace bbtk /// and connected to the existing pipeline virtual void commandNewGUI(const std::string& box,const std::string& instanceName); virtual void commandDebug(const std::string& arg); - virtual void commandNew(std::string boxType, std::string boxName); - virtual void commandDelete(std::string boxName); - virtual void commandConnection(std::string nodeFrom, std::string outputLabel, std::string nodeTo, std::string inputLabel); - virtual void commandPackage(std::string packageName); + virtual void commandNew(const std::string &boxType, const std::string &boxName); + virtual void commandDelete(const std::string &boxName); + virtual void commandConnection(const std::string &nodeFrom,const std::string &outputLabel,const std::string &nodeTo,const std::string &inputLabel); + virtual void commandPackage(const std::string &packageName); virtual void commandEndPackage(); - virtual void commandDefine(std::string name, std::string pack, std::string scriptfilename); + virtual void commandDefine(const std::string &name,const std::string &pack,const std::string &scriptfilename); virtual void commandEndDefine(); - virtual void commandKind(std::string kind); - virtual void commandPrint(std::string value); - virtual void commandExec(std::string word); - virtual void commandInput(std::string name, std::string box, std::string input,std::string help); - virtual void commandOutput(std::string name, std::string box, std::string output,std::string help); - virtual void commandSet(std::string box, std::string input, std::string value); - virtual void commandAuthor(std::string author); - virtual void commandCategory(std::string categorytype); - virtual void commandDescription(std::string description); + virtual void commandKind(const std::string &kind); + virtual void commandPrint(const std::string &value); + virtual void commandExec(const std::string &word); + virtual void commandInput(const std::string &name,const std::string &box,const std::string &input,const std::string &help); + virtual void commandOutput(const std::string &name,const std::string &box,const std::string &output,const std::string &help); + virtual void commandSet(const std::string &box,const std::string &input,const std::string &value); + virtual void commandAuthor(const std::string &author); + virtual void commandCategory(const std::string &categorytype); + virtual void commandDescription(const std::string &description); virtual void commandClear(); - virtual void commandInclude(std::string word, bool ok); - virtual void commandLoad(std::string packageName); - virtual void commandUnload(std::string packageName); + virtual void commandInclude(const std::string &word, bool ok); + virtual void commandLoad(const std::string &packageName); + virtual void commandUnload(const std::string &packageName); virtual void commandBreak(); virtual void commandQuit(); virtual void commandMessage(); - virtual void commandMessage(std::string kind, std::string levelstr); - virtual void SetCurrentFileName(std::string fullPathScriptName); - + virtual void commandMessage(const std::string &kind,const std::string &levelstr); + virtual void SetCurrentFileName(const std::string &fullPathScriptName); + virtual void SetTypeOfScript_Application(); + /// Constructor InterpreterVirtual(); + + void Init(); + + + /// Vector of names of open files with full path (as open) + std::vector mFileName; + + + /// Stores the current line number in each open file + std::vector mLine; + + bool mThrow; + + /// Are we in a command line context ? + bool mCommandLine; + + + /// Vector of names of files which have been open + /// before (and may closed then which are no more in mFileName) + /// with full path (as open) + std::vector mFileNameHistory; + + /// The user of the interpreter (0 if none) + bbtk::InterpreterUser* mUser; + + /// The dictionnary of commands + CommandDictType mCommandDict; + private: - void Init(); /// Opens the file fullPathScriptName /// includeScriptName is the name as given to the include command @@ -342,31 +379,14 @@ namespace bbtk // ATTRIBUTES - /// The user of the interpreter (0 if none) - bbtk::InterpreterUser* mUser; /// Vector of open files / buffers (can be stringstream) std::vector mFile; - /// Vector of names of open files with full path (as open) - std::vector mFileName; - - /// Vector of names of files which have been open - /// before (and may closed then which are no more in mFileName) - /// with full path (as open) - std::vector mFileNameHistory; /// Vector of names of open files as given to the include command std::vector mIncludeFileName; - /// Stores the current line number in each open file - std::vector mLine; - - /// The dictionnary of commands - CommandDictType mCommandDict; - - /// Are we in a command line context ? - bool mCommandLine; /// Are we inside a commented-out zone ? bool mInsideComment; @@ -379,7 +399,6 @@ namespace bbtk int bufferNb; - bool mThrow; /// The break signal // BreakSignalType mBreakSignal;