-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathverilog_parser.cpp
76 lines (50 loc) · 1.42 KB
/
verilog_parser.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*******************************************************************\
Module:
Author: Daniel Kroening, [email protected]
\*******************************************************************/
#include "verilog_parser.h"
#include <util/cout_message.h>
#include <util/unicode.h>
#include <fstream>
#include <iostream>
#include <stdio.h>
verilog_parsert *verilog_parser_ptr = nullptr;
verilog_scopest verilog_scopes;
/*******************************************************************\
Function: verilog_parsert::scopes
Inputs:
Outputs:
Purpose:
\*******************************************************************/
verilog_scopest &verilog_parsert::scopes()
{
return verilog_scopes;
}
/*******************************************************************\
Function:
Inputs:
Outputs:
Purpose:
\*******************************************************************/
bool parse_verilog_file(
const std::string &filename,
verilog_standardt standard,
verilog_scopest &scopes)
{
std::ifstream in(widen_if_needed(filename));
console_message_handlert console_message_handler;
verilog_parsert verilog_parser(standard, console_message_handler);
verilog_parser.set_file(filename);
if(filename=="")
verilog_parser.in=&std::cin;
else
{
if(!in)
{
std::cerr << "failed to open " << filename << std::endl;
return true;
}
verilog_parser.in=∈
}
return verilog_parser.parse();
}