ultimatepp/uppsrc/CppBase/CppItem.cpp
cxl 597466fea8 uppsrc: NAMESPACE_UPP / END_UPP_NAMESPACE removed
git-svn-id: svn://ultimatepp.org/upp/trunk@10186 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-08-26 17:15:30 +00:00

81 lines
1.8 KiB
C++

#include "CppBase.h"
namespace Upp {
String CppItem::ToString() const
{
StringStream ss;
Dump(ss);
return ss;
}
String CppItemKindAsString(int kind)
{
return decode(kind,
STRUCT, "STRUCT",
STRUCTTEMPLATE, "STRUCTTEMPLATE",
TYPEDEF, "TYPEDEF",
CONSTRUCTOR, "CONSTRUCTOR",
DESTRUCTOR, "DESTRUCTOR",
FUNCTION, "FUNCTION",
INSTANCEFUNCTION, "INSTANCEFUNCTION",
CLASSFUNCTION, "CLASSFUNCTION",
FUNCTIONTEMPLATE, "FUNCTIONTEMPLATE",
INSTANCEFUNCTIONTEMPLATE, "INSTANCEFUNCTIONTEMPLATE",
CLASSFUNCTIONTEMPLATE, "CLASSFUNCTIONTEMPLATE",
INLINEFRIEND, "INLINEFRIEND",
VARIABLE, "VARIABLE",
INSTANCEVARIABLE, "INSTANCEVARIABLE",
CLASSVARIABLE, "CLASSVARIABLE",
ENUM, "ENUM",
MACRO, "MACRO",
FRIENDCLASS, "FRIENDCLASS",
NAMESPACE, "NAMESPACE",
"?kind:" + AsString(kind));
}
void CppItem::Dump(Stream& s) const
{
s << Nvl(qitem, "?") << ' ';
s << CppItemKindAsString(kind) << ' '
<< decode(access,
PUBLIC, "PUBLIC",
PROTECTED, "PROTECTED",
PRIVATE, "PRIVATE",
"?access:" + AsString(access)) << ' '
<< decode(filetype,
FILE_H, "FILE_H",
FILE_HPP, "FILE_HPP",
FILE_CPP, "FILE_CPP",
FILE_C, "FILE_C",
FILE_OTHER, "FILE_OTHER",
"?filetype:" + AsString(filetype))
;
#define PUT(x) if(x) s << ' ' << #x;
PUT(virt);
PUT(decla);
PUT(lvalue);
PUT(isptr);
PUT(impl);
PUT(qualify);
#undef PUT
s << ' ' << line << '\n';
#define PUT(x) if(x.GetCount()) s << " " << #x << ": " << x << '\n';
PUT(item);
PUT(name);
PUT(uname);
PUT(natural);
PUT(type);
PUT(qtype);
PUT(tparam);
PUT(param);
PUT(pname);
PUT(ptype);
PUT(qptype);
PUT(tname);
PUT(ctname);
PUT(using_namespaces);
#undef PUT
}
}