Doxygen
Loading...
Searching...
No Matches
vhdljjparser.h
Go to the documentation of this file.
1#ifndef VHDLJJPARSER_H
2#define VHDLJJPARSER_H
3
4#include <vector>
5#include <memory>
6#include <string>
7
8#include "parserintf.h"
9#include <stdio.h>
10#include <stdlib.h>
11#include <assert.h>
12#include <ctype.h>
13
14#include "types.h"
15#include "entry.h"
16#include "vhdldocgen.h"
17#include "config.h"
18#include "util.h"
19
21//void parserVhdlfile(const char* inputBuffer);
22
23/** \brief VHDL parser using state-based lexical scanning.
24 *
25 * This is the VHDL language parser for doxygen.
26 */
28{
29 public:
31 ~VHDLOutlineParser() override;
33 void parseInput(const QCString &fileName,
34 const char *fileBuf,
35 const std::shared_ptr<Entry> &root,
36 ClangTUParser *clangParser) override;
37
38 bool needsPreprocessing(const QCString &) const override { return TRUE; }
39 void parsePrototype(const QCString &text) override;
40
41
42 // interface for generated parser code
43
44 void setLineParsed(int tok);
45 int getLine(int tok);
46 int getLine();
47 void lineCount(const QCString &);
48 void lineCount();
49 void addProto(const QCString &s1,const QCString &s2,const QCString &s3,const QCString &s4,const QCString &s5,const QCString &s6);
50 void createFunction(const QCString &impure,VhdlSpecifier spec,const QCString &fname);
51 void addVhdlType(const QCString &n,int startLine,EntryType section, VhdlSpecifier spec,const QCString &args,const QCString &type,Protection prot);
52 void addCompInst(const QCString &n, const QCString &instName, const QCString &comp,int iLine);
53 void handleCommentBlock(const QCString &doc,bool brief);
54 void handleFlowComment(const QCString &);
55 void initEntry(Entry *e);
56 void newEntry();
57 bool isFuncProcProced();
58 void pushLabel(QCString &,QCString&);
59 QCString popLabel(QCString & q);
60 bool addLibUseClause(const QCString &type);
61 void mapLibPackage( Entry* root);
62 void createFlow();
63 void error_skipto(int kind);
64 void oneLineComment(QCString qcs);
65 void setMultCommentLine();
66 bool checkMultiComment(QCString& qcs,int line);
67 void insertEntryAtLine(std::shared_ptr<Entry> ce,int line);
68 QCString getNameID();
69 int checkInlineCode(QCString & doc);
70 private:
71 struct Private;
72 std::unique_ptr<Private> p;
73};
74
75
77
79
80#endif
Abstract interface for outline parsers.
Definition parserintf.h:42
This is an alternative implementation of QCString.
Definition qcstring.h:101
int checkInlineCode(QCString &doc)
void error_skipto(int kind)
bool needsPreprocessing(const QCString &) const override
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed t...
void handleCommentBlock(const QCString &doc, bool brief)
void setLineParsed(int tok)
std::unique_ptr< Private > p
void addVhdlType(const QCString &n, int startLine, EntryType section, VhdlSpecifier spec, const QCString &args, const QCString &type, Protection prot)
~VHDLOutlineParser() override
void insertEntryAtLine(std::shared_ptr< Entry > ce, int line)
void oneLineComment(QCString qcs)
void initEntry(Entry *e)
QCString popLabel(QCString &q)
void pushLabel(QCString &, QCString &)
bool addLibUseClause(const QCString &type)
void addCompInst(const QCString &n, const QCString &instName, const QCString &comp, int iLine)
bool checkMultiComment(QCString &qcs, int line)
void parsePrototype(const QCString &text) override
Callback function called by the comment block scanner.
void handleFlowComment(const QCString &)
QCString getNameID()
returns a unique id for each record member.
void createFunction(const QCString &impure, VhdlSpecifier spec, const QCString &fname)
void addProto(const QCString &s1, const QCString &s2, const QCString &s3, const QCString &s4, const QCString &s5, const QCString &s6)
void mapLibPackage(Entry *root)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
void parseInput()
std::vector< std::shared_ptr< Entry > > EntryList
Definition entry.h:269
#define TRUE
Definition qcstring.h:37
This file contains a number of basic enums and types.
Protection
Protection level of members.
Definition types.h:26
VhdlSpecifier
Definition types.h:548
A bunch of utility functions.
VhdlSection
const EntryList & getVhdlInstList()
QCString filter2008VhdlComment(const QCString &s)