@@ -2785,27 +2785,38 @@ disable_statement: TOK_DISABLE hierarchical_task_or_block_identifier ';'
27852785// A.6.6 Conditional statements
27862786
27872787conditional_statement :
2788- TOK_IF ' (' expression ' )' statement_or_null %prec LT_TOK_ELSE
2789- { init($$ , ID_if); mto($$ , $3 ); mto($$ , $5 ); }
2790- | TOK_IF ' (' expression ' )' statement_or_null TOK_ELSE statement_or_null
2791- { init($$ , ID_if); mto($$ , $3 ); mto($$ , $5 ); mto($$ , $7 ); }
2788+ unique_priority_opt TOK_IF ' (' expression ' )' statement_or_null %prec LT_TOK_ELSE
2789+ { init($$ , ID_if); mto($$ , $4 ); mto($$ , $6 ); }
2790+ | unique_priority_opt TOK_IF ' (' expression ' )' statement_or_null TOK_ELSE statement_or_null
2791+ { init($$ , ID_if); mto($$ , $4 ); mto($$ , $6 ); mto($$ , $8 ); }
2792+ ;
2793+
2794+ unique_priority_opt :
2795+ /* Optional */
2796+ { init($$ ); }
2797+ | TOK_UNIQUE
2798+ { init($$ , ID_verilog_unique); }
2799+ | TOK_UNIQUE0
2800+ { init($$ , ID_verilog_unique0); }
2801+ | TOK_PRIORITY
2802+ { init($$ , ID_verilog_priority); }
27922803 ;
27932804
27942805// System Verilog standard 1800-2017
27952806// A.6.7 Case statements
27962807
27972808case_statement :
2798- TOK_CASE ' (' expression ' )' case_item_brace TOK_ENDCASE
2799- { init($$ , ID_case); mto($$ , $3 );
2800- Forall_operands (it, stack_expr($5 ))
2809+ unique_priority_opt TOK_CASE ' (' expression ' )' case_item_brace TOK_ENDCASE
2810+ { init($$ , ID_case); mto($$ , $4 );
2811+ Forall_operands (it, stack_expr($6 ))
28012812 stack_expr($$).add_to_operands(std::move(*it)); }
2802- | TOK_CASEX ' (' expression ' )' case_item_brace TOK_ENDCASE
2803- { init($$ , ID_casex); mto($$ , $3 );
2804- Forall_operands (it, stack_expr($5 ))
2813+ | unique_priority_opt TOK_CASEX ' (' expression ' )' case_item_brace TOK_ENDCASE
2814+ { init($$ , ID_casex); mto($$ , $4 );
2815+ Forall_operands (it, stack_expr($6 ))
28052816 stack_expr($$).add_to_operands(std::move(*it)); }
2806- | TOK_CASEZ ' (' expression ' )' case_item_brace TOK_ENDCASE
2807- { init($$ , ID_casez); mto($$ , $3 );
2808- Forall_operands (it, stack_expr($5 ))
2817+ | unique_priority_opt TOK_CASEZ ' (' expression ' )' case_item_brace TOK_ENDCASE
2818+ { init($$ , ID_casez); mto($$ , $4 );
2819+ Forall_operands (it, stack_expr($6 ))
28092820 stack_expr($$).add_to_operands(std::move(*it)); }
28102821 ;
28112822
0 commit comments