Minor changes to VHDL lexor

This commit is contained in:
Pawel Szostek
2011-02-10 18:33:53 -08:00
committed by Stephen Williams
parent d747859a85
commit 75203dc121
3 changed files with 23 additions and 13 deletions
+12 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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