提交 61a29918 编写于 作者: 饶先宏's avatar 饶先宏

202105310618

上级 bab1cea3
......@@ -184,7 +184,7 @@ static struct s_key_word_list {
DEFKEYWORD(SYS_NOCHANGE ,"$nochange")
};
int verilog_find_reserved_word(const char * ident)
int verilog_find_keyword_word(const char * ident)
{
int i;
for (i = 0;i<sizeof(key_word_list)/sizeof(key_word_list[0]);i++) {
......
......@@ -639,14 +639,12 @@ char *yytext;
#include "verilog_keyword.h"
static IPreprocess ** preprocess = NULL;
static char * __macroname = NULL;
int SetPreProcess(HOBJECT object)
{
return objectQueryInterface(object, IID_PREPROCESS, (const void **)&preprocess);
}
extern int verilog_find_reserved_word(const char * ident);
#define YY_NO_UNISTD_H
#define YY_INPUT(buf, result, max_size) \
......@@ -655,13 +653,13 @@ char *yytext;
}
#define EMIT_TOKEN(x) if (objectCall0(preprocess, SymbolEmitEnabled)) { return x; }
#line 658 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
#line 656 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
/* Tokens related to numbers */
/* Identifiers */
/* Strings */
/* Operators */
#line 664 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
#line 662 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
#define INITIAL 0
#define in_dec_val 1
......@@ -883,9 +881,9 @@ YY_DECL
}
{
#line 99 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 97 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 888 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
#line 886 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
......@@ -954,272 +952,272 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 100 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 98 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('@');}
YY_BREAK
case 2:
YY_RULE_SETUP
#line 101 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 99 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(',');}
YY_BREAK
case 3:
YY_RULE_SETUP
#line 102 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 100 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('#');}
YY_BREAK
case 4:
YY_RULE_SETUP
#line 103 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 101 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('.');}
YY_BREAK
case 5:
YY_RULE_SETUP
#line 104 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 102 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('=');}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 105 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 103 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(':');}
YY_BREAK
case 7:
YY_RULE_SETUP
#line 106 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 104 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(';');}
YY_BREAK
case 8:
YY_RULE_SETUP
#line 107 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 105 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('(');}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 108 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 106 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(')');}
YY_BREAK
case 10:
YY_RULE_SETUP
#line 109 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 107 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('[');}
YY_BREAK
case 11:
YY_RULE_SETUP
#line 110 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 108 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(']');}
YY_BREAK
case 12:
YY_RULE_SETUP
#line 111 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 109 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('{');}
YY_BREAK
case 13:
YY_RULE_SETUP
#line 112 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 110 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('}');}
YY_BREAK
case 14:
YY_RULE_SETUP
#line 113 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 111 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('+');}
YY_BREAK
case 15:
YY_RULE_SETUP
#line 114 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 112 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('-');}
YY_BREAK
case 16:
YY_RULE_SETUP
#line 115 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 113 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('*');}
YY_BREAK
case 17:
YY_RULE_SETUP
#line 116 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 114 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('/');}
YY_BREAK
case 18:
YY_RULE_SETUP
#line 117 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 115 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('%');}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 118 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 116 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('>');}
YY_BREAK
case 20:
YY_RULE_SETUP
#line 119 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 117 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('<');}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 120 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 118 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('!');}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 121 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 119 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('&');}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 122 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 120 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('|');}
YY_BREAK
case 24:
YY_RULE_SETUP
#line 123 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 121 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('^');}
YY_BREAK
case 25:
YY_RULE_SETUP
#line 124 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 122 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('~');}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 125 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 123 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN('?');}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 126 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 124 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(ATTRIBUTE_START);}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 127 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 125 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(ATTRIBUTE_END);}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 128 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 126 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(ASL);}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 129 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 127 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(ASR);}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 130 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 128 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(LSL);}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 131 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 129 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(LSR);}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 132 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 130 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(GTE);}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 133 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 131 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(LTE);}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 134 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 132 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(L_AND);}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 135 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 133 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(L_OR);}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 136 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 134 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(L_EQ);}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 137 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 135 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(C_EQ);}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 138 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 136 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(L_NEQ);}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 139 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 137 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(C_NEQ);}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 140 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 138 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(B_EQU);}
YY_BREAK
case 42:
YY_RULE_SETUP
#line 141 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 139 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(B_EQU);}
YY_BREAK
case 43:
YY_RULE_SETUP
#line 142 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 140 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(B_NAND);}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 143 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 141 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{EMIT_TOKEN(B_NOR);}
YY_BREAK
case 45:
YY_RULE_SETUP
#line 146 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 144 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(in_dec_val); EMIT_TOKEN(DEC_BASE);}
YY_BREAK
case 46:
YY_RULE_SETUP
#line 147 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 145 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(in_hex_val); EMIT_TOKEN(HEX_BASE);}
YY_BREAK
case 47:
YY_RULE_SETUP
#line 148 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 146 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(in_oct_val); EMIT_TOKEN(OCT_BASE);}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 149 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 147 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(in_bin_val); EMIT_TOKEN(BIN_BASE);}
YY_BREAK
case 49:
YY_RULE_SETUP
#line 151 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 149 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(INITIAL); yylval.string = _strdup(yytext); EMIT_TOKEN(BIN_VALUE);}
YY_BREAK
case 50:
YY_RULE_SETUP
#line 152 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 150 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(INITIAL); yylval.string = _strdup(yytext); EMIT_TOKEN(OCT_VALUE);}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 153 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 151 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(INITIAL); yylval.string = _strdup(yytext); EMIT_TOKEN(HEX_VALUE);}
YY_BREAK
case 52:
YY_RULE_SETUP
#line 154 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 152 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{BEGIN(INITIAL); yylval.string = _strdup(yytext); EMIT_TOKEN(DEC_VALUE);}
YY_BREAK
case 53:
YY_RULE_SETUP
#line 157 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 155 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{yylval.string=_strdup(yytext);EMIT_TOKEN(NUM_REAL);}
YY_BREAK
case 54:
YY_RULE_SETUP
#line 158 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 156 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
yylval.string=_strdup(yytext);
EMIT_TOKEN(UNSIGNED_NUMBER);
......@@ -1227,11 +1225,11 @@ YY_RULE_SETUP
YY_BREAK
case 55:
YY_RULE_SETUP
#line 163 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 161 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
yylval.string=_strdup(yytext);
if (objectCall0(preprocess, SymbolEmitEnabled)) {
int id = verilog_find_reserved_word(yytext);
int id = verilog_find_keyword_word(yytext);
if (id == -1) {
EMIT_TOKEN(SYSTEM_ID);
} else {
......@@ -1242,7 +1240,7 @@ YY_RULE_SETUP
YY_BREAK
case 56:
YY_RULE_SETUP
#line 174 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 172 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
yylval.string=_strdup(yytext);
EMIT_TOKEN(ESCAPED_ID);
......@@ -1250,11 +1248,11 @@ YY_RULE_SETUP
YY_BREAK
case 57:
YY_RULE_SETUP
#line 178 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 176 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
yylval.string=_strdup(yytext);
if (objectCall0(preprocess, SymbolEmitEnabled)) {
int id = verilog_find_reserved_word(yytext);
int id = verilog_find_keyword_word(yytext);
if (id == -1) {
EMIT_TOKEN(SIMPLE_ID);
} else {
......@@ -1265,23 +1263,23 @@ YY_RULE_SETUP
YY_BREAK
case 58:
YY_RULE_SETUP
#line 190 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 188 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{yylval.string= _strdup(yytext);EMIT_TOKEN(STRING);}
YY_BREAK
case 59:
/* rule 59 can match eol */
YY_RULE_SETUP
#line 192 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 190 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{/*EMIT_TOKEN(NEWLINE); IGNORE */ }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 193 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 191 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{/*EMIT_TOKEN(SPACE); IGNORE */ }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 194 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 192 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{/*EMIT_TOKEN(TAB); IGNORE */ }
YY_BREAK
case YY_STATE_EOF(INITIAL):
......@@ -1290,7 +1288,7 @@ case YY_STATE_EOF(in_hex_val):
case YY_STATE_EOF(in_oct_val):
case YY_STATE_EOF(in_bin_val):
case YY_STATE_EOF(in_number):
#line 196 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 194 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
yypop_buffer_state();
......@@ -1308,17 +1306,17 @@ case YY_STATE_EOF(in_number):
YY_BREAK
case 62:
YY_RULE_SETUP
#line 211 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 209 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
{
EMIT_TOKEN(ANY);
}
YY_BREAK
case 63:
YY_RULE_SETUP
#line 215 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 213 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 1321 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
#line 1319 "D:/gitwork/hdl4se/parser/verilog_scanner.c"
case YY_END_OF_BUFFER:
{
......@@ -2333,6 +2331,6 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#line 215 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
#line 213 "D:/gitwork/hdl4se/parser/verilog_scanner.l"
......@@ -6,14 +6,12 @@
#include "verilog_keyword.h"
static IPreprocess ** preprocess = NULL;
static char * __macroname = NULL;
int SetPreProcess(HOBJECT object)
{
return objectQueryInterface(object, IID_PREPROCESS, (const void **)&preprocess);
}
extern int verilog_find_reserved_word(const char * ident);
#define YY_NO_UNISTD_H
#define YY_INPUT(buf, result, max_size) \
......@@ -163,7 +161,7 @@ B_NOR "~|"
{SYSTEM_ID} {
yylval.string=_strdup(yytext);
if (objectCall0(preprocess, SymbolEmitEnabled)) {
int id = verilog_find_reserved_word(yytext);
int id = verilog_find_keyword_word(yytext);
if (id == -1) {
EMIT_TOKEN(SYSTEM_ID);
} else {
......@@ -178,7 +176,7 @@ B_NOR "~|"
{SIMPLE_ID} {
yylval.string=_strdup(yytext);
if (objectCall0(preprocess, SymbolEmitEnabled)) {
int id = verilog_find_reserved_word(yytext);
int id = verilog_find_keyword_word(yytext);
if (id == -1) {
EMIT_TOKEN(SIMPLE_ID);
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册