@@ -18,10 +18,12 @@ static int isatty(int) { return 0; }
1818#include < util/expr.h>
1919
2020#define PARSER (*verilog_parser_ptr)
21+ #define SCANNER (PARSER.scanner)
2122#define YYSTYPE unsigned
2223
2324#include " verilog_parser.h"
2425#include " verilog_y.tab.h"
26+ #include " verilog_scanner.h"
2527
2628int yyverilogerror (const char *error);
2729
@@ -68,34 +70,34 @@ static void preprocessor()
6870 return PARSER.scopes .identifier_token (irep_id); \
6971 }
7072#define KEYWORD (s, x ) \
71- { if (PARSER. parse_tree .standard >= verilog_standardt::s) \
73+ { if (SCANNER .standard >= verilog_standardt::s) \
7274 return x; \
7375 else \
7476 IDENTIFIER (yytext); \
7577 }
7678#define SYSTEM_VERILOG_OPERATOR (token, text ) \
77- { if (PARSER. parse_tree .standard >= verilog_standardt::SV2005) \
79+ { if (SCANNER .standard >= verilog_standardt::SV2005) \
7880 return token; \
7981 else \
8082 yyverilogerror (text " is a System Verilog operator" ); \
8183 }
8284#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) \
8587 return x; \
8688 else \
8789 IDENTIFIER (yytext); \
8890 }
8991#define VL2SMV_VERILOG_KEYWORD (x ) \
90- { if (PARSER. parse_tree .standard == verilog_standardt::V2005_SMV) \
92+ { if (SCANNER .standard == verilog_standardt::V2005_SMV) \
9193 return x; \
9294 else \
9395 IDENTIFIER (yytext); \
9496 }
9597#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) \
99101 return x; \
100102 else \
101103 IDENTIFIER (yytext); \
@@ -161,18 +163,18 @@ void verilog_scanner_init()
161163
162164<STRING >{
163165 "\"" { BEGIN (GRAMMAR);
164- stack_expr (yyveriloglval).id (PARSER .string_literal );
166+ stack_expr (yyveriloglval).id (SCANNER .string_literal );
165167 return TOK_QSTRING;
166168 }
167169
168170 <<EOF>> { yyverilogerror (" Unterminated string constant" );
169171 return TOK_SCANNER_ERROR;
170172 }
171173
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
176178
177179 \n { yyverilogerror (" Unterminated string constant" );
178180 return TOK_SCANNER_ERROR;
@@ -186,7 +188,7 @@ void verilog_scanner_init()
186188" /*" { BEGIN COMMENT; continue ; }
187189" \" " { BEGIN (STRING);
188190 newstack (yyveriloglval);
189- PARSER .string_literal .clear ();
191+ SCANNER .string_literal .clear ();
190192 }
191193
192194 /* Attributes */
0 commit comments