Add support for timeunit <time_val> / <time_val>
This commit is contained in:
parent
283ae6e538
commit
f536a43e92
35
parse.y
35
parse.y
|
|
@ -1847,6 +1847,10 @@ tf_port_list /* IEEE1800-2005: A.2.7 */
|
||||||
timeunits_declaration /* IEEE1800-2005: A.1.2 */
|
timeunits_declaration /* IEEE1800-2005: A.1.2 */
|
||||||
: K_timeunit TIME_LITERAL ';'
|
: K_timeunit TIME_LITERAL ';'
|
||||||
{ pform_set_timeunit($2, false, false); }
|
{ pform_set_timeunit($2, false, false); }
|
||||||
|
| K_timeunit TIME_LITERAL '/' TIME_LITERAL ';'
|
||||||
|
{ pform_set_timeunit($2, false, false);
|
||||||
|
pform_set_timeprecision($4, false, false);
|
||||||
|
}
|
||||||
| K_timeprecision TIME_LITERAL ';'
|
| K_timeprecision TIME_LITERAL ';'
|
||||||
{ pform_set_timeprecision($2, false, false); }
|
{ pform_set_timeprecision($2, false, false); }
|
||||||
;
|
;
|
||||||
|
|
@ -3895,14 +3899,20 @@ cont_assign_list
|
||||||
/* We allow zero, one or two unique declarations. */
|
/* We allow zero, one or two unique declarations. */
|
||||||
local_timeunit_prec_decl_opt
|
local_timeunit_prec_decl_opt
|
||||||
: /* Empty */
|
: /* Empty */
|
||||||
| local_timeunit_prec_decl
|
| K_timeunit TIME_LITERAL '/' TIME_LITERAL ';'
|
||||||
| local_timeunit_prec_decl local_timeunit_prec_decl
|
{ pform_set_timeunit($2, true, false);
|
||||||
|
have_timeunit_decl = true;
|
||||||
|
pform_set_timeprecision($4, true, false);
|
||||||
|
have_timeprec_decl = true;
|
||||||
|
}
|
||||||
|
| local_timeunit_prec_decl
|
||||||
|
| local_timeunit_prec_decl local_timeunit_prec_decl2
|
||||||
;
|
;
|
||||||
|
|
||||||
/* By setting the appropriate have_time???_decl we allow only
|
/* By setting the appropriate have_time???_decl we allow only
|
||||||
one declaration of each type in this module. */
|
one declaration of each type in this module. */
|
||||||
local_timeunit_prec_decl
|
local_timeunit_prec_decl
|
||||||
: K_timeunit TIME_LITERAL ';'
|
: K_timeunit TIME_LITERAL ';'
|
||||||
{ pform_set_timeunit($2, true, false);
|
{ pform_set_timeunit($2, true, false);
|
||||||
have_timeunit_decl = true;
|
have_timeunit_decl = true;
|
||||||
}
|
}
|
||||||
|
|
@ -3911,6 +3921,21 @@ local_timeunit_prec_decl
|
||||||
have_timeprec_decl = true;
|
have_timeprec_decl = true;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
local_timeunit_prec_decl2
|
||||||
|
: K_timeunit TIME_LITERAL ';'
|
||||||
|
{ pform_set_timeunit($2, true, false);
|
||||||
|
have_timeunit_decl = true;
|
||||||
|
}
|
||||||
|
| K_timeprecision TIME_LITERAL ';'
|
||||||
|
{ pform_set_timeprecision($2, true, false);
|
||||||
|
have_timeprec_decl = true;
|
||||||
|
}
|
||||||
|
/* As the second item this form is always a check. */
|
||||||
|
| K_timeunit TIME_LITERAL '/' TIME_LITERAL ';'
|
||||||
|
{ pform_set_timeunit($2, true, true);
|
||||||
|
pform_set_timeprecision($4, true, true);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
/* This is the global structure of a module. A module in a start
|
/* This is the global structure of a module. A module in a start
|
||||||
section, with optional ports, then an optional list of module
|
section, with optional ports, then an optional list of module
|
||||||
|
|
@ -4414,6 +4439,10 @@ module_item
|
||||||
|
|
||||||
| K_timeunit_check TIME_LITERAL ';'
|
| K_timeunit_check TIME_LITERAL ';'
|
||||||
{ pform_set_timeunit($2, true, true); }
|
{ pform_set_timeunit($2, true, true); }
|
||||||
|
| K_timeunit_check TIME_LITERAL '/' TIME_LITERAL ';'
|
||||||
|
{ pform_set_timeunit($2, true, true);
|
||||||
|
pform_set_timeprecision($4, true, true);
|
||||||
|
}
|
||||||
| K_timeprecision_check TIME_LITERAL ';'
|
| K_timeprecision_check TIME_LITERAL ';'
|
||||||
{ pform_set_timeprecision($2, true, true); }
|
{ pform_set_timeprecision($2, true, true); }
|
||||||
;
|
;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue