@@ -2845,27 +2845,38 @@ disable_statement: TOK_DISABLE hierarchical_task_or_block_identifier ';'
2845
2845
// A.6.6 Conditional statements
2846
2846
2847
2847
conditional_statement :
2848
- TOK_IF ' (' expression ' )' statement_or_null %prec LT_TOK_ELSE
2849
- { init($$ , ID_if); mto($$ , $3 ); mto($$ , $5 ); }
2850
- | TOK_IF ' (' expression ' )' statement_or_null TOK_ELSE statement_or_null
2851
- { init($$ , ID_if); mto($$ , $3 ); mto($$ , $5 ); mto($$ , $7 ); }
2848
+ unique_priority_opt TOK_IF ' (' expression ' )' statement_or_null %prec LT_TOK_ELSE
2849
+ { init($$ , ID_if); mto($$ , $4 ); mto($$ , $6 ); }
2850
+ | unique_priority_opt TOK_IF ' (' expression ' )' statement_or_null TOK_ELSE statement_or_null
2851
+ { init($$ , ID_if); mto($$ , $4 ); mto($$ , $6 ); mto($$ , $8 ); }
2852
+ ;
2853
+
2854
+ unique_priority_opt :
2855
+ /* Optional */
2856
+ { init($$ ); }
2857
+ | TOK_UNIQUE
2858
+ { init($$ , ID_verilog_unique); }
2859
+ | TOK_UNIQUE0
2860
+ { init($$ , ID_verilog_unique0); }
2861
+ | TOK_PRIORITY
2862
+ { init($$ , ID_verilog_priority); }
2852
2863
;
2853
2864
2854
2865
// System Verilog standard 1800-2017
2855
2866
// A.6.7 Case statements
2856
2867
2857
2868
case_statement :
2858
- TOK_CASE ' (' expression ' )' case_item_brace TOK_ENDCASE
2859
- { init($$ , ID_case); mto($$ , $3 );
2860
- Forall_operands (it, stack_expr($5 ))
2869
+ unique_priority_opt TOK_CASE ' (' expression ' )' case_item_brace TOK_ENDCASE
2870
+ { init($$ , ID_case); mto($$ , $4 );
2871
+ Forall_operands (it, stack_expr($6 ))
2861
2872
stack_expr($$).add_to_operands(std::move(*it)); }
2862
- | TOK_CASEX ' (' expression ' )' case_item_brace TOK_ENDCASE
2863
- { init($$ , ID_casex); mto($$ , $3 );
2864
- Forall_operands (it, stack_expr($5 ))
2873
+ | unique_priority_opt TOK_CASEX ' (' expression ' )' case_item_brace TOK_ENDCASE
2874
+ { init($$ , ID_casex); mto($$ , $4 );
2875
+ Forall_operands (it, stack_expr($6 ))
2865
2876
stack_expr($$).add_to_operands(std::move(*it)); }
2866
- | TOK_CASEZ ' (' expression ' )' case_item_brace TOK_ENDCASE
2867
- { init($$ , ID_casez); mto($$ , $3 );
2868
- Forall_operands (it, stack_expr($5 ))
2877
+ | unique_priority_opt TOK_CASEZ ' (' expression ' )' case_item_brace TOK_ENDCASE
2878
+ { init($$ , ID_casez); mto($$ , $4 );
2879
+ Forall_operands (it, stack_expr($6 ))
2869
2880
stack_expr($$).add_to_operands(std::move(*it)); }
2870
2881
;
2871
2882
0 commit comments