@@ -1985,6 +1985,8 @@ list_of_variable_identifiers:
19851985parameter_port_declaration:
19861986 TOK_PARAMETER data_type_or_implicit param_assignment
19871987 { init ($$, ID_decl); stack_expr ($$).type () = std::move (stack_type ($2 )); mto ($$, $3 ); }
1988+ | TOK_PARAMETER TOK_TYPE type_assignment
1989+ { init ($$, ID_decl); stack_expr ($$).type () = typet{ID_type}; mto ($$, $3 ); }
19881990 | TOK_LOCALPARAM data_type_or_implicit param_assignment
19891991 { init ($$, ID_decl); stack_expr ($$).type () = std::move (stack_type ($2 )); mto ($$, $3 ); }
19901992 | data_type param_assignment
@@ -2028,7 +2030,7 @@ list_of_type_assignments:
20282030 ;
20292031
20302032type_assignment: param_identifier ' =' data_type
2031- { init ($$, ID_parameter );
2033+ { init ($$, ID_declarator );
20322034 auto base_name = stack_expr ($1 ).id ();
20332035 stack_expr ($$).set (ID_identifier, base_name);
20342036 stack_expr ($$).set (ID_base_name, base_name);
@@ -3161,11 +3163,23 @@ named_parameter_assignment_brace:
31613163 { $$=$1 ; mto ($$, $3 ); }
31623164 ;
31633165
3164- ordered_parameter_assignment:
3165- expression;
3166+ ordered_parameter_assignment: param_expression
3167+ ;
3168+
3169+ param_expression:
3170+ expression
3171+ | data_type
3172+ { init ($$, ID_type); stack_expr ($$).type () = stack_type ($1 ); }
3173+ ;
3174+
3175+ param_expression_opt:
3176+ /* empty */
3177+ { init ($$, ID_nil); }
3178+ | param_expression
3179+ ;
31663180
31673181named_parameter_assignment:
3168- ' .' parameter_identifier ' (' expression_opt ' )'
3182+ ' .' parameter_identifier ' (' param_expression_opt ' )'
31693183 { init ($$, ID_named_parameter_assignment);
31703184 stack_expr ($$).add (ID_parameter).swap (stack_expr ($2 ));
31713185 stack_expr ($$).add (ID_value).swap (stack_expr ($4 ));
0 commit comments