Program: bbtk
Module: $RCSfile: bbtkInterpreter.cxx,v $ $
Language: C++
- Date: $Date: 2008/03/14 14:58:53 $
- Version: $Revision: 1.44 $
+ Date: $Date: 2008/03/17 07:04:08 $
+ Version: $Revision: 1.45 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
info.help = "Creates an html index of known boxes. If filename is provided then save it to the file 'filename'. The default index entries are the initial letters of the names of the boxes. If 'Packages' or 'Categories' is provided then the entries are either the packages names or the categories. If 'Adaptors' is provided then an alphabetical index of all adaptors is created.";
mCommandDict[info.category] = info;
- info.category = "reset"; //EED
+ info.category = "reset";
info.argmin = 0;
info.argmax = 0;
info.code = cReset;
*/
Interpreter::~Interpreter()
{
-
-std::cout << "=========================================~Interpreter()" << std::endl;
bbtkDebugMessageInc("Interpreter",9,"Interpreter::~Interpreter()" <<std::endl);
delete mExecuter;
std::cout << "B=== [" << (*it) << "]" << std::endl;
}
*/
-//printf("EED --- %s --- Interpreter::InterpretFile \n", mFileName[0].c_str() );
- //printf("EED --- %s --- Interpreter::InterpretFile \n", mFileName[0].c_str() );
//while ((mFile.size()>0) && !mFile.back()->eof() )
//{
// std::cout << "mFile.size() "<< mFile.size() << " mFileName.back() [" << mFileName.back() << "]" << std::endl;
-
while (!mFile.back()->eof()) {
mLine.back()++;
char buf[500];
str.erase(size-1,1);
}
- InterpretLine(str, insideComment);
-
-//printf("EED Interpreter::InterpretFile %s\n", str.c_str() );
+ InterpretLine(str, insideComment);
- }
- //if (mFile.size()>0)
- CloseCurrentFile();
+ }//while
+ //if (mFile.size()>0)
+ CloseCurrentFile();
}
}
catch (QuitException e)
*/
void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
{
-
bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretLine(\""<<line<<"\")"<<std::endl);
bbtkMessage("Echo",2,"\""<<line<<"\""<<std::endl);
Config();
break;
- case cReset : // EED
+ case cReset :
this->mExecuter->Reset();
break;
continue; // ignore '-appli.bbs' files
}
*/
- (*stream) << "include " << *i << "\n";
+
+ (*stream) << "include " << *i << "\n";
+//EED InterpretFile(*i);
+
nbBssFiles++;
- }
- if (nbBssFiles==0)
+ } // for vector
+ if (nbBssFiles==0){
bbtkMessage("Interpreter",2,
"WARNING : No '.bbs' file found in ["
<< upath << "]" << std::endl);
- else
- SwitchToStream(stream);
+ } else {
+ SwitchToStream(stream);
+ }
return;
- }
+ } // if upath
std::string path;
std::vector<std::string>::iterator i;
char * currentDir = getcwd(buf, 2048);
std::string cwd(currentDir);
path = currentDir;
- }
+ } // if path
fullDirectoryName = Utilities::MakePkgnameFromPath(path, upath, false);
- //EED 18 Fev 2008
// without last slash "\"
std::string fullDirectoryNameClean = fullDirectoryName.substr(0,fullDirectoryName.size()-1);
bbtkMessage("Interpreter",1," [" <<fullDirectoryName
<<"] : doesn't exist" <<std::endl);
continue; // try next path
- }
+ } // if IsDirectory
foundFile = true;
Filenames.clear();
nbBssFiles = 0;
for (std::vector<std::string>::iterator i = Filenames.begin(); i!= Filenames.end(); ++i)
{
-//EEDprintf("EED Interpreter::SwitchToFile %s\n",(*i).c_str() );
// std::cout << "JPR================== iterate [" << *i << "]" << std::endl;
int lgr = (*i).size();
if (lgr < 5)
continue; // ignore '-appli.bbs' files
}
*/
- (*stream) << "include " << *i << "\n";
+
+ (*stream) << "include " << *i << "\n";
+//EED InterpretFile(*i);
+
nbBssFiles++;
- }
- if (nbBssFiles==0)
+ } // for vector
+ if (nbBssFiles==0){
bbtkMessage("Interpreter",1,
"WARNING : No '.bbs' file found in ["
<< fullDirectoryName << "]" << std::endl);
- else
+ } else {
SwitchToStream(stream);
+ }
//break; // a directory was found; we stop iterating
// LG : No! We want all files included !
- }
+ } // for vector
return;
- }
+ } // if *
//std::string::size_type slash_position = name.find_last_of("/\\");
void Interpreter::SwitchToStream( std::stringstream* stream )
{
//std::cout << "== 1 Entry in Interpreter::SwitchToStream " << std::endl;
- mFile.push_back(stream);
+
+ mFile.push_back(stream);
//std::cout << " mFile.size() " << mFile.size() << std::endl;
std::ostringstream buffer_name;
bufferNb++;
void Interpreter::LoadScript( std::string fullPathScriptName,
std::string includeScriptName)
{
-//std::cout << "--------------------------EED Interpreter::LoadScript >>01\n" << std::endl;
Utilities::replace( fullPathScriptName , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
bool okScriptExist=false;
int iStrScript,sizeVecStricpt=mFileName.size();
for ( iStrScript=0;iStrScript<sizeVecStricpt;iStrScript++)
{
-//EED printf(" EED %d Interpreter::LoadScript %s __>>__ %s\n", iStrScript,mFileName[iStrScript].c_str(),fullPathScriptName.c_str() );
-
if (mFileName[iStrScript] == fullPathScriptName )
{
- printf(" EED %d Interpreter::LoadScript iguales\n",iStrScript );
okScriptExist=true;
} // if
} // for
if (find(mFileName.begin(),mFileName.end(),fullPathScriptName)!=mFileName.end())
// if (okScriptExist==true)
{
-//EED printf("EED Interpreter::LoadScript Exit method\n");
bbtkMessage("Interpreter",1,"file '"<<fullPathScriptName
<<"' already open : I do not open it once more to prevent recursive inclusion"<<std::endl);
return;
mFileName.push_back(fullPathScriptName);
mIncludeFileName.push_back(includeScriptName);
mLine.push_back(0);
-//EED printf("EED Interpreter::LoadScript >>02\n");
return;
}
mFileName.pop_back();
mIncludeFileName.pop_back();
mLine.pop_back();
-/*EED3
- bbtkDebugMessage("Interpreter",9," Closing file '"<<mFileName[0]<<"'"<<std::endl);
- mFile[0]->close();
- delete mFile[0];
- mFile.erase( mFile.begin() );
- mFileName.erase( mFileName.begin() );
- mIncludeFileName.erase( mIncludeFileName.begin() );
- mLine.erase( mLine.begin() );
-*/
bbtkDebugMessage("Interpreter",9," Remains "
<<mFile.size()