本文整理汇总了C++中phpentitybase::Ptr_t::Is方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr_t::Is方法的具体用法?C++ Ptr_t::Is怎么用?C++ Ptr_t::Is使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phpentitybase::Ptr_t
的用法示例。
在下文中一共展示了Ptr_t::Is方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetGetters
PHPSetterGetterEntry::Vec_t PHPRefactoring::GetGetters(IEditor* editor) const
{
PHPSetterGetterEntry::Vec_t getters, candidates;
if(!editor) {
return getters;
}
// Parse until the current position
wxString text = editor->GetTextRange(0, editor->GetCurrentPosition());
PHPSourceFile sourceFile(text);
sourceFile.SetParseFunctionBody(true);
sourceFile.SetFilename(editor->GetFileName());
sourceFile.Parse();
const PHPEntityClass* scopeAtPoint = sourceFile.Class()->Cast<PHPEntityClass>();
if(!scopeAtPoint) {
return getters;
}
// filter out
const PHPEntityBase::List_t& children = scopeAtPoint->GetChildren();
PHPEntityBase::List_t::const_iterator iter = children.begin();
PHPEntityBase::List_t members, functions;
for(; iter != children.end(); ++iter) {
PHPEntityBase::Ptr_t child = *iter;
if(child->Is(kEntityTypeFunction)) {
functions.push_back(child);
} else if(child->Is(kEntityTypeVariable) && child->Cast<PHPEntityVariable>()->IsMember() &&
!child->Cast<PHPEntityVariable>()->IsConst() && !child->Cast<PHPEntityVariable>()->IsStatic()) {
// a member of a class
members.push_back(child);
}
}
if(members.empty()) {
return getters;
}
// Prepare list of candidates
PHPEntityBase::List_t::iterator membersIter = members.begin();
for(; membersIter != members.end(); ++membersIter) {
PHPSetterGetterEntry candidate(*membersIter);
// make sure we don't add setters that already exist
if(FindByName(functions, candidate.GetGetter(kSG_NameOnly))) {
continue;
}
candidates.push_back(candidate);
}
getters.swap(candidates);
return getters;
}
示例2: GetImageId
int PHPOutlineTree::GetImageId(PHPEntityBase::Ptr_t entry)
{
BitmapLoader* bmpLoader = clGetManager()->GetStdIcons();
if(entry->Is(kEntityTypeFunction)) {
PHPEntityFunction* func = entry->Cast<PHPEntityFunction>();
if(func->HasFlag(kFunc_Private))
return bmpLoader->GetImageIndex(BitmapLoader::kFunctionPrivate);
else if(func->HasFlag(kFunc_Protected))
return bmpLoader->GetImageIndex(BitmapLoader::kFunctionProtected);
else
// public
return bmpLoader->GetImageIndex(BitmapLoader::kFunctionPublic);
} else if(entry->Is(kEntityTypeVariable)) {
PHPEntityVariable* var = entry->Cast<PHPEntityVariable>();
if(!var->IsMember() && !var->IsConst()) {
// A global variale
return bmpLoader->GetImageIndex(BitmapLoader::kMemberPublic);
} else if(var->IsMember()) {
if(var->HasFlag(kVar_Const)) return bmpLoader->GetImageIndex(BitmapLoader::kConstant); // constant
// Member
if(var->HasFlag(kVar_Private))
return bmpLoader->GetImageIndex(BitmapLoader::kMemberPrivate);
else if(var->HasFlag(kVar_Protected))
return bmpLoader->GetImageIndex(BitmapLoader::kMemberProtected);
else
return bmpLoader->GetImageIndex(BitmapLoader::kMemberPublic);
} else if(var->IsConst()) {
// Constant
return bmpLoader->GetImageIndex(BitmapLoader::kConstant);
} else {
return bmpLoader->GetImageIndex(BitmapLoader::kMemberPublic);
}
} else if(entry->Is(kEntityTypeNamespace)) {
// Namespace
return bmpLoader->GetImageIndex(BitmapLoader::kNamespace);
} else if(entry->Is(kEntityTypeClass)) {
return bmpLoader->GetImageIndex(BitmapLoader::kClass);
}
return wxNOT_FOUND; // Unknown
}
示例3: GetImageId
int PHPFileLayoutTree::GetImageId(PHPEntityBase::Ptr_t entry)
{
if(entry->Is(kEntityTypeFunction)) {
PHPEntityFunction* func = entry->Cast<PHPEntityFunction>();
if(func->HasFlag(kFunc_Private))
return 1;
else if(func->HasFlag(kFunc_Protected))
return 2;
else
// public
return 3;
} else if(entry->Is(kEntityTypeVariable)) {
PHPEntityVariable* var = entry->Cast<PHPEntityVariable>();
if(!var->IsMember() && !var->IsConst()) {
// A global variale
return 6;
} else if(var->IsMember()) {
if(var->HasFlag(kVar_Const)) return 9; // constant
// Member
if(var->HasFlag(kVar_Private))
return 4;
else if(var->HasFlag(kVar_Protected))
return 5;
else
return 6;
} else if(var->IsConst()) {
// Constant
return 9;
} else {
return 6;
}
} else if(entry->Is(kEntityTypeNamespace)) {
// Namespace
return 7;
} else if(entry->Is(kEntityTypeClass)) {
return 8;
}
return -1; // Unknown
}
示例4: BuildTree
void PHPFileLayoutTree::BuildTree(wxTreeItemId parentTreeItem, PHPEntityBase::Ptr_t entity)
{
int imgID = GetImageId(entity);
wxTreeItemId parent = AppendItem(parentTreeItem, entity->GetDisplayName(), imgID, imgID, new QItemData(entity));
// dont add the children of the function (i.e. function arguments)
if(entity->Is(kEntityTypeFunction)) return;
const PHPEntityBase::List_t& children = entity->GetChildren();
if(!children.empty()) {
PHPEntityBase::List_t::const_iterator iter = children.begin();
for(; iter != children.end(); ++iter) {
BuildTree(parent, *iter);
}
}
}
示例5: GetMembers
void PHPCodeCompletion::GetMembers(IEditor* editor, PHPEntityBase::List_t& members, wxString& scope)
{
members.clear();
scope.clear();
if(!editor) {
return;
}
// Parse until the current position to get the current scope name
{
wxString text = editor->GetTextRange(0, editor->GetCurrentPosition());
PHPSourceFile sourceFile(text);
sourceFile.SetParseFunctionBody(true);
sourceFile.SetFilename(editor->GetFileName());
sourceFile.Parse();
const PHPEntityClass* scopeAtPoint = sourceFile.Class()->Cast<PHPEntityClass>();
if(!scopeAtPoint) {
return;
}
scope = scopeAtPoint->GetFullName();
}
// Second parse: parse the entire buffer so we are not limited by the caret position
wxString text = editor->GetTextRange(0, editor->GetLength());
PHPSourceFile sourceFile(text);
sourceFile.SetParseFunctionBody(true);
sourceFile.SetFilename(editor->GetFileName());
sourceFile.Parse();
// Locate the scope
PHPEntityBase::Ptr_t parentClass = sourceFile.Namespace()->FindChild(scope);
if(!parentClass) return;
// filter out
const PHPEntityBase::List_t& children = parentClass->GetChildren();
PHPEntityBase::List_t::const_iterator iter = children.begin();
for(; iter != children.end(); ++iter) {
PHPEntityBase::Ptr_t child = *iter;
if(child->Is(kEntityTypeVariable) && child->Cast<PHPEntityVariable>()->IsMember() &&
!child->Cast<PHPEntityVariable>()->IsConst() && !child->Cast<PHPEntityVariable>()->IsStatic()) {
// a member of a class
members.push_back(child);
}
}
}
示例6: FindDefinition
PHPLocation::Ptr_t PHPCodeCompletion::FindDefinition(IEditor* editor, int pos)
{
CHECK_PHP_WORKSPACE_RET_NULL();
PHPLocation::Ptr_t loc; // Null
if(IsPHPFile(editor)) {
PHPEntityBase::Ptr_t resolved = GetPHPEntityAtPos(editor, editor->GetCurrentPosition());
if(resolved) {
if(resolved->Is(kEntityTypeFunctionAlias)) {
// use the internal function
resolved = resolved->Cast<PHPEntityFunctionAlias>()->GetFunc();
}
loc = new PHPLocation;
loc->filename = resolved->GetFilename().GetFullPath();
loc->linenumber = resolved->GetLine();
loc->what = resolved->GetShortName();
}
}
return loc;
}
示例7: OnInsertDoxyBlock
void PHPCodeCompletion::OnInsertDoxyBlock(clCodeCompletionEvent& e)
{
e.Skip();
// Do we have a workspace open?
CHECK_COND_RET(PHPWorkspace::Get()->IsOpen());
// Sanity
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
CHECK_PTR_RET(editor);
// Is this a PHP editor?
CHECK_COND_RET(IsPHPFile(editor));
// Get the text from the caret current position
// until the end of file
wxString unsavedBuffer = editor->GetTextRange(editor->GetCurrentPosition(), editor->GetLength());
unsavedBuffer.Trim().Trim(false);
PHPSourceFile source("<?php " + unsavedBuffer);
source.SetParseFunctionBody(false);
source.Parse();
PHPEntityBase::Ptr_t ns = source.Namespace();
if(ns) {
const PHPEntityBase::List_t& children = ns->GetChildren();
for(PHPEntityBase::List_t::const_iterator iter = children.begin(); iter != children.end(); ++iter) {
PHPEntityBase::Ptr_t match = *iter;
if(match->GetLine() == 0 && match->Is(kEntityTypeFunction)) {
e.Skip(false); // notify codelite to stop processing this event
wxString phpdoc = match->FormatPhpDoc();
phpdoc.Trim();
e.SetTooltip(phpdoc);
}
}
}
}
示例8: DoGetPHPEntryUnderTheAtPos
PHPEntityBase::Ptr_t PHPCodeCompletion::DoGetPHPEntryUnderTheAtPos(IEditor* editor, int pos, bool forFunctionCalltip)
{
if(!PHPWorkspace::Get()->IsOpen()) return PHPEntityBase::Ptr_t(NULL);
pos = editor->GetCtrl()->WordEndPosition(pos, true);
// Get the expression under the caret
wxString unsavedBuffer = editor->GetTextRange(0, pos);
wxString filter;
PHPEntityBase::Ptr_t resolved;
// Parse the source file
PHPSourceFile source(unsavedBuffer);
source.SetFilename(editor->GetFileName());
source.SetParseFunctionBody(false);
source.Parse();
PHPEntityBase::Ptr_t currentScope = source.CurrentScope();
if(currentScope && currentScope->Is(kEntityTypeClass)) {
// we are trying to resolve a 'word' under the caret within the class
// body but _not_ within a function body (i.e. it can only be
// a definition of some kind)
// try to construct an expression that will work
int wordStart = editor->GetCtrl()->WordStartPosition(pos, true);
wxString theWord = editor->GetTextRange(wordStart, pos);
wxString theWordNoDollar = theWord;
if(theWord.StartsWith("$")) {
theWordNoDollar = theWord.Mid(1);
}
PHPExpression expr2(unsavedBuffer, "<?php $this->" + theWordNoDollar, forFunctionCalltip);
resolved = expr2.Resolve(m_lookupTable, editor->GetFileName().GetFullPath());
filter = expr2.GetFilter();
if(!resolved) {
// Maybe its a static member/function/const, try using static keyword
PHPExpression expr3(unsavedBuffer, "<?php static::" + theWord, forFunctionCalltip);
resolved = expr2.Resolve(m_lookupTable, editor->GetFileName().GetFullPath());
filter = expr2.GetFilter();
}
}
if(!resolved) {
PHPExpression expr(unsavedBuffer, "", forFunctionCalltip);
resolved = expr.Resolve(m_lookupTable, editor->GetFileName().GetFullPath());
filter = expr.GetFilter();
}
if(resolved && !filter.IsEmpty()) {
resolved = m_lookupTable.FindMemberOf(resolved->GetDbId(), filter);
if(!resolved) {
// Fallback to functions and constants
PHPEntityBase::List_t children =
m_lookupTable.FindGlobalFunctionAndConsts(PHPLookupTable::kLookupFlags_ExactMatch, filter);
if(children.size() == 1) {
resolved = *children.begin();
}
}
if(resolved && resolved->Is(kEntityTypeFunction)) {
// for a function, we need to load its children (function arguments)
resolved->SetChildren(m_lookupTable.LoadFunctionArguments(resolved->GetDbId()));
} else if(resolved && resolved->Is(kEntityTypeFunctionAlias)) {
// for a function alias, we need to load the actual functions' children (function arguments)
PHPEntityBase::Ptr_t realFunc = resolved->Cast<PHPEntityFunctionAlias>()->GetFunc();
realFunc->SetChildren(m_lookupTable.LoadFunctionArguments(realFunc->GetDbId()));
}
}
return resolved;
}
示例9: DoPHPEntityToTagEntry
TagEntryPtr PHPCodeCompletion::DoPHPEntityToTagEntry(PHPEntityBase::Ptr_t entry)
{
TagEntryPtr t(new TagEntry());
// wxString name = entry->Is(kEntityTypeNamespace) ? entry->GetFullName() : entry->GetShortName();
wxString name = entry->GetShortName();
if(entry->Is(kEntityTypeVariable) && entry->Cast<PHPEntityVariable>()->IsMember() && name.StartsWith(wxT("$")) &&
!entry->Cast<PHPEntityVariable>()->IsStatic()) {
name.Remove(0, 1);
} else if((entry->Is(kEntityTypeClass) || entry->Is(kEntityTypeNamespace)) && name.StartsWith("\\")) {
name.Remove(0, 1);
}
t->SetName(name);
t->SetParent(entry->Parent() ? entry->Parent()->GetFullName() : "");
t->SetPattern(t->GetName());
// Set the document comment
wxString comment, docComment;
docComment = entry->GetDocComment();
if(docComment.IsEmpty() == false) {
docComment.Trim().Trim(false); // The Doc comment
comment << docComment << wxT("\n<hr>"); // HLine
}
wxFileName fn(entry->GetFilename());
fn.MakeRelativeTo(PHPWorkspace::Get()->GetFilename().GetPath());
comment << fn.GetFullName() << wxT(" : ") << entry->GetLine();
t->SetComment(comment);
// Access
if(entry->Is(kEntityTypeVariable)) {
PHPEntityVariable* var = entry->Cast<PHPEntityVariable>();
// visibility
if(var->IsPrivate())
t->SetAccess(wxT("private"));
else if(var->IsProtected())
t->SetAccess(wxT("protected"));
else
t->SetAccess(wxT("public"));
// type (affects icon)
if(var->IsConst() || var->IsDefine()) {
t->SetKind("macro");
} else {
t->SetKind("variable");
}
t->SetReturnValue("");
} else if(entry->Is(kEntityTypeFunction) || entry->Is(kEntityTypeFunctionAlias)) {
PHPEntityFunction* func = NULL;
if(entry->Is(kEntityTypeFunctionAlias)) {
func = entry->Cast<PHPEntityFunctionAlias>()->GetFunc()->Cast<PHPEntityFunction>();
} else {
func = entry->Cast<PHPEntityFunction>();
}
if(func->HasFlag(kFunc_Private)) {
t->SetAccess(wxT("private"));
} else if(func->HasFlag(kFunc_Protected)) {
t->SetAccess("protected");
} else {
t->SetAccess(wxT("public"));
}
t->SetSignature(func->GetSignature());
t->SetPattern(func->GetShortName() + func->GetSignature());
t->SetKind("function");
} else if(entry->Is(kEntityTypeClass)) {
t->SetAccess(wxT("public"));
t->SetKind("class");
} else if(entry->Is(kEntityTypeNamespace)) {
t->SetAccess("public");
t->SetKind("namespace");
} else if(entry->Is(kEntityTypeKeyword)) {
t->SetAccess("public");
t->SetKind("cpp_keyword");
}
t->SetFlags(TagEntry::Tag_No_Signature_Format);
return t;
}
示例10: Suggest
void PHPExpression::Suggest(PHPEntityBase::Ptr_t resolved, PHPLookupTable& lookup, PHPEntityBase::List_t& matches)
{
// sanity
if(!resolved) return;
PHPEntityBase::Ptr_t currentScope = GetSourceFile()->CurrentScope();
// GetCount() == 0 && !GetFilter().IsEmpty() i.e. a word completion is required.
// We enhance the list with the following:
// - PHP keywords
// - Global functions
// - Global constants
// - Function arguments
// - Local variables (of the current scope)
// - And aliases e.g. 'use foo\bar as Bar;'
if(GetCount() == 0 && !GetFilter().IsEmpty()) {
// For functions and constants, PHP will fall back to global functions or constants if a
// namespaced function or constant does not exist.
PHPEntityBase::List_t globals =
lookup.FindGlobalFunctionAndConsts(PHPLookupTable::kLookupFlags_Contains, GetFilter());
matches.insert(matches.end(), globals.begin(), globals.end());
if(currentScope && (currentScope->Is(kEntityTypeFunction) || currentScope->Is(kEntityTypeNamespace))) {
// If the current scope is a function
// add the local variables + function arguments to the current list of matches
const PHPEntityBase::List_t& children = currentScope->GetChildren();
PHPEntityBase::List_t::const_iterator iter = children.begin();
for(; iter != children.end(); ++iter) {
PHPEntityBase::Ptr_t child = *iter;
if(child->Is(kEntityTypeVariable) && child->GetShortName().Contains(GetFilter()) &&
child->GetShortName() != GetFilter()) {
matches.push_back(child);
}
}
}
{
// Add aliases
PHPEntityBase::List_t aliases = GetSourceFile()->GetAliases();
PHPEntityBase::List_t::iterator iter = aliases.begin();
for(; iter != aliases.end(); ++iter) {
if((*iter)->GetShortName().Contains(GetFilter())) {
matches.push_back(*iter);
}
}
}
{
// Add $this incase we are inside a class (but only if '$this' contains the filter string)
wxString lcFilter = GetFilter().Lower();
if(GetSourceFile()->Class() && wxString("$this").Contains(lcFilter)) {
PHPEntityBase::Ptr_t thiz(new PHPEntityVariable());
thiz->SetFullName("$this");
thiz->SetShortName("$this");
thiz->SetFilename(currentScope->GetFilename());
matches.push_back(thiz);
}
}
}
// Add the scoped matches
// for the code completion
size_t flags = PHPLookupTable::kLookupFlags_Contains | GetLookupFlags();
if(resolved->Is(kEntityTypeClass)) {
if(resolved->Cast<PHPEntityClass>()->IsInterface() || resolved->Cast<PHPEntityClass>()->IsAbstractClass()) {
flags |= PHPLookupTable::kLookupFlags_IncludeAbstractMethods;
}
}
PHPEntityBase::List_t scopeChildren = lookup.FindChildren(resolved->GetDbId(), flags, GetFilter());
matches.insert(matches.end(), scopeChildren.begin(), scopeChildren.end());
// Incase the resolved is a namespace, suggest all children namespaces
if(resolved->Is(kEntityTypeNamespace)) {
PHPEntityBase::List_t namespaces = lookup.FindNamespaces(resolved->GetFullName(), GetFilter());
matches.insert(matches.end(), namespaces.begin(), namespaces.end());
}
// and make the list unique
DoMakeUnique(matches);
}
示例11: OnEntity
void PHPDocVisitor::OnEntity(PHPEntityBase::Ptr_t entity)
{
// Locate a comment for this entity
entity->SetFilename(m_sourceFile.GetFilename());
if(!entity->GetDocComment().IsEmpty()) {
// PHPDoc was already assigned to this entity during the parsing phase
if(entity->Is(kEntityTypeClass)) {
// Process @property tags here
PHPDocComment docComment(m_sourceFile, entity->GetDocComment());
if(!docComment.GetProperties().empty()) {
// Got some @properties
std::for_each(docComment.GetProperties().begin(), docComment.GetProperties().end(),
[&](PHPDocComment::Property::Map_t::value_type& p) {
PHPEntityBase::Ptr_t child = entity->FindChild(p.second.name);
if(!child) {
// No child of this type, create a new property and add it
child.Reset(new PHPEntityVariable());
child->SetFilename(m_sourceFile.GetFilename());
child->SetLine(entity->GetLine());
child->Cast<PHPEntityVariable>()->SetTypeHint(p.second.type);
child->Cast<PHPEntityVariable>()->SetFlag(kVar_Member); // Member variable
child->Cast<PHPEntityVariable>()->SetFlag(kVar_Public); // Public access
child->SetShortName(p.second.name);
child->SetFullName(p.second.name);
entity->AddChild(child);
}
});
} else if(!docComment.GetMethods().empty()) {
std::for_each(docComment.GetMethods().begin(), docComment.GetMethods().end(),
[&](PHPEntityBase::Ptr_t method) { entity->AddChild(method); });
}
}
} else {
// search for the comment placed at the top of the variable
// this is why we use here -1
int lineNum = (entity->GetLine() - 1);
// for debugging purposes
wxString entityName = entity->GetShortName();
wxUnusedVar(entityName);
std::map<int, phpLexerToken>::iterator iter = m_comments.find(lineNum);
if(iter == m_comments.end()) {
// try to locate a comment on the same line
++lineNum;
iter = m_comments.find(lineNum);
}
if(iter != m_comments.end()) {
// we got a match
entity->SetDocComment(iter->second.Text());
m_comments.erase(iter);
PHPDocComment docComment(m_sourceFile, entity->GetDocComment());
if(entity->Is(kEntityTypeFunction) && !docComment.GetReturn().IsEmpty()) {
entity->Cast<PHPEntityFunction>()->SetReturnValue(docComment.GetReturn());
} else if(entity->Is(kEntityTypeVariable) && !entity->Cast<PHPEntityVariable>()->IsFunctionArg()) {
// A global variable, const or a member
entity->Cast<PHPEntityVariable>()->SetTypeHint(docComment.GetVar());
}
} else if(entity->Is(kEntityTypeVariable) && entity->Parent() && entity->Parent()->Is(kEntityTypeFunction) &&
entity->Cast<PHPEntityVariable>()->IsFunctionArg()) {
// A function argument
PHPDocComment docComment(m_sourceFile, entity->Parent()->GetDocComment());
wxString typeHint = docComment.GetParam(entity->GetFullName());
if(!typeHint.IsEmpty()) {
entity->Cast<PHPEntityVariable>()->SetTypeHint(typeHint);
}
}
}
}
示例12: DoPHPEntityToTagEntry
TagEntryPtr PHPCodeCompletion::DoPHPEntityToTagEntry(PHPEntityBase::Ptr_t entry)
{
TagEntryPtr t(new TagEntry());
// wxString name = entry->Is(kEntityTypeNamespace) ? entry->GetFullName() : entry->GetShortName();
wxString name = entry->GetShortName();
if(entry->Is(kEntityTypeVariable) && entry->Cast<PHPEntityVariable>()->IsMember() && name.StartsWith(wxT("$")) &&
!entry->Cast<PHPEntityVariable>()->IsStatic()) {
name.Remove(0, 1);
} else if((entry->Is(kEntityTypeClass) || entry->Is(kEntityTypeNamespace)) && name.StartsWith("\\")) {
name.Remove(0, 1);
}
t->SetName(name);
t->SetParent(entry->Parent() ? entry->Parent()->GetFullName() : "");
t->SetPattern(t->GetName());
t->SetComment(entry->GetDocComment());
// Access
if(entry->Is(kEntityTypeVariable)) {
PHPEntityVariable* var = entry->Cast<PHPEntityVariable>();
// visibility
if(var->IsPrivate())
t->SetAccess(wxT("private"));
else if(var->IsProtected())
t->SetAccess(wxT("protected"));
else
t->SetAccess(wxT("public"));
// type (affects icon)
if(var->IsConst() || var->IsDefine()) {
t->SetKind("macro");
} else {
t->SetKind("variable");
}
t->SetReturnValue("");
} else if(entry->Is(kEntityTypeFunction)) {
PHPEntityFunction* func = entry->Cast<PHPEntityFunction>();
if(func->HasFlag(kFunc_Private)) {
t->SetAccess(wxT("private"));
} else if(func->HasFlag(kFunc_Protected)) {
t->SetAccess("protected");
} else {
t->SetAccess(wxT("public"));
}
t->SetSignature(func->GetSignature());
t->SetPattern(func->GetShortName() + func->GetSignature());
t->SetKind("function");
} else if(entry->Is(kEntityTypeClass)) {
t->SetAccess(wxT("public"));
t->SetKind("class");
} else if(entry->Is(kEntityTypeNamespace)) {
t->SetAccess("public");
t->SetKind("namespace");
}
t->SetFlags(TagEntry::Tag_No_Signature_Format);
return t;
}