void VerilogDocGen::writeSource(MemberDef *mdef,OutputList& ol,QCString & cname) { // Definition d=(Definition)mdef; static bool optVerilog = Config_getBool("OPTIMIZE_OUTPUT_VERILOG"); /* if(optVerilog){ VerilogDocGen::writeSource(mdef,ol,cname); return; } */ QCString fdd=mdef->getDefFileExtension(); QCString scope=mdef->getScopeString(); QCString codeFragment=mdef->documentation(); //FileDef *fd=mdef->getFileDef(); FileDef *fd=mdef->getBodyDef(); QCString defFileName; assert(fd); QStringList qsl=QStringList::split("\n",codeFragment); ParserInterface *pIntf = Doxygen::parserManager->getParser(fdd.data()); pIntf->resetCodeParserState(); ol.startParagraph(); ol.startCodeFragment(); ol.endCodeFragment(); ol.endParagraph(); mdef->writeSourceDef(ol,cname); mdef->writeSourceRefs(ol,cname); mdef->writeSourceReffedBy(ol,cname); }
void FileDef::parseSource() { static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES"); DevNullCodeDocInterface devNullIntf; ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension()); pIntf->resetCodeParserState(); pIntf->parseCode( devNullIntf,0, fileToString(absFilePath(),filterSourceFiles,TRUE), FALSE,0,this ); }
//! parse the list of input files static void parseFiles(Entry *root,EntryNav *rootNav) { { StringListIterator it(g_inputFiles); QCString *s; for (;(s=it.current());++it) { bool ambig; QStrList filesInSameTu; FileDef *fd=findFileDef(inputNameDict,s->data(),ambig); ASSERT(fd!=0); ParserInterface * parser = getParserForFile(s->data()); if( parser ) { parser->startTranslationUnit(s->data()); parseFile(parser,root,rootNav,fd,s->data(),FALSE,filesInSameTu); } } } }
EditorComponent::EditorComponent(QQmlContext *projectContext, ParserInterface &parserInterface, CommandInterface &commandInterface, QObject *parent) : _commandInterface(commandInterface) , _parserInterface(parserInterface) , QObject(parent) { projectContext->setContextProperty("editor", this); parserInterface.setSetCurrentLineCallback( [this](std::size_t line) { setCurrentLine(line); }); }
/*! Write code of this definition into the documentation */ void Definition::writeInlineCode(OutputList &ol,const char *scopeName) { makeResident(); ol.pushGeneratorState(); //printf("Source Fragment %s: %d-%d bodyDef=%p\n",name().data(), // m_startBodyLine,m_endBodyLine,m_bodyDef); if (Config_getBool("INLINE_SOURCES") && m_impl->body && m_impl->body->startLine!=-1 && m_impl->body->endLine>=m_impl->body->startLine && m_impl->body->fileDef) { QCString codeFragment; int actualStart=m_impl->body->startLine,actualEnd=m_impl->body->endLine; if (readCodeFragment(m_impl->body->fileDef->absFilePath(), actualStart,actualEnd,codeFragment) ) { //printf("Adding code fragement '%s' ext='%s'\n", // codeFragment.data(),m_impl->defFileExt.data()); ParserInterface *pIntf = Doxygen::parserManager->getParser(m_impl->defFileExt); pIntf->resetCodeParserState(); //printf("Read:\n`%s'\n\n",codeFragment.data()); MemberDef *thisMd = 0; if (definitionType()==TypeMember) thisMd = (MemberDef *)this; ol.startCodeFragment(); pIntf->parseCode(ol, // codeOutIntf scopeName, // scope codeFragment, // input FALSE, // isExample 0, // exampleName m_impl->body->fileDef, // fileDef actualStart, // startLine actualEnd, // endLine TRUE, // inlineFragment thisMd, // memberDef FALSE // show line numbers ); ol.endCodeFragment(); } } ol.popGeneratorState(); }
void SyntaxHighlighter::_addKeywords( SyntaxInformation::Token token, QTextCharFormat format, QRegularExpression::PatternOption patternOption, ParserInterface &parserInterface) { for (const auto ®exString : parserInterface.getSyntaxRegex(token).get()) { QRegularExpression regex(QString::fromStdString(regexString), patternOption); KeywordRule keyword {regex, format}; _keywords.push_back(keyword); } }
/*! Write a source listing of this file to the output */ void FileDef::writeSource(OutputList &ol) { static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES"); static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); QCString title = docname; if (!fileVersion.isEmpty()) { title+=(" ("+fileVersion+")"); } QCString pageTitle = theTranslator->trSourceFile(title); ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::RTF); if (!latexSourceCode) ol.disable(OutputGenerator::Latex); if (Config_getBool("SHOW_DIRECTORIES") && getDirDef()) { startFile(ol,getSourceFileBase(),0,pageTitle,HLI_FileVisible, !generateTreeView,getOutputFileBase()); if (!generateTreeView) { getDirDef()->writeNavigationPath(ol); ol.endQuickIndices(); } startTitle(ol,getOutputFileBase()); ol.parseText(name()); endTitle(ol,getOutputFileBase(),title); } else { startFile(ol,getSourceFileBase(),0,pageTitle,HLI_FileVisible, !generateTreeView,getOutputFileBase()); startTitle(ol,getSourceFileBase()); ol.parseText(title); endTitle(ol,getSourceFileBase(),0); } ol.startContents(); if (isLinkable()) { if (latexSourceCode) ol.disable(OutputGenerator::Latex); ol.startTextLink(getOutputFileBase(),0); ol.parseText(theTranslator->trGotoDocumentation()); ol.endTextLink(); if (latexSourceCode) ol.enable(OutputGenerator::Latex); } ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension()); pIntf->resetCodeParserState(); ol.startCodeFragment(); pIntf->parseCode(ol,0, fileToString(absFilePath(),filterSourceFiles,TRUE), FALSE,0,this ); ol.endCodeFragment(); ol.endContents(); if (generateTreeView) { writeNavigationPath(ol); endFile(ol,TRUE); } else { endFile(ol); } ol.enableAll(); }