more specify syntax (Stehpan Boettcher)

This commit is contained in:
steve 2001-10-26 03:22:56 +00:00
parent b3bb79992a
commit 8c9e0bafa9
1 changed files with 36 additions and 42 deletions

78
parse.y
View File

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) && !defined(macintosh) #if !defined(WINNT) && !defined(macintosh)
#ident "$Id: parse.y,v 1.131 2001/10/21 01:55:24 steve Exp $" #ident "$Id: parse.y,v 1.132 2001/10/26 03:22:56 steve Exp $"
#endif #endif
# include "config.h" # include "config.h"
@ -120,6 +120,7 @@ static struct str_pair_t decl_strength = { PGate::STRONG, PGate::STRONG };
%type <statement> udp_initial udp_init_opt %type <statement> udp_initial udp_init_opt
%type <text> identifier register_variable %type <text> identifier register_variable
%type <text> spec_notifier spec_notifier_opt
%type <texts> register_variable_list list_of_variables %type <texts> register_variable_list list_of_variables
%type <text> net_decl_assign %type <text> net_decl_assign
@ -1839,67 +1840,40 @@ specify_item
{ {
} }
| K_Shold '(' spec_reference_event ',' spec_reference_event | K_Shold '(' spec_reference_event ',' spec_reference_event
',' expression ')' ';' ',' expression spec_notifier_opt ')' ';'
{ delete $7; { delete $7;
if ($8) delete $8;
} }
| K_Shold '(' spec_reference_event ',' spec_reference_event | K_Speriod '(' spec_reference_event ',' expression
',' expression ',' identifier ')' ';' spec_notifier_opt ')' ';'
{ delete $7;
delete $9;
}
| K_Speriod '(' spec_reference_event ',' expression ')' ';'
{ delete $5; { delete $5;
} if ($6) delete $6;
| K_Speriod '(' spec_reference_event ',' expression ','
identifier ')' ';'
{ delete $5;
delete $7;
} }
| K_Srecovery '(' spec_reference_event ',' spec_reference_event | K_Srecovery '(' spec_reference_event ',' spec_reference_event
',' expression ')' ';' ',' expression spec_notifier_opt ')' ';'
{ delete $7; { delete $7;
} if ($8) delete $8;
| K_Srecovery '(' spec_reference_event ',' spec_reference_event
',' expression ',' identifier ')' ';'
{ delete $7;
delete $9;
} }
| K_Ssetup '(' spec_reference_event ',' spec_reference_event | K_Ssetup '(' spec_reference_event ',' spec_reference_event
',' expression ')' ';' ',' expression spec_notifier_opt ')' ';'
{ delete $7; { delete $7;
if ($8) delete $8;
} }
| K_Ssetup '(' spec_reference_event ',' spec_reference_event | K_Ssetuphold '(' spec_reference_event ',' spec_reference_event
',' expression ',' identifier ')' ';' ',' expression ',' expression spec_notifier_opt ')' ';'
{ delete $7; { delete $7;
delete $9; delete $9;
if ($10) delete $10;
} }
| K_Swidth '(' spec_reference_event ',' expression ',' expression | K_Swidth '(' spec_reference_event ',' expression ',' expression
',' identifier ')' ';' spec_notifier_opt ')' ';'
{ delete $5;
delete $7;
delete $9;
}
| K_Swidth '(' spec_reference_event ',' expression
',' expression ')' ';'
{ delete $5; { delete $5;
delete $7; delete $7;
if ($8) delete $8;
} }
| K_Swidth '(' spec_reference_event ',' expression ')' ';' | K_Swidth '(' spec_reference_event ',' expression ')' ';'
{ delete $5; { delete $5;
} }
| K_Ssetuphold '(' spec_reference_event ',' spec_reference_event
',' expression ',' expression ')' ';'
{
delete $7;
delete $9;
}
| K_Ssetuphold '(' spec_reference_event ',' spec_reference_event
',' expression ',' expression ',' identifier ')' ';'
{
delete $7;
delete $9;
delete $11;
}
; ;
specify_delay_value_list specify_delay_value_list
@ -1981,10 +1955,30 @@ spec_reference_event
{ delete $2; { delete $2;
delete $4; delete $4;
} }
;
spec_notifier_opt
: /* empty */
{ $$=0x0; }
| spec_notifier
{ $$=$1; }
;
spec_notifier
: ','
{ $$ = 0x0; }
| ',' identifier
{ $$ = $2; }
| spec_notifier ','
{ $$ = $1; }
| spec_notifier ',' identifier
{ $$ = $1;
delete $3;
}
| IDENTIFIER | IDENTIFIER
{ delete $1; } { delete $1; }
; ;
statement statement
/* assign and deassign statements are procedural code to do /* assign and deassign statements are procedural code to do