-/*=========================================================================
-
+/*=========================================================================
Program: bbtk
- Module: $RCSfile: bbtkInterpreter.cxx,v $ $
+ Module: $RCSfile: bbtkInterpreter.cxx,v $
Language: C++
- Date: $Date: 2008/10/08 14:59:25 $
- Version: $Revision: 1.76 $
-
- Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
- l'Image). All rights reserved. See Doc/License.txt or
- http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
+ Date: $Date: 2008/12/12 12:11:21 $
+ Version: $Revision: 1.79 $
=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* 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
* \brief class Interpreter :
info.help = "Deletes the black box of name <box>";
mCommandDict[info.keyword] = info;
+ info.keyword = "clear";
+ info.argmin = 0;
+ info.argmax = 0;
+ info.code = cClear;
+ info.syntax = "clear";
+ info.help = "Clears the currently defined complex box (deletes all its boxes and connections)";
+ mCommandDict[info.keyword] = info;
+
info.keyword = "newgui";
info.argmin = 2;
info.argmax = 2;
mScriptLine(script_line)
{
}
+ //=======================================================================
+ void Interpreter::CatchInterpreterException( const InterpreterError& e )
+ {
+ if (mThrow)
+ {
+ CloseAllFiles();
+ throw InterpreterError(e);
+ }
+ else
+ {
+ std::stringstream mess;
+ mess << "* ERROR : "<<e.GetErrorMessage()<<std::endl;
+ if (e.IsInScriptFile())
+ {
+ mess << "* FILE : \""<<e.GetScriptFile()<<"\""<<std::endl;
+ mess << "* LINE : "<<e.GetScriptLine()<<std::endl;
+ }
+ std::cerr << mess.str();
+ }
+ }
+ //=======================================================================
+
//=======================================================================
void Interpreter::CatchBbtkException( const bbtk::Exception& e )
{
status = Interpreter_QUIT; \
if (mThrow) throw QuitException(); \
} \
+ catch (InterpreterError e) \
+ { \
+ status = Interpreter_ERROR; \
+ CatchInterpreterException(e); \
+ } \
catch (bbtk::Exception e) \
{ \
status = Interpreter_ERROR; \
Reset();
break;
+ case cClear :
+ mVirtualExecuter->Clear();
+ break;
+
case cInclude :
// if 'source' was given (words.size()==3) then tell to set the
// source file name of the current complex box with the full file name included