-struct_arg[arg]:
- typedef[arg_] decl_layout[layout] EOS {
- $arg = $arg_;
- $arg->layout = $layout;
- psi_parser_proc_add_from_typedef(P, $arg);
+struct_arg_var_list[vars]:
+ %empty {
+ $vars = NULL;
+}
+| COMMA decl_vars_with_layout[vars_] {
+ $vars = $vars_;
+}
+;
+
+decl_vars_with_layout[vars]:
+ decl_var[var] decl_layout[layout] {
+ {
+ struct psi_decl_arg *arg = psi_decl_arg_init(NULL, $var);
+ arg->layout = $layout;
+ $vars = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
+ }
+}
+| decl_vars_with_layout[vars_] COMMA decl_var[var] decl_layout[layout] {
+ {
+ struct psi_decl_arg *arg = psi_decl_arg_init(NULL, $var);
+ arg->layout = $layout;
+ $vars = psi_plist_add($vars_, &arg);
+ }