-
-%type decl_type {decl_type*}
-decl_type(type_) ::= VOID(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
-}
-decl_type(type_) ::= CHAR(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
-}
-decl_type(type_) ::= SHORT(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
-}
-decl_type(type_) ::= INT(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
-}
-decl_type(type_) ::= LONG(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
-}
-decl_type(type_) ::= FLOAT(T). {
- type_ = init_decl_type(T->type, T->text);
- free(T);
+%type struct_arg {decl_arg*}
+%destructor struct_arg {free_decl_arg($$);}
+struct_arg(arg) ::= decl_arg(arg_) struct_layout(layout_) EOS. {
+ arg_->layout = layout_;
+ arg = arg_;