Support enum base type vectors

Including bit/reg/logic types.
This commit is contained in:
Stephen Williams 2010-11-12 19:28:43 -08:00
parent 27dfdf99dd
commit 00c1176a5d
1 changed files with 24 additions and 0 deletions

24
parse.y
View File

@ -704,6 +704,30 @@ enum_data_type
enum_type->range.reset( make_range_from_width(integer_width) );
$$ = enum_type;
}
| K_enum K_logic range unsigned_signed_opt '{' enum_name_list '}'
{ enum_type_t*enum_type = new enum_type_t;
enum_type->names .reset($6);
enum_type->base_type = IVL_VT_LOGIC;
enum_type->signed_flag = $4;
enum_type->range.reset( $3 );
$$ = enum_type;
}
| K_enum K_reg range unsigned_signed_opt '{' enum_name_list '}'
{ enum_type_t*enum_type = new enum_type_t;
enum_type->names .reset($6);
enum_type->base_type = IVL_VT_LOGIC;
enum_type->signed_flag = $4;
enum_type->range.reset( $3 );
$$ = enum_type;
}
| K_enum K_bit range unsigned_signed_opt '{' enum_name_list '}'
{ enum_type_t*enum_type = new enum_type_t;
enum_type->names .reset($6);
enum_type->base_type = IVL_VT_BOOL;
enum_type->signed_flag = $4;
enum_type->range.reset( $3 );
$$ = enum_type;
}
;
enum_name_list