@@ -2845,27 +2845,38 @@ disable_statement: TOK_DISABLE hierarchical_task_or_block_identifier ';'
28452845// A.6.6 Conditional statements
28462846
28472847conditional_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); }
28522863 ;
28532864
28542865// System Verilog standard 1800-2017
28552866// A.6.7 Case statements
28562867
28572868case_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 ))
28612872 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 ))
28652876 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 ))
28692880 stack_expr($$).add_to_operands(std::move(*it)); }
28702881 ;
28712882
0 commit comments