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

202105310618

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