Doxygen
|
VHDL parser using state-based lexical scanning. 更多...
#include <vhdljjparser.h>
类 | |
struct | Private |
Public 成员函数 | |
VHDLOutlineParser () | |
virtual | ~VHDLOutlineParser () |
void | parseInput (const QCString &fileName, const char *fileBuf, const std::shared_ptr< Entry > &root, ClangTUParser *clangParser) |
Parses a single input file with the goal to build an Entry tree. 更多... | |
bool | needsPreprocessing (const QCString &) const |
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed the result to the input parser. 更多... | |
void | parsePrototype (const QCString &text) |
Callback function called by the comment block scanner. 更多... | |
void | setLineParsed (int tok) |
int | getLine (int tok) |
int | getLine () |
void | lineCount (const char *) |
void | lineCount () |
void | addProto (const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6) |
void | createFunction (const char *impure, uint64 spec, const char *fname) |
void | addVhdlType (const char *n, int startLine, int section, uint64 spec, const char *args, const char *type, Protection prot) |
void | addCompInst (const char *n, const char *instName, const char *comp, int iLine) |
void | handleCommentBlock (const QCString &doc, bool brief) |
void | handleFlowComment (const char *) |
void | initEntry (Entry *e) |
void | newEntry () |
bool | isFuncProcProced () |
void | pushLabel (QCString &, QCString &) |
QCString | popLabel (QCString &q) |
bool | addLibUseClause (const QCString &type) |
void | mapLibPackage (Entry *root) |
void | createFlow () |
void | error_skipto (int kind) |
void | oneLineComment (QCString qcs) |
void | setMultCommentLine () |
bool | checkMultiComment (QCString &qcs, int line) |
void | insertEntryAtLine (std::shared_ptr< Entry > ce, int line) |
QCString | getNameID () |
returns a unique id for each record member. 更多... | |
int | checkInlineCode (QCString &doc) |
Public 成员函数 继承自 OutlineParserInterface | |
virtual | ~OutlineParserInterface () |
Private 属性 | |
std::unique_ptr< Private > | p |
VHDL parser using state-based lexical scanning.
This is the VHDL language parser for doxygen.
在文件 vhdljjparser.h 第 27 行定义.
VHDLOutlineParser::VHDLOutlineParser | ( | ) |
在文件 vhdljjparser.cpp 第 124 行定义.
|
virtual |
在文件 vhdljjparser.cpp 第 128 行定义.
void VHDLOutlineParser::addCompInst | ( | const char * | n, |
const char * | instName, | ||
const char * | comp, | ||
int | iLine | ||
) |
在文件 vhdljjparser.cpp 第 471 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::current, QCString::find(), g_instFiles, vhdl::parser::VhdlParser::SharedState::genLabels, initEntry(), VhdlDocGen::INSTANTIATION, vhdl::parser::VhdlParser::SharedState::lastCompound, QCString::left(), QCString::length(), QCString::lower(), newEntry(), p, QCString::right() , 以及 Entry::VARIABLE_SEC.
bool VHDLOutlineParser::addLibUseClause | ( | const QCString & | type | ) |
在文件 vhdljjparser.cpp 第 708 行定义.
引用了 Config_getBool, FALSE, QCString::lower(), QCString::stripPrefix() , 以及 TRUE.
被这些函数引用 mapLibPackage().
void VHDLOutlineParser::addProto | ( | const char * | s1, |
const char * | s2, | ||
const char * | s3, | ||
const char * | s4, | ||
const char * | s5, | ||
const char * | s6 | ||
) |
在文件 vhdljjparser.cpp 第 628 行定义.
引用了 Argument::attrib, vhdl::parser::VhdlParser::SharedState::current, Argument::defval, GEN_SEC, Argument::name, p, PARAM_SEC, vhdl::parser::VhdlParser::SharedState::param_sec, vhdl::parser::VhdlParser::SharedState::parse_sec, split(), QCString::str() , 以及 Argument::type.
void VHDLOutlineParser::addVhdlType | ( | const char * | n, |
int | startLine, | ||
int | section, | ||
uint64 | spec, | ||
const char * | args, | ||
const char * | type, | ||
Protection | prot | ||
) |
在文件 vhdljjparser.cpp 第 513 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::current, GEN_SEC, VhdlDocGen::GENERIC, VhdlDocGen::getFlowMember(), isFuncProcProced(), vhdl::parser::VhdlParser::SharedState::lastCompound, VhdlDocGen::LIBRARY, newEntry(), p, vhdl::parser::VhdlParser::SharedState::parse_sec, split(), QCString::str(), VhdlDocGen::USE , 以及 Entry::VARIABLE_SEC.
int VHDLOutlineParser::checkInlineCode | ( | QCString & | doc | ) |
在文件 vhdljjparser.cpp 第 273 行定义.
引用了 Entry::bodyLine, Entry::brief, QCString::contains(), vhdl::parser::VhdlParser::SharedState::current_root, Entry::doc, Entry::endBodyLine, Entry::fileName, QCString::find(), VhdlDocGen::getRecordNumber(), Entry::inbodyDocs, QCString::isEmpty(), Entry::lang, vhdl::parser::VhdlParser::SharedState::lastCompound, vhdl::parser::VhdlParser::SharedState::lastEntity, QCString::length(), reg::match(), QCString::mid(), VhdlDocGen::MISCELLANEOUS, Entry::name, p, VhdlDocGen::prepareComment(), reg::replace(), reg::search(), Entry::section, QCString::simplifyWhiteSpace(), Entry::spec, split(), SrcLangExt_VHDL, Entry::startLine, QCString::str(), stripLeadingAndTrailingEmptyLines(), Entry::type , 以及 Entry::VARIABLE_SEC.
被这些函数引用 handleCommentBlock().
bool VHDLOutlineParser::checkMultiComment | ( | QCString & | qcs, |
int | line | ||
) |
在文件 vhdljjparser.cpp 第 806 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::current_root, insertEntryAtLine(), p , 以及 VhdlDocGen::prepareComment().
被这些函数引用 handleCommentBlock() , 以及 oneLineComment().
void VHDLOutlineParser::createFlow | ( | ) |
在文件 vhdljjparser.cpp 第 740 行定义.
引用了 FlowChart::addFlowChart(), FlowChart::alignFuncProc(), vhdl::parser::VhdlParser::SharedState::currP, FlowChart::END_NO, VhdlDocGen::FUNCTION, VhdlDocGen::getFlowMember(), p, QCString::prepend(), VhdlDocGen::PROCEDURE, FlowChart::START_NO, vhdl::parser::VhdlParser::SharedState::tempEntry , 以及 FlowChart::writeFlowChart().
void VHDLOutlineParser::createFunction | ( | const char * | impure, |
uint64 | spec, | ||
const char * | fname | ||
) |
在文件 vhdljjparser.cpp 第 551 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::current, vhdl::parser::VhdlParser::SharedState::currP, VhdlDocGen::deleteAllChars(), Entry::FUNCTION_SEC, GEN_SEC, VhdlDocGen::GENERIC, QCString::isEmpty(), Argument::name, p, vhdl::parser::VhdlParser::SharedState::parse_sec, VhdlDocGen::PROCEDURE, VhdlDocGen::PROCESS, split() , 以及 QCString::str().
void VHDLOutlineParser::error_skipto | ( | int | kind | ) |
int VHDLOutlineParser::getLine | ( | ) |
int VHDLOutlineParser::getLine | ( | int | tok | ) |
QCString VHDLOutlineParser::getNameID | ( | ) |
returns a unique id for each record member.
type first_rec is record RE: data_type; end;
type second_rec is record RE: data_type; end;
在文件 vhdljjparser.cpp 第 255 行定义.
引用了 idCounter , 以及 QCString::setNum().
void VHDLOutlineParser::handleCommentBlock | ( | const QCString & | doc, |
bool | brief | ||
) |
在文件 vhdljjparser.cpp 第 383 行定义.
引用了 checkInlineCode(), checkMultiComment(), Config_getBool, vhdl::parser::VhdlParser::SharedState::current, FALSE, QCString::isEmpty(), newEntry(), p, VhdlDocGen::prepareComment(), Markdown::process(), Public, TRUE , 以及 Entry::VARIABLEDOC_SEC.
被这些函数引用 initEntry() , 以及 oneLineComment().
void VHDLOutlineParser::handleFlowComment | ( | const char * | doc | ) |
void VHDLOutlineParser::initEntry | ( | Entry * | e | ) |
在文件 vhdljjparser.cpp 第 195 行定义.
引用了 FALSE, Entry::fileName, handleCommentBlock(), Entry::lang, p , 以及 SrcLangExt_VHDL.
被这些函数引用 addCompInst(), newEntry() , 以及 parseInput().
void VHDLOutlineParser::insertEntryAtLine | ( | std::shared_ptr< Entry > | ce, |
int | line | ||
) |
bool VHDLOutlineParser::isFuncProcProced | ( | ) |
在文件 vhdljjparser.cpp 第 599 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::currP, FALSE, VhdlDocGen::FUNCTION, p, VhdlDocGen::PROCEDURE, VhdlDocGen::PROCESS , 以及 TRUE.
被这些函数引用 addVhdlType().
void VHDLOutlineParser::lineCount | ( | ) |
void VHDLOutlineParser::lineCount | ( | const char * | text | ) |
在文件 vhdljjparser.cpp 第 187 行定义.
引用了 p.
void VHDLOutlineParser::mapLibPackage | ( | Entry * | root | ) |
在文件 vhdljjparser.cpp 第 681 行定义.
引用了 addLibUseClause(), Entry::children(), Entry::copyToSubEntry(), FALSE, VhdlDocGen::isVhdlClass(), p , 以及 TRUE.
被这些函数引用 parseInput().
|
inlinevirtual |
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed the result to the input parser.
在文件 vhdljjparser.h 第 37 行定义.
引用了 TRUE.
void VHDLOutlineParser::newEntry | ( | ) |
在文件 vhdljjparser.cpp 第 210 行定义.
引用了 VhdlDocGen::ARCHITECTURE, vhdl::parser::VhdlParser::SharedState::current, vhdl::parser::VhdlParser::SharedState::current_root, VhdlDocGen::ENTITY, initEntry(), vhdl::parser::VhdlParser::SharedState::lastCompound, vhdl::parser::VhdlParser::SharedState::lastEntity, p, VhdlDocGen::PACKAGE , 以及 VhdlDocGen::PACKAGE_BODY.
被这些函数引用 addCompInst(), addVhdlType() , 以及 handleCommentBlock().
void VHDLOutlineParser::oneLineComment | ( | QCString | qcs | ) |
在文件 vhdljjparser.cpp 第 795 行定义.
引用了 checkMultiComment(), QCString::find(), handleCommentBlock(), QCString::length(), p, QCString::right() , 以及 TRUE.
|
virtual |
Parses a single input file with the goal to build an Entry tree.
[in] | fileName | The full name of the file. |
[in] | fileBuf | The contents of the file (zero terminated). |
[in,out] | root | The root of the tree of Entry *nodes representing the information extracted from the file. |
[in] | clangParser | The clang translation unit parser object or nullptr if disabled. |
在文件 vhdljjparser.cpp 第 132 行定义.
引用了 vhdl::parser::VhdlParser::SharedState::current, vhdl::parser::VhdlParser::SharedState::current_root, FALSE, initEntry(), isConstraintFile(), QCString::isEmpty(), vhdl::parser::VhdlParser::SharedState::lastCompound, vhdl::parser::VhdlParser::SharedState::lastEntity, mapLibPackage(), p, VhdlDocGen::parseUCF() , 以及 TRUE.
|
virtual |
Callback function called by the comment block scanner.
It provides a string text containing the prototype of a function or variable. The parser should parse this and store the information in the Entry node that corresponds with the node for which the comment block parser was invoked.
在文件 vhdljjparser.cpp 第 465 行定义.
在文件 vhdljjparser.cpp 第 612 行定义.
void VHDLOutlineParser::setLineParsed | ( | int | tok | ) |
void VHDLOutlineParser::setMultCommentLine | ( | ) |
|
private |
在文件 vhdljjparser.h 第 71 行定义.
被这些函数引用 addCompInst(), addProto(), addVhdlType(), checkInlineCode(), checkMultiComment(), createFlow(), createFunction(), error_skipto(), getLine(), handleCommentBlock(), initEntry(), insertEntryAtLine(), isFuncProcProced(), lineCount(), mapLibPackage(), newEntry(), oneLineComment(), parseInput(), parsePrototype(), setLineParsed() , 以及 setMultCommentLine().