@@ -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);
@@ -3162,11 +3164,23 @@ named_parameter_assignment_brace:
31623164 { $$=$1 ; mto ($$, $3 ); }
31633165 ;
31643166
3165- ordered_parameter_assignment:
3166- expression;
3167+ ordered_parameter_assignment: param_expression
3168+ ;
3169+
3170+ param_expression:
3171+ expression
3172+ | data_type
3173+ { init ($$, ID_type); stack_expr ($$).type () = stack_type ($1 ); }
3174+ ;
3175+
3176+ param_expression_opt:
3177+ /* empty */
3178+ { init ($$, ID_nil); }
3179+ | param_expression
3180+ ;
31673181
31683182named_parameter_assignment:
3169- ' .' parameter_identifier ' (' expression_opt ' )'
3183+ ' .' parameter_identifier ' (' param_expression_opt ' )'
31703184 { init ($$, ID_named_parameter_assignment);
31713185 stack_expr ($$).add (ID_parameter).swap (stack_expr ($2 ));
31723186 stack_expr ($$).add (ID_value).swap (stack_expr ($4 ));
0 commit comments