update print & var

This commit is contained in:
Valk Richard Li
2019-08-07 02:44:31 +08:00
committed by GitHub
parent 271e516f2e
commit 200986920a
8 changed files with 341 additions and 110 deletions
+19 -80
View File
@@ -8,37 +8,6 @@
namespace nasal
{
void PrintVar(var &Var)
{
if(Var.Type=="int")
std::cout<<*((int *)Var.data);
else if(var.Type=="long long int")
std::cout<<*((long long int Var.data));
else if(Var.Type=="float")
std::cout<<*((float *)Var.data);
else if(Var.Type=="double")
std::cout<<*((double *)Var.data);
else if(Var.Type=="char")
std::cout<<*((char *)Var.data);
else if(Var.Type=="string")
std::cout<<*((std::string *)Var.data);
else if(Var.Type=="array")
((NasalList *)Var.data)->PrintList();
else if(Var.Type=="hash")
((NasalHash *)Var.data)->PrintHash();
else
std::cout<<"null";
}
void PrintVar(NasalHash &Var)
{
Var.PrintHash();
}
void PrintVar(NasalList &Var)
{
Var.PrintList();
}
void PrintString(std::string &PrintInfo)
{
@@ -89,57 +58,27 @@ void PrintString(std::string &PrintInfo)
}
return;
}
/*
void PrintString(const char *PrintInfo)
void PrintVar(var Var)
{
for(int i=0;i<strlen(PrintInfo);++i)
{
if(PrintInfo[i]=='\\' && i+1<strlen(PrintInfo))
{
switch(PrintInfo[i+1])
{
case 'n':
std::cout<<"\n";
++i;
break;
case 't':
std::cout<<"\t";
++i;
break;
case 'r':
std::cout<<"\r";
++i;
break;
case '\\':
std::cout<<"\\";
++i;
break;
case '\'':
std::cout<<"\'";
++i;
break;
case '\"':
std::cout<<"\"";
++i;
break;
default:
//error occurred
std::cout<<"[Error]: Incorrect escape character \'"<<PrintInfo[i]<<PrintInfo[i+1]<<"\' ."<<std::endl;
++i;
break;
}
}
else if(PrintInfo[i]=='\\' && i+1>=strlen(PrintInfo))
{
//error occurred
std::cout<<"[Error]: Missing character after \'\\\'"<<std::endl;
}
else
std::cout<<PrintInfo[i];
}
return;
if(Var.Type=="int")
std::cout<<*((int *)Var.data);
else if(Var.Type=="long long int")
std::cout<<*((long long int *)Var.data);
else if(Var.Type=="float")
std::cout<<*((float *)Var.data);
else if(Var.Type=="double")
std::cout<<*((double *)Var.data);
else if(Var.Type=="char")
std::cout<<*((char *)Var.data);
else if(Var.Type=="string")
PrintString(*((std::string *)Var.data));
else if(Var.Type=="array")
((NasalList *)Var.data)->PrintList();
else if(Var.Type=="hash")
((NasalHash *)Var.data)->PrintHash();
else
std::cout<<"null";
}
*/
}