Minor changes to VHDL lexor

This commit is contained in:
Pawel Szostek 2011-01-28 10:40:38 +01:00 committed by Stephen Williams
parent d747859a85
commit 75203dc121
3 changed files with 23 additions and 13 deletions

View File

@ -38,6 +38,8 @@ extern int lexor_keyword_code (const char*str, unsigned len);
*/
extern YYLTYPE yylloc;
static int check_underscores(char*);
static char* strdupnew(char const *str)
{
return str ? strcpy(new char [strlen(str)+1], str) : 0;
@ -51,7 +53,11 @@ static int comment_enter;
%x LCOMMENT
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] { ; }
@ -74,7 +80,7 @@ W [ \t\b\f\r]+
<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);
switch (rc) {
case IDENTIFIER:
@ -92,7 +98,7 @@ W [ \t\b\f\r]+
":=" { return VASSIGN; }
"/=" { return NE; }
"<>" { return BOX; }
j
"**" { return EXP; }
/*
"??" { return K_CC; }
"?=" {}
@ -109,6 +115,10 @@ j
extern void yyparse_set_filepath(const char*path);
static int check_underscores(char* text) {
}
void reset_lexor(FILE*fd, const char*path)
{
yylloc.text = path;

View File

@ -36,7 +36,7 @@ component, GN_KEYWORD_2008, K_component
configuration, GN_KEYWORD_2008, K_configuration
constant, GN_KEYWORD_2008, K_constant
context, GN_KEYWORD_2008, K_context
//cover, GN_KEYWORD_2008, K_cover
cover, GN_KEYWORD_2008, K_cover
default, GN_KEYWORD_2008, K_default
disconnect, GN_KEYWORD_2008, K_disconnect
downto, GN_KEYWORD_2008, K_downto
@ -45,10 +45,10 @@ elsif GN_KEYWORD_2008, K_elsif
end, GN_KEYWORD_2008, K_end
entity, GN_KEYWORD_2008, K_entity
exit, GN_KEYWORD_2008, K_exit
//fairness, GN_KEYWORD_2008, K_fairness
fairness, GN_KEYWORD_2008, K_fairness
file, GN_KEYWORD_2008, K_file
for, GN_KEYWORD_2008, K_for
//force, GN_KEYWORD_2008, K_force
force, GN_KEYWORD_2008, K_force
function, GN_KEYWORD_2008, K_function
generate, GN_KEYWORD_2008, K_generate
generic, GN_KEYWORD_2008, K_generic
@ -83,14 +83,14 @@ port, GN_KEYWORD_2008, K_port
postponed, GN_KEYWORD_2008, K_postponed
procedure, GN_KEYWORD_2008, K_procedure
process, GN_KEYWORD_2008, K_process
//property, GN_KEYWORD_2008, K_propoerty
property, GN_KEYWORD_2008, K_propoerty
protected, GN_KEYWORD_2008, K_protected
pure, GN_KEYWORD_2008, K_pure
range, GN_KEYWORD_2008, K_range
record, GN_KEYWORD_2008, K_record
register, GN_KEYWORD_2008, K_register
reject, GN_KEYWORD_2008, K_reject
//release, GN_KEYWORD_2008, K_release
release, GN_KEYWORD_2008, K_release
rem, GN_KEYWORD_2008, K_rem
report, GN_KEYWORD_2008, K_report
restrict, GN_KEYWORD_2008, K_restrict
@ -98,7 +98,7 @@ return, GN_KEYWORD_2008, K_return
rol, GN_KEYWORD_2008, K_rol
ror, GN_KEYWORD_2008, K_ror
select, GN_KEYWORD_2008, K_select
//sequence, GN_KEYWORD_2008, K_sequence
sequence, GN_KEYWORD_2008, K_sequence
severity, GN_KEYWORD_2008, K_severity
signal, GN_KEYWORD_2008, K_signal
shared, GN_KEYWORD_2008, K_shared
@ -106,7 +106,7 @@ sla, GN_KEYWORD_2008, K_sla
sll, GN_KEYWORD_2008, K_sll
sra, GN_KEYWORD_2008, K_sra
srl, GN_KEYWORD_2008, K_srl
//string, GN_KEYWORD_2008, K_string
strong, GN_KEYWORD_2008, K_strong
subtype, GN_KEYWORD_2008, K_subtype
then, GN_KEYWORD_2008, K_then
to, GN_KEYWORD_2008, K_to
@ -117,9 +117,9 @@ units. GN_KEYWORD_2008, K_units
until, GN_KEYWORD_2008, K_until
use, GN_KEYWORD_2008, K_use
variable, GN_KEYWORD_2008, K_variable
//vmode, GN_KEYWORD_2008, K_vmode
//vprop, GN_KEYWORD_2008, K_vprop
//vunit, GN_KEYWORD_2008, K_vunit
vmode, GN_KEYWORD_2008, K_vmode
vprop, GN_KEYWORD_2008, K_vprop
vunit, GN_KEYWORD_2008, K_vunit
wait, GN_KEYWORD_2008, K_wait
when, GN_KEYWORD_2008, K_when
while, GN_KEYWORD_2008, K_while

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_restrict K_restrict_guarantee K_return K_rol K_ror
%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_unaffected K_units K_until K_use
%token K_variable K_vmode K_vprop K_vunit