@@ -3099,6 +3099,21 @@ statement_brace:
30993099
31003100assertion_item :
31013101 concurrent_assertion_item
3102+ | deferred_immediate_assertion_item
3103+ ;
3104+
3105+ deferred_immediate_assertion_item :
3106+ deferred_immediate_assertion_statement
3107+ { /* wrap the statement into an item */
3108+ init ($$, ID_verilog_assertion_item);
3109+ mto ($$, $1 );
3110+ }
3111+ | block_identifier TOK_COLON deferred_immediate_assertion_statement
3112+ { /* wrap the statement into an item */
3113+ stack_expr ($3 ).set(ID_identifier, stack_expr($1 ).id());
3114+ init ($$, ID_verilog_assertion_item);
3115+ mto ($$, $3 );
3116+ }
31023117 ;
31033118
31043119procedural_assertion_statement :
@@ -3110,6 +3125,7 @@ procedural_assertion_statement:
31103125
31113126immediate_assertion_statement :
31123127 simple_immediate_assertion_statement
3128+ | deferred_immediate_assertion_statement
31133129 ;
31143130
31153131simple_immediate_assertion_statement :
@@ -3130,6 +3146,27 @@ simple_immediate_cover_statement: TOK_COVER '(' expression ')' action_block
31303146 { init($$ , ID_verilog_immediate_cover); mto($$ , $3 ); mto($$ , $5 ); }
31313147 ;
31323148
3149+ deferred_immediate_assertion_statement :
3150+ deferred_immediate_assert_statement
3151+ | deferred_immediate_assume_statement
3152+ | deferred_immediate_cover_statement
3153+ ;
3154+
3155+ deferred_immediate_assert_statement :
3156+ TOK_ASSERT TOK_FINAL ' (' expression ' )' action_block
3157+ { init($$ , ID_verilog_immediate_assert); mto($$ , $4 ); mto($$ , $6 ); }
3158+ ;
3159+
3160+ deferred_immediate_assume_statement :
3161+ TOK_ASSUME TOK_FINAL ' (' expression ' )' action_block
3162+ { init($$ , ID_verilog_immediate_assume); mto($$ , $4 ); mto($$ , $6 ); }
3163+ ;
3164+
3165+ deferred_immediate_cover_statement :
3166+ TOK_COVER TOK_FINAL ' (' expression ' )' statement_or_null
3167+ { init($$ , ID_verilog_immediate_cover); mto($$ , $4 ); mto($$ , $6 ); }
3168+ ;
3169+
31333170wait_statement : TOK_WAIT ' (' expression ' )' statement_or_null
31343171 { init($$ , ID_wait); mto($$ , $3 ); mto($$ , $5 ); }
31353172 ;
0 commit comments