13
13
#include < util/get_module.h>
14
14
#include < util/message.h>
15
15
#include < util/namespace.h>
16
+ #include < util/options.h>
16
17
#include < util/unicode.h>
17
18
18
19
#include < langapi/language.h>
@@ -107,6 +108,11 @@ int preprocess(const cmdlinet &cmdline, message_handlert &message_handler)
107
108
return 1 ;
108
109
}
109
110
111
+ optionst options;
112
+ options.set_option (" force-systemverilog" , cmdline.isset (" systemverilog" ));
113
+
114
+ language->set_language_options (options, message_handler);
115
+
110
116
if (language->preprocess (infile, filename, std::cout, message_handler))
111
117
{
112
118
message.error () << " PREPROCESSING FAILED" << messaget::eom;
@@ -116,7 +122,8 @@ int preprocess(const cmdlinet &cmdline, message_handlert &message_handler)
116
122
return 0 ;
117
123
}
118
124
119
- bool parse (
125
+ static bool parse (
126
+ const cmdlinet &cmdline,
120
127
const std::string &filename,
121
128
language_filest &language_files,
122
129
message_handlert &message_handler)
@@ -147,6 +154,11 @@ bool parse(
147
154
148
155
languaget &language = *lf.language ;
149
156
157
+ optionst options;
158
+ options.set_option (" force-systemverilog" , cmdline.isset (" systemverilog" ));
159
+
160
+ language.set_language_options (options, message_handler);
161
+
150
162
message.status () << " Parsing " << filename << messaget::eom;
151
163
152
164
if (language.parse (infile, filename, message_handler))
@@ -167,7 +179,7 @@ bool parse(
167
179
{
168
180
for (unsigned i = 0 ; i < cmdline.args .size (); i++)
169
181
{
170
- if (parse (cmdline.args [i], language_files, message_handler))
182
+ if (parse (cmdline, cmdline .args [i], language_files, message_handler))
171
183
return true ;
172
184
}
173
185
return false ;
0 commit comments