|
1
|
#include "VParse.h"
|
|
2
|
#include "VSymTable.h"
|
|
3
|
#include "VAst.h"
|
|
4
|
#include <cstring>
|
|
5
|
#include <deque>
|
|
6
|
#include <stdio.h>
|
|
7
|
#include <iostream>
|
|
8
|
#include <fstream>
|
|
9
|
|
|
10
|
class VFileLineParseXs;
|
|
11
|
|
|
12
|
class My_Parser : public VParse {
|
|
13
|
public:
|
|
14
|
VFileLine* m_cbFilelinep;
|
|
15
|
deque<VFileLineParseXs*> m_filelineps;
|
|
16
|
|
|
17
|
VFileLine* cbFilelinep() const { return m_cbFilelinep; }
|
|
18
|
void cbFileline(VFileLine* filelinep) { m_cbFilelinep = filelinep; }
|
|
19
|
|
|
20
|
My_Parser(VFileLine* filelinep, av* symsp, bool sigparser, bool useUnreadback)
|
|
21
|
: VParse(filelinep, symsp, sigparser, useUnreadback)
|
|
22
|
, m_cbFilelinep(filelinep)
|
|
23
|
{ }
|
|
24
|
My_Parser(const My_Parser &mp);
|
|
25
|
virtual ~My_Parser();
|
|
26
|
|
|
27
|
void attributeCb(VFileLine* fl, const string& text);
|
|
28
|
void commentCb(VFileLine* fl, const string& text);
|
|
29
|
void endparseCb(VFileLine* fl, const string& text);
|
|
30
|
void keywordCb(VFileLine* fl, const string& text);
|
|
31
|
void numberCb(VFileLine* fl, const string& text);
|
|
32
|
void operatorCb(VFileLine* fl, const string& text);
|
|
33
|
void preprocCb(VFileLine* fl, const string& text);
|
|
34
|
void stringCb(VFileLine* fl, const string& text);
|
|
35
|
void symbolCb(VFileLine* fl, const string& text);
|
|
36
|
void sysfuncCb(VFileLine* fl, const string& text);
|
|
37
|
|
|
38
|
void classCb(VFileLine* fl, const string& kwd, const string& name, const string& virt);
|
|
39
|
void contassignCb(VFileLine* fl, const string& kwd, const string& lhs, const string& rhs);
|
|
40
|
void covergroupCb(VFileLine* fl, const string& kwd, const string& name);
|
|
41
|
void defparamCb(VFileLine* fl, const string& kwd, const string& lhs, const string& rhs);
|
|
42
|
void endcellCb(VFileLine* fl, const string& kwd);
|
|
43
|
void endclassCb(VFileLine* fl, const string& kwd);
|
|
44
|
void endgroupCb(VFileLine* fl, const string& kwd);
|
|
45
|
void endinterfaceCb(VFileLine* fl, const string& kwd);
|
|
46
|
void endmodportCb(VFileLine* fl, const string& kwd);
|
|
47
|
void endmoduleCb(VFileLine* fl, const string& kwd);
|
|
48
|
void endpackageCb(VFileLine* fl, const string& kwd);
|
|
49
|
void endprogramCb(VFileLine* fl, const string& kwd);
|
|
50
|
void endtaskfuncCb(VFileLine* fl, const string& kwd);
|
|
51
|
void functionCb(VFileLine* fl, const string& kwd, const string& name, const string& data_type);
|
|
52
|
void importCb(VFileLine* fl, const string& package, const string& id);
|
|
53
|
void instantCb(VFileLine* fl, const string& mod, const string& cell, const string& range);
|
|
54
|
void interfaceCb(VFileLine* fl, const string& kwd, const string& name);
|
|
55
|
void modportCb(VFileLine* fl, const string& kwd, const string& name);
|
|
56
|
void moduleCb(VFileLine* fl, const string& kwd, const string& name, bool, bool celldefine);
|
|
57
|
void packageCb(VFileLine* fl, const string& kwd, const string& name);
|
|
58
|
void parampinCb(VFileLine* fl, const string& name, const string& conn, int index);
|
|
59
|
void pinCb(VFileLine* fl, const string& name, const string& conn, int index);
|
|
60
|
void portCb(VFileLine* fl, const string& name, const string& objof, const string& direction, const string& data_type
|
|
61
|
, const string& array, int index);
|
|
62
|
void programCb(VFileLine* fl, const string& kwd, const string& name);
|
|
63
|
void taskCb(VFileLine* fl, const string& kwd, const string& name);
|
|
64
|
void varCb(VFileLine* fl, const string& kwd, const string& name, const string& objof, const string& net
|
|
65
|
, const string& data_type, const string& array, const string& value);
|
|
66
|
|
|
67
|
};
|