Program: bbtk
Module: $RCSfile: bbtkInterpreter.cxx,v $
Language: C++
- Date: $Date: 2009/04/30 14:31:31 $
- Version: $Revision: 1.84 $
+ Date: $Date: 2009/06/08 14:50:03 $
+ Version: $Revision: 1.86 $
=========================================================================*/
/* ---------------------------------------------------------------------
//=======================================================================
Interpreter::Pointer Interpreter::New(const std::string& cpp_file)
{
- bbtkDebugMessage("Kernel",9,"Interpreter::New('"<<cpp_file<<"')"<<std::endl);
+ bbtkDebugMessage("kernel",9,"Interpreter::New('"<<cpp_file<<"')"<<std::endl);
return MakePointer(new Interpreter(cpp_file));
}
//=======================================================================
//=======================================================================
Interpreter::Pointer Interpreter::New(VirtualExec::Pointer e)
{
- bbtkDebugMessage("Kernel",9,"Interpreter::New(VirtualExec)"<<std::endl);
+ bbtkDebugMessage("kernel",9,"Interpreter::New(VirtualExec)"<<std::endl);
return MakePointer(new Interpreter(e));
}
//=======================================================================
//=======================================================================
Interpreter::Interpreter(const std::string& cpp_file)
{
+ bbtkDebugMessage("object",2,"==> Interpreter("<<cpp_file<<")"<<std::endl);
Init(VirtualExec::Pointer(), cpp_file);
+ bbtkDebugMessage("object",2,"<== Interpreter("<<cpp_file<<")"<<std::endl);
}
//=======================================================================
//=======================================================================
Interpreter::Interpreter(VirtualExec::Pointer e)
{
+ bbtkDebugMessage("object",2,"==> Interpreter(VirtualExec)"<<std::endl);
Init(e,"");
+ bbtkDebugMessage("object",2,"<== Interpreter(VirtualExec)"<<std::endl);
}
//=======================================================================
mCommandDict[info.keyword] = info;
*/
- bbtkDebugDecTab("Interpreter",9);
+
}
//=======================================================================
*/
Interpreter::~Interpreter()
{
- bbtkDebugMessageInc("Interpreter",9,"==> Interpreter::~Interpreter()" <<std::endl);
+ bbtkDebugMessage("object",2,"==> ~Interpreter()" <<std::endl);
mVirtualExecuter = VirtualExec::Pointer();
- bbtkDebugMessageInc("Interpreter",9,"<== Interpreter::~Interpreter()" <<std::endl);
+ bbtkDebugMessage("object",2,"<== ~Interpreter()" <<std::endl);
}
//=======================================================================
const std::string& script_file,
int script_line
)
- : Exception("Interpreter",0,message),
+ : Exception("interpreter",0,message),
mInScriptFile(in_script_file),
mScriptFile(script_file),
mScriptLine(script_line)
//=======================================================================
Interpreter::ExitStatus Interpreter::InterpretFile( const std::string& filename, bool source )
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretFile(\""<<filename<<"\")"<<std::endl);
+ bbtkDebugMessage("interpreter",4,"==> Interpreter::InterpretFile(\""<<filename<<"\")"<<std::endl);
bool exm = mCommandLine;
mCommandLine = false;
}
CATCH_MACRO;
- bbtkDebugMessage("Interpreter",9,
- "EO Interpreter::InterpretFile(\""
+ bbtkDebugMessage("interpreter",4,
+ "<== Interpreter::InterpretFile(\""
<<filename<<"\")"<<std::endl);
- bbtkDecTab("Interpreter",9);
+
mCommandLine = exm;
Interpreter::ExitStatus
Interpreter::InterpretBuffer( std::stringstream* buffer )
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretBuffer()"<<std::endl);
+ bbtkDebugMessage("interpreter",4,"==> Interpreter::InterpretBuffer()"<<std::endl);
bool exm = mCommandLine;
mCommandLine = false;
CATCH_MACRO;
// CloseAllFiles();
- bbtkDebugMessage("Interpreter",9,"EO Interpreter::InterpretBuffer()"<<std::endl);
- bbtkDecTab("Interpreter",9);
+ bbtkDebugMessage("interpreter",4,"<== Interpreter::InterpretBuffer()"<<std::endl);
+
mCommandLine = exm;
return mStatus;
/// Interprets the currently open streams
Interpreter::ExitStatus Interpreter::InterpretCurrentStreams()
{
- bbtkDebugMessageInc("Interpreter",9,
- "Interpreter::InterpretCurrentStreams()"<<std::endl);
+ bbtkDebugMessage("interpreter",4,
+ "==> Interpreter::InterpretCurrentStreams()"<<std::endl);
while (mFile.size()>0)
{
}
CloseCurrentFile();
}
+ bbtkDebugMessage("interpreter",4,
+ "<== Interpreter::InterpretCurrentStreams()"<<std::endl);
+
return mStatus;
}
//=======================================================================
/// Runs the interpretation of a command
Interpreter::ExitStatus Interpreter::InterpretLine( const std::string& line )
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretLine('"<<line<<"')"<<std::endl);
+ bbtkDebugMessage("interpreter",5,"==> Interpreter::InterpretLine('"<<line<<"')"<<std::endl);
try
{
CATCH_MACRO;
- bbtkDebugMessage("Interpreter",9,"EO Interpreter::InterpretLine()"
- <<std::endl);
- bbtkDecTab("Interpreter",9);
+ bbtkDebugMessage("interpreter",5,"<== Interpreter::InterpretLine('"<<line<<"')"<<std::endl);
return mStatus;
}
//=======================================================================
void Interpreter::DoInterpretLine( const std::string& line )
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::DoInterpretLine(\""<<line<<"\")"<<std::endl);
+ bbtkDebugMessage("interpreter",6,"==> Interpreter::DoInterpretLine(\""
+ <<line<<"\")"<<std::endl);
std::vector<std::string> words;
SplitLine(line,words);
// Empty line
if (words.size()<1)
{
- bbtkDebugDecTab("Interpreter",9);
+ bbtkDebugDecTab("interpreter",9);
return;
}
// Single line comment : # or //
if ( words[0][0]=='#' || (words[0][0]=='/' && words[0][1]=='/') )
{
- bbtkDebugDecTab("Interpreter",9);
- bbtkMessage("Interpreter",9,"Comment"<<std::endl);
+ bbtkDebugDecTab("interpreter",9);
+ bbtkMessage("interpreter",9,"Comment"<<std::endl);
return;
}
if (words[0][0]=='/' && words[0][1]=='*')
{
- bbtkDebugDecTab("Interpreter",9);
- bbtkMessage("Interpreter",9,"In multiline comment"<<std::endl);
+ bbtkDebugDecTab("interpreter",9);
+ bbtkMessage("interpreter",9,"In multiline comment"<<std::endl);
mInsideComment = true;
return;
}
if (words[0][0]=='*' && words[0][1]=='/')
{
- bbtkDebugDecTab("Interpreter",9);
- bbtkMessage("Interpreter",9,"Out multiline comment"<<std::endl);
+ bbtkDebugDecTab("interpreter",9);
+ bbtkMessage("interpreter",9,"Out multiline comment"<<std::endl);
if ( !mInsideComment ) {
- bbtkDebugDecTab("Interpreter",9);
- bbtkMessage("Interpreter",9,"Comment mismatch : '*/' with no matching '/*'"<<std::endl);
+ bbtkDebugDecTab("interpreter",9);
+ bbtkMessage("interpreter",9,"Comment mismatch : '*/' with no matching '/*'"<<std::endl);
}
mInsideComment = false;
return;
if (mInsideComment)
{
- bbtkDebugDecTab("Interpreter",9);
- bbtkMessage("Interpreter",9,"Multiline Comment"<<std::endl);
+ bbtkDebugDecTab("interpreter",9);
+ bbtkMessage("interpreter",9,"Multiline Comment"<<std::endl);
return;
}
CommandInfoType command;
InterpretCommand(words,command);
- bbtkDebugMessage("Interpreter",9,
+ bbtkDebugMessage("interpreter",9,
"Command='"<<command.keyword
<<"' code="<<command.code<<std::endl);
int level=0;
bbtkInternalError("should not reach here !!!");
}
- bbtkDecTab("Interpreter",9);
-}
+ bbtkDebugMessage("interpreter",6,"<== Interpreter::DoInterpretLine(\""
+ <<line<<"\")"<<std::endl);
+
+ }
//=======================================================================
//=======================================================================
void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>& tokens)
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::SplitLine(\""<<str<<"\")"<<std::endl);
+ bbtkDebugMessage("interpreter",9,"==> Interpreter::SplitLine(\""<<str<<"\")"<<std::endl);
std::string delimiters = "\"";
std::vector<std::string> quote;
++i;
if (i!=quote.end())
{
- // bbtkDebugMessage("Interpreter",0,"\""<<*i<<"\""<<std::endl);
+ // bbtkDebugMessage("interpreter",0,"\""<<*i<<"\""<<std::endl);
tokens.push_back(*i);
++i;
}
for (i=tokens.begin(); i!=tokens.end(); ++i)
{
- bbtkDebugMessage("Interpreter",9,"["<<*i<<"] ");
+ bbtkDebugMessage("interpreter",9,"--["<<*i<<"]"<<std::endl);
}
- bbtkDebugMessageCont("Interpreter",9,std::endl);
+ bbtkDebugMessage("interpreter",9,"<== Interpreter::SplitLine(\""<<str<<"\")"<<std::endl);
- bbtkDebugDecTab("Interpreter",9);
}
//=======================================================================
{
if (mVirtualExecuter->GetNoExecMode()) return;
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::Print(\""<<str<<"\")"<<std::endl);
+ bbtkDebugMessageInc("interpreter",9,"Interpreter::Print(\""<<str<<"\")"<<std::endl);
// TO DO :
// InterpretLine ("load std")
std::cout << *i;
}
std::cout << std::endl;
- bbtkDebugDecTab("Interpreter",9);
+ bbtkDebugDecTab("interpreter",9);
}
*/
// use ./directory/subdir/scrname.bbs
//
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::SwitchToFile( \""
- <<name<<"\")"<<std::endl);
+ bbtkDebugMessage("interpreter",4,"==> Interpreter::SwitchToFile( \""
+ <<name<<"\")"<<std::endl);
std::vector<std::string> script_paths;
std::string fullPathScriptName; // full path script name
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- bbtkMessage("Interpreter",1,
+ bbtkMessage("interpreter",1,
"look for : [" << name
<< "]" << std::endl);
std::string upath;
pkgname = Utilities::ExtractScriptName(name,upath);
- bbtkMessage("Interpreter",3,
+ bbtkMessage("interpreter",3,
"package name:[" << pkgname
<< "] path:[" << upath << "]" << std::endl);
bool fullnameGiven = false;
// ==== no path provided : look in root bbs path
if (upath.size()==0)
{
- // bbtkMessage("Interpreter",1,
+ // bbtkMessage("interpreter",1,
// LG : add all bbs path
// script_paths.push_back( ConfigurationFile::GetInstance().Get_root_bbs_path() );
std::vector<std::string>::const_iterator i;
std::vector<std::string>::iterator i;
for (i=script_paths.begin();i!=script_paths.end();i++)
{
- bbtkMessage("Interpreter",1,
+ bbtkMessage("interpreter",1,
"--> Looking in '" << *i << "'" << std::endl);
Filenames.clear();
if ( (*j).substr(lgr-4, 4) != ".bbp") continue;
(*stream) << "include \"" << *j << "\"\n";
- bbtkMessage("Interpreter",2," --> Found '" << *j << "'" << std::endl);
+ bbtkMessage("interpreter",2," --> Found '" << *j << "'" << std::endl);
nbBssFiles++;
} // for (std::vector...
// === Result ...
if (nbBssFiles==0)
{
- bbtkMessage("Interpreter",1,
+ bbtkMessage("interpreter",1,
" --> No .bbp found"<< std::endl);
}
else
{
- bbtkMessage("Interpreter",1,
+ bbtkMessage("interpreter",1,
" --> "<<nbBssFiles<<" .bbp found"<< std::endl);
SwitchToStream(stream);
}
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- bbtkMessage("Interpreter",2,
+ bbtkMessage("interpreter",2,
" [" <<fullPathScriptName <<"] : does not exist"
<<std::endl);
continue; // try next path
}
- bbtkMessage("Interpreter",2,
+ bbtkMessage("interpreter",2,
" [" <<fullPathScriptName
<<"] : found" <<std::endl);
foundFile = true;
// The following is *NOT* a debug time message :
// It's a user intended message.
// Please don't remove it.
- bbtkMessage("Interpreter",2,
+ bbtkMessage("interpreter",2,
" [" <<tfullPathScriptName <<".bbs/.bbp] : do not exist"
<<std::endl);
continue; // try next path
}
}
- bbtkMessage("Interpreter",2,
+ bbtkMessage("interpreter",2,
" [" <<fullPathScriptName
<<"] : found" <<std::endl);
foundFile = true;
//=======================================================================
void Interpreter::SwitchToStream( std::stringstream* stream )
{
- mFile.push_back(stream);
+ bbtkDebugMessage("interpreter",4,"==> Interpreter::SwitchToStream()"
+ <<std::endl);
+ mFile.push_back(stream);
std::ostringstream buffer_name;
bufferNb++;
buffer_name << "buffer_" ;
void Interpreter::LoadScript( std::string fullPathScriptName,
std::string includeScriptName)
{
- Utilities::replace( fullPathScriptName ,
+ bbtkDebugMessage("interpreter",4,"==> Interpreter::LoadScript("
+ <<fullPathScriptName<<")"
+ <<std::endl);
+
+ Utilities::replace( fullPathScriptName ,
INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
if (find(mFileNameHistory.begin(),
return;
}
- bbtkMessage("Interpreter",1," -->[" << fullPathScriptName
+ bbtkMessage("interpreter",1," -->[" << fullPathScriptName
<< "] found" << std::endl);
mFile.push_back(s);
mIncludeFileName.push_back(includeScriptName);
mLine.push_back(0);
- return;
+ return;
}
//=======================================================================
//=======================================================================
void Interpreter::CloseCurrentFile()
{
- bbtkDebugMessage("Interpreter",9,"Interpreter::CloseCurrentFile()"
+ bbtkDebugMessage("interpreter",9,"==> Interpreter::CloseCurrentFile()"
<<std::endl);
if (mFile.size()==0)
{
- bbtkDebugMessage("Interpreter",9," -> no file left open"<<std::endl);
+ bbtkDebugMessage("interpreter",9," -> no file left open"<<std::endl);
return;
}
- bbtkDebugMessage("Interpreter",9," Closing file '"<<mFileName.back()<<"'"<<std::endl);
+ bbtkDebugMessage("interpreter",9," Closing file '"<<mFileName.back()<<"'"<<std::endl);
std::ifstream* file = dynamic_cast<std::ifstream*>(mFile.back());
if (file!=0) file->close();
mIncludeFileName.pop_back();
mLine.pop_back();
- bbtkDebugMessage("Interpreter",9," Remains "
+ bbtkDebugMessage("interpreter",9," Remains "
<<mFile.size()
<<" open"<<std::endl);
- bbtkDebugMessage("Interpreter",9,"EO Interpreter::CloseCurrentFile()"
+ bbtkDebugMessage("interpreter",9,"<== Interpreter::CloseCurrentFile()"
<<std::endl);
}
//=======================================================================
//=======================================================================
void Interpreter::CloseAllFiles()
{
- bbtkDebugMessage("Interpreter",9,"Interpreter::CloseAllFiles()"
+ bbtkDebugMessage("interpreter",9,"==> Interpreter::CloseAllFiles()"
<<std::endl);
while (mFile.size() != 0)
{
CloseCurrentFile();
}
- bbtkDebugMessage("Interpreter",9,"EO Interpreter::CloseAllFiles()"
+ bbtkDebugMessage("interpreter",9,"<== Interpreter::CloseAllFiles()"
<<std::endl);
}
//=======================================================================
void Interpreter::InterpretCommand( const std::vector<std::string>& words,
CommandInfoType& info )
{
- bbtkDebugMessageInc("Interpreter",9,"Interpreter::InterpretCommand(...)"<<std::endl);
+ bbtkDebugMessage("interpreter",9,"==> Interpreter::InterpretCommand(...)"<<std::endl);
// searches the command keyword
CommandDictType::iterator c;
}
info = c->second;
- bbtkDecTab("Interpreter",9);
+
+ bbtkDebugMessage("interpreter",9,"<== Interpreter::InterpretCommand(...)"<<std::endl);
+
}
//=======================================================================
{
if (words[1]=="packages")
{
- GetExecuter()->GetFactory()->PrintPackages(true);
+ GetExecuter()->GetFactory()->PrintHelpListPackages(true);
return;
}
try
{
try
{
- GetExecuter()->GetFactory()->HelpPackage(words[1]);
+ GetExecuter()->GetFactory()->PrintHelpPackage(words[1]);
if ( mUser != 0 )
{
std::string url =
try
{
std::string package;
- GetExecuter()->GetFactory()->HelpBlackBox(words[1],package);
+ GetExecuter()->GetFactory()->PrintHelpDescriptor(words[1],
+ package);
if ( mUser != 0 )
{
std::string url =
{
try
{
- GetExecuter()->ShowRelations(words[1],"0","9999");
+ GetExecuter()->PrintHelpBlackBox(words[1],"0","9999");
}
catch (bbtk::Exception h){
bbtkError("\""<<words[1].c_str()
{
if ( words[1]=="packages" )
{
- GetExecuter()->GetFactory()->PrintPackages(true,true);
+ GetExecuter()->GetFactory()->PrintHelpListPackages(true,true);
return;
}
try
{
- GetExecuter()->GetFactory()->HelpPackage(words[1],true);
+ GetExecuter()->GetFactory()->PrintHelpPackage(words[1],true);
}
catch (bbtk::Exception f)
{
//=======================================================================
void Interpreter::CommandLineInterpreter()
{
- bbtkDebugMessageInc("Interpreter",9,
+ bbtkDebugMessageInc("interpreter",9,
"Interpreter::CommandLineInterpreter()"<<std::endl);
#ifdef BBTK_USE_TERMIOS_BASED_PROMPT
/*
catch (QuitException e)
{
- bbtkMessage("Interpreter",1,"Interpreter : Quit"<<std::endl);
+ bbtkMessage("interpreter",1,"Interpreter : Quit"<<std::endl);
again = false;
}
*/
std::cout << "Good bye !" << std::endl;
- bbtkDebugDecTab("Interpreter",9);
+ bbtkDebugDecTab("interpreter",9);
}
//=======================================================================
if (workspace==0)
{
delete s;
- bbtkError("Interpreter::CreateGUI : could not access the executer currently defined complex box");
+ bbtkError("interpreter::CreateGUI : could not access the executer currently defined complex box");
}
{
// int o = MessageManager::GetMessageLevel("debug");
// if (o<2) MessageManager::SetMessageLevel("debug",2);
- mVirtualExecuter->GetFactory()->CheckPackages();
+ mVirtualExecuter->GetFactory()->Check();
// MessageManager::SetMessageLevel("debug",o);
}
}