mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-08-22 05:47:31 +02:00
Minor changes to VHDL lexor
This commit is contained in:
committed by
Stephen Williams
parent
d747859a85
commit
75203dc121
+12
-2
@@ -38,6 +38,8 @@ extern int lexor_keyword_code (const char*str, unsigned len);
|
|||||||
*/
|
*/
|
||||||
extern YYLTYPE yylloc;
|
extern YYLTYPE yylloc;
|
||||||
|
|
||||||
|
static int check_underscores(char*);
|
||||||
|
|
||||||
static char* strdupnew(char const *str)
|
static char* strdupnew(char const *str)
|
||||||
{
|
{
|
||||||
return str ? strcpy(new char [strlen(str)+1], str) : 0;
|
return str ? strcpy(new char [strlen(str)+1], str) : 0;
|
||||||
@@ -51,7 +53,11 @@ static int comment_enter;
|
|||||||
%x LCOMMENT
|
%x LCOMMENT
|
||||||
|
|
||||||
W [ \t\b\f\r]+
|
W [ \t\b\f\r]+
|
||||||
|
decimal_literal {integer}(\.{integer})?({exponent})?
|
||||||
|
integer [0-9](_?[0-9])*
|
||||||
|
exponent [eE][-+]?{integer}
|
||||||
|
|
||||||
|
based_integer [0-9a-fA-F](_?[0-9a-fA-F])*
|
||||||
%%
|
%%
|
||||||
|
|
||||||
[ \t\b\f\r] { ; }
|
[ \t\b\f\r] { ; }
|
||||||
@@ -74,7 +80,7 @@ W [ \t\b\f\r]+
|
|||||||
<CCOMMENT>"*/" { BEGIN(comment_enter); }
|
<CCOMMENT>"*/" { BEGIN(comment_enter); }
|
||||||
|
|
||||||
|
|
||||||
[a-zA-Z_][a-zA-Z0-9_]* {
|
[a-zA-Z][a-zA-Z0-9_]* {
|
||||||
int rc = lexor_keyword_code(yytext, yyleng);
|
int rc = lexor_keyword_code(yytext, yyleng);
|
||||||
switch (rc) {
|
switch (rc) {
|
||||||
case IDENTIFIER:
|
case IDENTIFIER:
|
||||||
@@ -92,7 +98,7 @@ W [ \t\b\f\r]+
|
|||||||
":=" { return VASSIGN; }
|
":=" { return VASSIGN; }
|
||||||
"/=" { return NE; }
|
"/=" { return NE; }
|
||||||
"<>" { return BOX; }
|
"<>" { return BOX; }
|
||||||
j
|
"**" { return EXP; }
|
||||||
/*
|
/*
|
||||||
"??" { return K_CC; }
|
"??" { return K_CC; }
|
||||||
"?=" {}
|
"?=" {}
|
||||||
@@ -109,6 +115,10 @@ j
|
|||||||
|
|
||||||
extern void yyparse_set_filepath(const char*path);
|
extern void yyparse_set_filepath(const char*path);
|
||||||
|
|
||||||
|
static int check_underscores(char* text) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void reset_lexor(FILE*fd, const char*path)
|
void reset_lexor(FILE*fd, const char*path)
|
||||||
{
|
{
|
||||||
yylloc.text = path;
|
yylloc.text = path;
|
||||||
|
|||||||
+10
-10
@@ -36,7 +36,7 @@ component, GN_KEYWORD_2008, K_component
|
|||||||
configuration, GN_KEYWORD_2008, K_configuration
|
configuration, GN_KEYWORD_2008, K_configuration
|
||||||
constant, GN_KEYWORD_2008, K_constant
|
constant, GN_KEYWORD_2008, K_constant
|
||||||
context, GN_KEYWORD_2008, K_context
|
context, GN_KEYWORD_2008, K_context
|
||||||
//cover, GN_KEYWORD_2008, K_cover
|
cover, GN_KEYWORD_2008, K_cover
|
||||||
default, GN_KEYWORD_2008, K_default
|
default, GN_KEYWORD_2008, K_default
|
||||||
disconnect, GN_KEYWORD_2008, K_disconnect
|
disconnect, GN_KEYWORD_2008, K_disconnect
|
||||||
downto, GN_KEYWORD_2008, K_downto
|
downto, GN_KEYWORD_2008, K_downto
|
||||||
@@ -45,10 +45,10 @@ elsif GN_KEYWORD_2008, K_elsif
|
|||||||
end, GN_KEYWORD_2008, K_end
|
end, GN_KEYWORD_2008, K_end
|
||||||
entity, GN_KEYWORD_2008, K_entity
|
entity, GN_KEYWORD_2008, K_entity
|
||||||
exit, GN_KEYWORD_2008, K_exit
|
exit, GN_KEYWORD_2008, K_exit
|
||||||
//fairness, GN_KEYWORD_2008, K_fairness
|
fairness, GN_KEYWORD_2008, K_fairness
|
||||||
file, GN_KEYWORD_2008, K_file
|
file, GN_KEYWORD_2008, K_file
|
||||||
for, GN_KEYWORD_2008, K_for
|
for, GN_KEYWORD_2008, K_for
|
||||||
//force, GN_KEYWORD_2008, K_force
|
force, GN_KEYWORD_2008, K_force
|
||||||
function, GN_KEYWORD_2008, K_function
|
function, GN_KEYWORD_2008, K_function
|
||||||
generate, GN_KEYWORD_2008, K_generate
|
generate, GN_KEYWORD_2008, K_generate
|
||||||
generic, GN_KEYWORD_2008, K_generic
|
generic, GN_KEYWORD_2008, K_generic
|
||||||
@@ -83,14 +83,14 @@ port, GN_KEYWORD_2008, K_port
|
|||||||
postponed, GN_KEYWORD_2008, K_postponed
|
postponed, GN_KEYWORD_2008, K_postponed
|
||||||
procedure, GN_KEYWORD_2008, K_procedure
|
procedure, GN_KEYWORD_2008, K_procedure
|
||||||
process, GN_KEYWORD_2008, K_process
|
process, GN_KEYWORD_2008, K_process
|
||||||
//property, GN_KEYWORD_2008, K_propoerty
|
property, GN_KEYWORD_2008, K_propoerty
|
||||||
protected, GN_KEYWORD_2008, K_protected
|
protected, GN_KEYWORD_2008, K_protected
|
||||||
pure, GN_KEYWORD_2008, K_pure
|
pure, GN_KEYWORD_2008, K_pure
|
||||||
range, GN_KEYWORD_2008, K_range
|
range, GN_KEYWORD_2008, K_range
|
||||||
record, GN_KEYWORD_2008, K_record
|
record, GN_KEYWORD_2008, K_record
|
||||||
register, GN_KEYWORD_2008, K_register
|
register, GN_KEYWORD_2008, K_register
|
||||||
reject, GN_KEYWORD_2008, K_reject
|
reject, GN_KEYWORD_2008, K_reject
|
||||||
//release, GN_KEYWORD_2008, K_release
|
release, GN_KEYWORD_2008, K_release
|
||||||
rem, GN_KEYWORD_2008, K_rem
|
rem, GN_KEYWORD_2008, K_rem
|
||||||
report, GN_KEYWORD_2008, K_report
|
report, GN_KEYWORD_2008, K_report
|
||||||
restrict, GN_KEYWORD_2008, K_restrict
|
restrict, GN_KEYWORD_2008, K_restrict
|
||||||
@@ -98,7 +98,7 @@ return, GN_KEYWORD_2008, K_return
|
|||||||
rol, GN_KEYWORD_2008, K_rol
|
rol, GN_KEYWORD_2008, K_rol
|
||||||
ror, GN_KEYWORD_2008, K_ror
|
ror, GN_KEYWORD_2008, K_ror
|
||||||
select, GN_KEYWORD_2008, K_select
|
select, GN_KEYWORD_2008, K_select
|
||||||
//sequence, GN_KEYWORD_2008, K_sequence
|
sequence, GN_KEYWORD_2008, K_sequence
|
||||||
severity, GN_KEYWORD_2008, K_severity
|
severity, GN_KEYWORD_2008, K_severity
|
||||||
signal, GN_KEYWORD_2008, K_signal
|
signal, GN_KEYWORD_2008, K_signal
|
||||||
shared, GN_KEYWORD_2008, K_shared
|
shared, GN_KEYWORD_2008, K_shared
|
||||||
@@ -106,7 +106,7 @@ sla, GN_KEYWORD_2008, K_sla
|
|||||||
sll, GN_KEYWORD_2008, K_sll
|
sll, GN_KEYWORD_2008, K_sll
|
||||||
sra, GN_KEYWORD_2008, K_sra
|
sra, GN_KEYWORD_2008, K_sra
|
||||||
srl, GN_KEYWORD_2008, K_srl
|
srl, GN_KEYWORD_2008, K_srl
|
||||||
//string, GN_KEYWORD_2008, K_string
|
strong, GN_KEYWORD_2008, K_strong
|
||||||
subtype, GN_KEYWORD_2008, K_subtype
|
subtype, GN_KEYWORD_2008, K_subtype
|
||||||
then, GN_KEYWORD_2008, K_then
|
then, GN_KEYWORD_2008, K_then
|
||||||
to, GN_KEYWORD_2008, K_to
|
to, GN_KEYWORD_2008, K_to
|
||||||
@@ -117,9 +117,9 @@ units. GN_KEYWORD_2008, K_units
|
|||||||
until, GN_KEYWORD_2008, K_until
|
until, GN_KEYWORD_2008, K_until
|
||||||
use, GN_KEYWORD_2008, K_use
|
use, GN_KEYWORD_2008, K_use
|
||||||
variable, GN_KEYWORD_2008, K_variable
|
variable, GN_KEYWORD_2008, K_variable
|
||||||
//vmode, GN_KEYWORD_2008, K_vmode
|
vmode, GN_KEYWORD_2008, K_vmode
|
||||||
//vprop, GN_KEYWORD_2008, K_vprop
|
vprop, GN_KEYWORD_2008, K_vprop
|
||||||
//vunit, GN_KEYWORD_2008, K_vunit
|
vunit, GN_KEYWORD_2008, K_vunit
|
||||||
wait, GN_KEYWORD_2008, K_wait
|
wait, GN_KEYWORD_2008, K_wait
|
||||||
when, GN_KEYWORD_2008, K_when
|
when, GN_KEYWORD_2008, K_when
|
||||||
while, GN_KEYWORD_2008, K_while
|
while, GN_KEYWORD_2008, K_while
|
||||||
|
|||||||
+1
-1
@@ -66,7 +66,7 @@ int parse_errors = 0;
|
|||||||
%token K_range K_record K_register K_reject K_release K_rem K_report
|
%token K_range K_record K_register K_reject K_release K_rem K_report
|
||||||
%token K_restrict K_restrict_guarantee K_return K_rol K_ror
|
%token K_restrict K_restrict_guarantee K_return K_rol K_ror
|
||||||
%token K_select K_sequence K_severity K_signal K_shared
|
%token K_select K_sequence K_severity K_signal K_shared
|
||||||
%token K_sla K_sll K_sra K_srl K_string K_subtype
|
%token K_sla K_sll K_sra K_srl K_strong K_subtype
|
||||||
%token K_then K_to K_transport K_type
|
%token K_then K_to K_transport K_type
|
||||||
%token K_unaffected K_units K_until K_use
|
%token K_unaffected K_units K_until K_use
|
||||||
%token K_variable K_vmode K_vprop K_vunit
|
%token K_variable K_vmode K_vprop K_vunit
|
||||||
|
|||||||
Reference in New Issue
Block a user