The VHDLOutlineParser
Class Reference
VHDL parser using state-based lexical scanning. More...
Declaration
Included Headers
Base class
class | OutlineParserInterface |
Abstract interface for outline parsers. More... | |
Public Constructors Index
VHDLOutlineParser () | |
Public Destructor Index
~VHDLOutlineParser () override | |
Public Member Functions Index
void | parseInput (const QCString &fileName, const char *fileBuf, const std::shared_ptr< Entry > &root, ClangTUParser *clangParser) override |
Parses a single input file with the goal to build an Entry tree. More... | |
bool | needsPreprocessing (const QCString &) const override |
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed the result to the input parser. More... | |
void | parsePrototype (const QCString &text) override |
Callback function called by the comment block scanner. More... | |
void | setLineParsed (int tok) |
int | getLine (int tok) |
int | getLine () |
void | lineCount (const QCString &) |
void | lineCount () |
void | addProto (const QCString &s1, const QCString &s2, const QCString &s3, const QCString &s4, const QCString &s5, const QCString &s6) |
void | createFunction (const QCString &impure, VhdlSpecifier spec, const QCString &fname) |
void | addVhdlType (const QCString &n, int startLine, EntryType section, VhdlSpecifier spec, const QCString &args, const QCString &type, Protection prot) |
void | addCompInst (const QCString &n, const QCString &instName, const QCString &comp, int iLine) |
void | handleCommentBlock (const QCString &doc, bool brief) |
void | handleFlowComment (const QCString &) |
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. More... | |
int | checkInlineCode (QCString &doc) |
Private Member Attributes Index
std::unique_ptr< Private > | p |
Description
VHDL parser using state-based lexical scanning.
This is the VHDL language parser for doxygen.
Definition at line 27 of file vhdljjparser.h.
Public Constructors
VHDLOutlineParser()
|
Declaration at line 30 of file vhdljjparser.h, definition at line 124 of file vhdljjparser.cpp.
Reference p.
Public Destructor
~VHDLOutlineParser()
|
Declaration at line 31 of file vhdljjparser.h, definition at line 128 of file vhdljjparser.cpp.
Public Member Functions
addCompInst()
|
Declaration at line 52 of file vhdljjparser.h, definition at line 479 of file vhdljjparser.cpp.
References vhdl::parser::VhdlParser::SharedState::current, QCString::find, g_instFiles, vhdl::parser::VhdlParser::SharedState::genLabels, initEntry, INSTANTIATION, vhdl::parser::VhdlParser::SharedState::lastCompound, QCString::left, QCString::length, QCString::lower, newEntry, p and QCString::right.
addLibUseClause()
|
Declaration at line 60 of file vhdljjparser.h, definition at line 714 of file vhdljjparser.cpp.
References Config_getBool, FALSE, QCString::lower, QCString::stripPrefix and TRUE.
Referenced by mapLibPackage.
addProto()
|
Declaration at line 49 of file vhdljjparser.h, definition at line 634 of file vhdljjparser.cpp.
References Argument::attrib, vhdl::parser::VhdlParser::SharedState::current, Argument::defval, GEN_SEC, QCString::isEmpty, Argument::name, p, PARAM_SEC, vhdl::parser::VhdlParser::SharedState::param_sec, vhdl::parser::VhdlParser::SharedState::parse_sec, split, QCString::str, Argument::type and UNKNOWN.
addVhdlType()
|
Declaration at line 51 of file vhdljjparser.h, definition at line 521 of file vhdljjparser.cpp.
References vhdl::parser::VhdlParser::SharedState::current, GEN_SEC, GENERIC, VhdlDocGen::getFlowMember, isFuncProcProced, vhdl::parser::VhdlParser::SharedState::lastCompound, LIBRARY, newEntry, p, vhdl::parser::VhdlParser::SharedState::parse_sec, split, QCString::str and USE.
checkInlineCode()
|
Declaration at line 69 of file vhdljjparser.h, definition at line 277 of file vhdljjparser.cpp.
References 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, QCString::mid, MISCELLANEOUS, Entry::name, p, VhdlDocGen::prepareComment, reg::replace, reg::search, Entry::section, QCString::simplifyWhiteSpace, split, Entry::startLine, QCString::str, stripLeadingAndTrailingEmptyLines, Entry::type and Entry::vhdlSpec.
Referenced by handleCommentBlock.
checkMultiComment()
|
Declaration at line 66 of file vhdljjparser.h, definition at line 812 of file vhdljjparser.cpp.
References vhdl::parser::VhdlParser::SharedState::current_root, insertEntryAtLine, p and VhdlDocGen::prepareComment.
Referenced by handleCommentBlock and oneLineComment.
createFlow()
|
Declaration at line 62 of file vhdljjparser.h, definition at line 746 of file vhdljjparser.cpp.
References FlowChart::addFlowChart, FlowChart::alignFuncProc, vhdl::parser::VhdlParser::SharedState::currP, FlowChart::END_NO, FUNCTION, VhdlDocGen::getFlowMember, p, QCString::prepend, PROCEDURE, FlowChart::START_NO, vhdl::parser::VhdlParser::SharedState::tempEntry, UNKNOWN and FlowChart::writeFlowChart.
createFunction()
|
Declaration at line 50 of file vhdljjparser.h, definition at line 559 of file vhdljjparser.cpp.
References vhdl::parser::VhdlParser::SharedState::current, vhdl::parser::VhdlParser::SharedState::currP, VhdlDocGen::deleteAllChars, GEN_SEC, GENERIC, QCString::isEmpty, Argument::name, p, vhdl::parser::VhdlParser::SharedState::parse_sec, PROCEDURE, PROCESS, split and QCString::str.
error_skipto()
|
Declaration at line 63 of file vhdljjparser.h, definition at line 850 of file vhdljjparser.cpp.
References vhdl::parser::Token::kind and p.
getLine()
|
Declaration at line 45 of file vhdljjparser.h, definition at line 737 of file vhdljjparser.cpp.
Reference p.
getLine()
|
Declaration at line 46 of file vhdljjparser.h, definition at line 726 of file vhdljjparser.cpp.
Reference p.
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;
Declaration at line 68 of file vhdljjparser.h, definition at line 259 of file vhdljjparser.cpp.
References idCounter and QCString::setNum.
handleCommentBlock()
|
Declaration at line 53 of file vhdljjparser.h, definition at line 387 of file vhdljjparser.cpp.
References checkInlineCode, checkMultiComment, Config_getBool, vhdl::parser::VhdlParser::SharedState::current, FALSE, QCString::isEmpty, newEntry, p, VhdlDocGen::prepareComment, Markdown::process and TRUE.
Referenced by initEntry and oneLineComment.
handleFlowComment()
|
Declaration at line 54 of file vhdljjparser.h, definition at line 264 of file vhdljjparser.cpp.
References FlowChart::addFlowChart, FlowChart::COMMENT_NO, VhdlDocGen::getFlowMember, lineCount, QCString::stripPrefix and QCString::stripWhiteSpace.
initEntry()
|
Declaration at line 55 of file vhdljjparser.h, definition at line 199 of file vhdljjparser.cpp.
References FALSE, Entry::fileName, handleCommentBlock, Entry::lang and p.
Referenced by addCompInst, newEntry and parseInput.
insertEntryAtLine()
|
Declaration at line 67 of file vhdljjparser.h, definition at line 832 of file vhdljjparser.cpp.
References insertEntryAtLine and p.
Referenced by checkMultiComment and insertEntryAtLine.
isFuncProcProced()
|
Declaration at line 57 of file vhdljjparser.h, definition at line 605 of file vhdljjparser.cpp.
References vhdl::parser::VhdlParser::SharedState::currP, FALSE, FUNCTION, p, PROCEDURE, PROCESS and TRUE.
Referenced by addVhdlType.
lineCount()
|
Declaration at line 47 of file vhdljjparser.h, definition at line 188 of file vhdljjparser.cpp.
References QCString::data, QCString::isEmpty and p.
lineCount()
|
Declaration at line 48 of file vhdljjparser.h, definition at line 183 of file vhdljjparser.cpp.
Reference p.
Referenced by handleFlowComment.
mapLibPackage()
|
Declaration at line 61 of file vhdljjparser.h, definition at line 687 of file vhdljjparser.cpp.
References addLibUseClause, Entry::children, Entry::copyToSubEntry, FALSE, VhdlDocGen::isVhdlClass, p and TRUE.
Referenced by parseInput.
needsPreprocessing()
| inline virtual |
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed the result to the input parser.
- See Also
Definition at line 38 of file vhdljjparser.h.
Reference TRUE.
newEntry()
|
Declaration at line 56 of file vhdljjparser.h, definition at line 214 of file vhdljjparser.cpp.
References ARCHITECTURE, vhdl::parser::VhdlParser::SharedState::current, vhdl::parser::VhdlParser::SharedState::current_root, ENTITY, initEntry, vhdl::parser::VhdlParser::SharedState::lastCompound, vhdl::parser::VhdlParser::SharedState::lastEntity, p, PACKAGE and PACKAGE_BODY.
Referenced by addCompInst, addVhdlType and handleCommentBlock.
oneLineComment()
|
Declaration at line 64 of file vhdljjparser.h, definition at line 801 of file vhdljjparser.cpp.
References checkMultiComment, QCString::find, handleCommentBlock, QCString::length, p, QCString::right and TRUE.
parseInput()
| virtual |
Parses a single input file with the goal to build an Entry tree.
- Parameters
-
[in] fileName The full name of the file.
[in] fileBuf The contents of the file (zero terminated).
[inout] 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.
Declaration at line 33 of file vhdljjparser.h, definition at line 132 of file vhdljjparser.cpp.
References 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, msg, p, VhdlDocGen::parseUCF and TRUE.
parsePrototype()
| 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.
Declaration at line 39 of file vhdljjparser.h, definition at line 473 of file vhdljjparser.cpp.
popLabel()
|
Declaration at line 59 of file vhdljjparser.h, definition at line 624 of file vhdljjparser.cpp.
References QCString::findRev and QCString::left.
pushLabel()
Declaration at line 58 of file vhdljjparser.h, definition at line 618 of file vhdljjparser.cpp.
setLineParsed()
|
Declaration at line 44 of file vhdljjparser.h, definition at line 731 of file vhdljjparser.cpp.
Reference p.
setMultCommentLine()
|
Declaration at line 65 of file vhdljjparser.h, definition at line 796 of file vhdljjparser.cpp.
Reference p.
Private Member Attributes
p
|
Definition at line 72 of file vhdljjparser.h.
Referenced by addCompInst, addProto, addVhdlType, checkInlineCode, checkMultiComment, createFlow, createFunction, error_skipto, getLine, getLine, handleCommentBlock, initEntry, insertEntryAtLine, isFuncProcProced, lineCount, lineCount, mapLibPackage, newEntry, oneLineComment, parseInput, parsePrototype, setLineParsed, setMultCommentLine and VHDLOutlineParser.
The documentation for this class was generated from the following files:
Generated via doxygen2docusaurus by Doxygen 1.14.0.