| 4204 | } |
| 4205 | |
| 4206 | void SymbolDatabase::printOut(const char *title) const |
| 4207 | { |
| 4208 | std::cout << std::setiosflags(std::ios::boolalpha); |
| 4209 | if (title) |
| 4210 | std::cout << "\n### " << title << " ###\n"; |
| 4211 | |
| 4212 | for (auto scope = scopeList.cbegin(); scope != scopeList.cend(); ++scope) { |
| 4213 | std::cout << "Scope: " << &*scope << " " << scope->type << std::endl; |
| 4214 | std::cout << " className: " << scope->className << std::endl; |
| 4215 | std::cout << " classDef: " << tokenToString(scope->classDef, mTokenizer) << std::endl; |
| 4216 | std::cout << " bodyStart: " << tokenToString(scope->bodyStart, mTokenizer) << std::endl; |
| 4217 | std::cout << " bodyEnd: " << tokenToString(scope->bodyEnd, mTokenizer) << std::endl; |
| 4218 | |
| 4219 | // find the function body if not implemented inline |
| 4220 | for (auto func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) { |
| 4221 | std::cout << " Function: " << &*func << std::endl; |
| 4222 | std::cout << " name: " << tokenToString(func->tokenDef, mTokenizer) << std::endl; |
| 4223 | std::cout << " type: " << functionTypeToString(func->type) << std::endl; |
| 4224 | std::cout << " access: " << accessControlToString(func->access) << std::endl; |
| 4225 | std::cout << " hasBody: " << func->hasBody() << std::endl; |
| 4226 | std::cout << " isInline: " << func->isInline() << std::endl; |
| 4227 | std::cout << " isConst: " << func->isConst() << std::endl; |
| 4228 | std::cout << " hasVirtualSpecifier: " << func->hasVirtualSpecifier() << std::endl; |
| 4229 | std::cout << " isPure: " << func->isPure() << std::endl; |
| 4230 | std::cout << " isStatic: " << func->isStatic() << std::endl; |
| 4231 | std::cout << " isStaticLocal: " << func->isStaticLocal() << std::endl; |
| 4232 | std::cout << " isExtern: " << func->isExtern() << std::endl; |
| 4233 | std::cout << " isFriend: " << func->isFriend() << std::endl; |
| 4234 | std::cout << " isExplicit: " << func->isExplicit() << std::endl; |
| 4235 | std::cout << " isDefault: " << func->isDefault() << std::endl; |
| 4236 | std::cout << " isDelete: " << func->isDelete() << std::endl; |
| 4237 | std::cout << " hasOverrideSpecifier: " << func->hasOverrideSpecifier() << std::endl; |
| 4238 | std::cout << " hasFinalSpecifier: " << func->hasFinalSpecifier() << std::endl; |
| 4239 | std::cout << " isNoExcept: " << func->isNoExcept() << std::endl; |
| 4240 | std::cout << " isThrow: " << func->isThrow() << std::endl; |
| 4241 | std::cout << " isOperator: " << func->isOperator() << std::endl; |
| 4242 | std::cout << " hasLvalRefQual: " << func->hasLvalRefQualifier() << std::endl; |
| 4243 | std::cout << " hasRvalRefQual: " << func->hasRvalRefQualifier() << std::endl; |
| 4244 | std::cout << " isVariadic: " << func->isVariadic() << std::endl; |
| 4245 | std::cout << " isVolatile: " << func->isVolatile() << std::endl; |
| 4246 | std::cout << " hasTrailingReturnType: " << func->hasTrailingReturnType() << std::endl; |
| 4247 | std::cout << " attributes:"; |
| 4248 | if (func->isAttributeConst()) |
| 4249 | std::cout << " const "; |
| 4250 | if (func->isAttributePure()) |
| 4251 | std::cout << " pure "; |
| 4252 | if (func->isAttributeNoreturn()) |
| 4253 | std::cout << " noreturn "; |
| 4254 | if (func->isAttributeNothrow()) |
| 4255 | std::cout << " nothrow "; |
| 4256 | if (func->isAttributeConstructor()) |
| 4257 | std::cout << " constructor "; |
| 4258 | if (func->isAttributeDestructor()) |
| 4259 | std::cout << " destructor "; |
| 4260 | if (func->isAttributeNodiscard()) |
| 4261 | std::cout << " nodiscard "; |
| 4262 | std::cout << std::endl; |
| 4263 | std::cout << " noexceptArg: " << (func->noexceptArg ? func->noexceptArg->str() : "none") << std::endl; |
nothing calls this directly
no test coverage detected