@@ -18,10 +18,12 @@ static int isatty(int) { return 0; }
18
18
#include < util/expr.h>
19
19
20
20
#define PARSER (*verilog_parser_ptr)
21
+ #define SCANNER (PARSER.scanner)
21
22
#define YYSTYPE unsigned
22
23
23
24
#include " verilog_parser.h"
24
25
#include " verilog_y.tab.h"
26
+ #include " verilog_scanner.h"
25
27
26
28
int yyverilogerror (const char *error);
27
29
@@ -68,34 +70,34 @@ static void preprocessor()
68
70
return PARSER.scopes .identifier_token (irep_id); \
69
71
}
70
72
#define KEYWORD (s, x ) \
71
- { if (PARSER. parse_tree .standard >= verilog_standardt::s) \
73
+ { if (SCANNER .standard >= verilog_standardt::s) \
72
74
return x; \
73
75
else \
74
76
IDENTIFIER (yytext); \
75
77
}
76
78
#define SYSTEM_VERILOG_OPERATOR (token, text ) \
77
- { if (PARSER. parse_tree .standard >= verilog_standardt::SV2005) \
79
+ { if (SCANNER .standard >= verilog_standardt::SV2005) \
78
80
return token; \
79
81
else \
80
82
yyverilogerror (text " is a System Verilog operator" ); \
81
83
}
82
84
#define VL2SMV_OR_SYSTEM_VERILOG_KEYWORD (x ) \
83
- { if (PARSER. parse_tree .standard >= verilog_standardt::SV2005 || \
84
- PARSER. parse_tree .standard == verilog_standardt::V2005_SMV) \
85
+ { if (SCANNER .standard >= verilog_standardt::SV2005 || \
86
+ SCANNER .standard == verilog_standardt::V2005_SMV) \
85
87
return x; \
86
88
else \
87
89
IDENTIFIER (yytext); \
88
90
}
89
91
#define VL2SMV_VERILOG_KEYWORD (x ) \
90
- { if (PARSER. parse_tree .standard == verilog_standardt::V2005_SMV) \
92
+ { if (SCANNER .standard == verilog_standardt::V2005_SMV) \
91
93
return x; \
92
94
else \
93
95
IDENTIFIER (yytext); \
94
96
}
95
97
#define VIS_OR_VL2SMV_OR_SYSTEM_VERILOG_KEYWORD (x ) \
96
- { if (PARSER. parse_tree .standard >= verilog_standardt::SV2005 || \
97
- PARSER. parse_tree .standard == verilog_standardt::V2005_SMV || \
98
- PARSER. parse_tree .standard == verilog_standardt::V2005_VIS) \
98
+ { if (SCANNER .standard >= verilog_standardt::SV2005 || \
99
+ SCANNER .standard == verilog_standardt::V2005_SMV || \
100
+ SCANNER .standard == verilog_standardt::V2005_VIS) \
99
101
return x; \
100
102
else \
101
103
IDENTIFIER (yytext); \
@@ -161,18 +163,18 @@ void verilog_scanner_init()
161
163
162
164
<STRING >{
163
165
"\"" { BEGIN (GRAMMAR);
164
- stack_expr (yyveriloglval).id (PARSER .string_literal );
166
+ stack_expr (yyveriloglval).id (SCANNER .string_literal );
165
167
return TOK_QSTRING;
166
168
}
167
169
168
170
<<EOF>> { yyverilogerror (" Unterminated string constant" );
169
171
return TOK_SCANNER_ERROR;
170
172
}
171
173
172
- "\\n" { PARSER .string_literal += ' \n ' ; } // NL (0x0a) */
173
- "\\t" { PARSER .string_literal += ' \t ' ; } // HT (0x09) */
174
- "\\". { PARSER .string_literal += yytext[1 ]; } // ignore the backslash
175
- [^\\\"\n]* { PARSER .string_literal += &yytext[0 ]; } // everything else
174
+ "\\n" { SCANNER .string_literal += ' \n ' ; } // NL (0x0a) */
175
+ "\\t" { SCANNER .string_literal += ' \t ' ; } // HT (0x09) */
176
+ "\\". { SCANNER .string_literal += yytext[1 ]; } // ignore the backslash
177
+ [^\\\"\n]* { SCANNER .string_literal += &yytext[0 ]; } // everything else
176
178
177
179
\n { yyverilogerror (" Unterminated string constant" );
178
180
return TOK_SCANNER_ERROR;
@@ -186,7 +188,7 @@ void verilog_scanner_init()
186
188
" /*" { BEGIN COMMENT; continue ; }
187
189
" \" " { BEGIN (STRING);
188
190
newstack (yyveriloglval);
189
- PARSER .string_literal .clear ();
191
+ SCANNER .string_literal .clear ();
190
192
}
191
193
192
194
/* Attributes */
0 commit comments