void ClangDocBitcodeWriter::emitBlock(const RecordInfo &I) { StreamSubBlockGuard Block(Stream, BI_RECORD_BLOCK_ID); emitRecord(I.USR, RECORD_USR); emitRecord(I.Name, RECORD_NAME); for (const auto &N : I.Namespace) emitBlock(N, FieldId::F_namespace); for (const auto &CI : I.Description) emitBlock(CI); if (I.DefLoc) emitRecord(I.DefLoc.getValue(), RECORD_DEFLOCATION); for (const auto &L : I.Loc) emitRecord(L, RECORD_LOCATION); emitRecord(I.TagType, RECORD_TAG_TYPE); for (const auto &N : I.Members) emitBlock(N); for (const auto &P : I.Parents) emitBlock(P, FieldId::F_parent); for (const auto &P : I.VirtualParents) emitBlock(P, FieldId::F_vparent); for (const auto &C : I.ChildRecords) emitBlock(C, FieldId::F_child_record); for (const auto &C : I.ChildFunctions) emitBlock(C); for (const auto &C : I.ChildEnums) emitBlock(C); }
void ClangDocBitcodeWriter::emitBlock(const EnumInfo &I) { StreamSubBlockGuard Block(Stream, BI_ENUM_BLOCK_ID); emitRecord(I.USR, ENUM_USR); emitRecord(I.Name, ENUM_NAME); for (const auto &N : I.Namespace) emitBlock(N, FieldId::F_namespace); for (const auto &CI : I.Description) emitBlock(CI); if (I.DefLoc) emitRecord(I.DefLoc.getValue(), ENUM_DEFLOCATION); for (const auto &L : I.Loc) emitRecord(L, ENUM_LOCATION); emitRecord(I.Scoped, ENUM_SCOPED); for (const auto &N : I.Members) emitRecord(N, ENUM_MEMBER); }
void HtmlExporter::emitFrame( QTextFrame::Iterator frameIt ) { // kDebug() << "html" << html; if ( !frameIt.atEnd() ) { QTextFrame::Iterator next = frameIt; ++next; if ( next.atEnd() && frameIt.currentFrame() == 0 && frameIt.parentFrame() != doc->rootFrame() && frameIt.currentBlock().begin().atEnd() ) { return; } } for ( QTextFrame::Iterator it = frameIt; !it.atEnd(); ++it ) {; if ( QTextFrame *f = it.currentFrame() ) { // qDebug() << "Its a frame, not a block" << endl; if ( QTextTable * table = qobject_cast<QTextTable *>( f ) ) { emitTable( table ); } else { // qDebug() << "isn't table" << endl; html += QLatin1String( "\n<table" ); QTextFrameFormat format = f->frameFormat(); if ( format.hasProperty( QTextFormat::FrameBorder ) ) { emitAttribute( "border", QString::number( format.border() ) ); } html += QLatin1String( " style=\"-qt-table-type: frame;" ); emitFloatStyle( format.position(), OmitStyleTag ); if ( format.hasProperty( QTextFormat::FrameMargin ) ) { const QString margin = QString::number( format.margin() ); emitMargins( margin, margin, margin, margin ); } html += QLatin1Char( '\"' ); emitTextLength( "width", format.width() ); emitTextLength( "height", format.height() ); QBrush bg = format.background(); if ( bg != Qt::NoBrush ) { emitAttribute( "bgcolor", bg.color().name() ); } html += QLatin1Char( '>' ); html += QLatin1String( "\n<tr>\n<td style=\"border: none;\">" ); emitFrame( f->begin() ); html += QLatin1String( "</td></tr></table>" ); } } else if ( it.currentBlock().isValid() ) { // qDebug()<< "is valid" << endl; emitBlock( it.currentBlock() ); } } }
void ClangDocBitcodeWriter::emitBlock(const FunctionInfo &I) { StreamSubBlockGuard Block(Stream, BI_FUNCTION_BLOCK_ID); emitRecord(I.USR, FUNCTION_USR); emitRecord(I.Name, FUNCTION_NAME); for (const auto &N : I.Namespace) emitBlock(N, FieldId::F_namespace); for (const auto &CI : I.Description) emitBlock(CI); emitRecord(I.IsMethod, FUNCTION_IS_METHOD); if (I.DefLoc) emitRecord(I.DefLoc.getValue(), FUNCTION_DEFLOCATION); for (const auto &L : I.Loc) emitRecord(L, FUNCTION_LOCATION); emitBlock(I.Parent, FieldId::F_parent); emitBlock(I.ReturnType); for (const auto &N : I.Params) emitBlock(N); }
bool ClangDocBitcodeWriter::dispatchInfoForWrite(Info *I) { switch (I->IT) { case InfoType::IT_namespace: emitBlock(*static_cast<clang::doc::NamespaceInfo *>(I)); break; case InfoType::IT_record: emitBlock(*static_cast<clang::doc::RecordInfo *>(I)); break; case InfoType::IT_enum: emitBlock(*static_cast<clang::doc::EnumInfo *>(I)); break; case InfoType::IT_function: emitBlock(*static_cast<clang::doc::FunctionInfo *>(I)); break; default: llvm::errs() << "Unexpected info, unable to write.\n"; return true; } return false; }
void ClangDocBitcodeWriter::emitBlock(const CommentInfo &I) { StreamSubBlockGuard Block(Stream, BI_COMMENT_BLOCK_ID); for (const auto &L : std::vector<std::pair<llvm::StringRef, RecordId>>{ {I.Kind, COMMENT_KIND}, {I.Text, COMMENT_TEXT}, {I.Name, COMMENT_NAME}, {I.Direction, COMMENT_DIRECTION}, {I.ParamName, COMMENT_PARAMNAME}, {I.CloseName, COMMENT_CLOSENAME}}) emitRecord(L.first, L.second); emitRecord(I.SelfClosing, COMMENT_SELFCLOSING); emitRecord(I.Explicit, COMMENT_EXPLICIT); for (const auto &A : I.AttrKeys) emitRecord(A, COMMENT_ATTRKEY); for (const auto &A : I.AttrValues) emitRecord(A, COMMENT_ATTRVAL); for (const auto &A : I.Args) emitRecord(A, COMMENT_ARG); for (const auto &C : I.Children) emitBlock(*C); }
void ClangDocBitcodeWriter::emitBlock(const NamespaceInfo &I) { StreamSubBlockGuard Block(Stream, BI_NAMESPACE_BLOCK_ID); emitRecord(I.USR, NAMESPACE_USR); emitRecord(I.Name, NAMESPACE_NAME); for (const auto &N : I.Namespace) emitBlock(N, FieldId::F_namespace); for (const auto &CI : I.Description) emitBlock(CI); for (const auto &C : I.ChildNamespaces) emitBlock(C, FieldId::F_child_namespace); for (const auto &C : I.ChildRecords) emitBlock(C, FieldId::F_child_record); for (const auto &C : I.ChildFunctions) emitBlock(C); for (const auto &C : I.ChildEnums) emitBlock(C); }
void ClangDocBitcodeWriter::emitBlock(const MemberTypeInfo &T) { StreamSubBlockGuard Block(Stream, BI_MEMBER_TYPE_BLOCK_ID); emitBlock(T.Type, FieldId::F_type); emitRecord(T.Name, MEMBER_TYPE_NAME); emitRecord(T.Access, MEMBER_TYPE_ACCESS); }
void ClangDocBitcodeWriter::emitBlock(const FieldTypeInfo &T) { StreamSubBlockGuard Block(Stream, BI_FIELD_TYPE_BLOCK_ID); emitBlock(T.Type, FieldId::F_type); emitRecord(T.Name, FIELD_TYPE_NAME); }
void ClangDocBitcodeWriter::emitBlock(const TypeInfo &T) { StreamSubBlockGuard Block(Stream, BI_TYPE_BLOCK_ID); emitBlock(T.Type, FieldId::F_type); }