+%type decl_enum {decl_enum *}
+%destructor decl_enum {free_decl_enum($$);}
+%type decl_enum_items {decl_enum_items*}
+%destructor decl_enum_items {free_decl_enum_items($$);}
+%type decl_enum_item {decl_enum_item*}
+%destructor decl_enum_item {free_decl_enum_item($$);}
+%type decl_struct_args_block {decl_args*}
+%destructor decl_struct_args_block {free_decl_args($$);}
+%type decl_struct_args {decl_args*}
+%destructor decl_struct_args {free_decl_args($$);}
+%type decl_struct {decl_struct*}
+%destructor decl_struct {free_decl_struct($$);}
+%type align_and_size {decl_struct_layout}
+%type decl_union {decl_union*}
+%destructor decl_union {free_decl_union($$);}
+%type const_type {const_type*}
+%destructor const_type {free_const_type($$);}
+%type constant {constant*}
+%destructor constant {free_constant($$);}
+%type decl_typedef {decl_arg*}
+%destructor decl_typedef {free_decl_arg($$);}
+%type decl_typedef_body_ex {decl_arg*}
+%destructor decl_typedef_body_ex {free_decl_arg($$);}
+%type decl_typedef_body {decl_arg*}
+%destructor decl_typedef_body {free_decl_arg($$);}
+%type decl_typedef_body_fn_args {decl_args *}
+%destructor decl_typedef_body_fn_args {free_decl_args($$);}
+%type decl {decl*}
+%destructor decl {free_decl($$);}
+%type decl_func {decl_arg*}
+%destructor decl_func {free_decl_arg($$);}
+%type decl_abi {decl_abi*}
+%destructor decl_abi {free_decl_abi($$);}
+%type decl_var {decl_var*}
+%destructor decl_var {free_decl_var($$);}
+%type decl_vars {decl_vars*}
+%destructor decl_vars {free_decl_vars($$);}
+%type decl_arg {decl_arg*}
+%destructor decl_arg {free_decl_arg($$);}
+%type decl_args {decl_args*}
+%destructor decl_args {free_decl_args($$);}
+%type struct_args {decl_args*}
+%destructor struct_args {free_decl_args($$);}
+%type struct_arg {decl_arg*}
+%destructor struct_arg {free_decl_arg($$);}
+%type struct_layout {decl_struct_layout*}
+%destructor struct_layout {free_decl_struct_layout($$);}
+%type decl_type {decl_type*}
+%destructor decl_type {free_decl_type($$);}
+%type const_decl_type {decl_type*}
+%destructor const_decl_type {free_decl_type($$);}
+%type impl {impl*}
+%destructor impl {free_impl($$);}
+%type impl_func {impl_func*}
+%destructor impl_func {free_impl_func($$);}
+%type impl_def_val {impl_def_val*}
+%destructor impl_def_val {free_impl_def_val($$);}
+%type impl_var {impl_var*}
+%destructor impl_var {free_impl_var($$);}
+%type impl_arg {impl_arg*}
+%destructor impl_arg {free_impl_arg($$);}
+%type impl_args {impl_args*}
+%destructor impl_args {free_impl_args($$);}
+%type impl_vararg {impl_arg*}
+%destructor impl_vararg {free_impl_arg($$);}
+%type impl_arg_list {impl_args*}
+%destructor impl_arg_list {free_impl_args($$);}
+%type impl_stmts {impl_stmts*}
+%destructor impl_stmts {free_impl_stmts($$);}
+%type impl_stmt {impl_stmt*}
+%destructor impl_stmt {free_impl_stmt($$);}
+%type num_exp {num_exp*}
+%destructor num_exp {free_num_exp($$);}
+%type let_stmt {let_stmt*}
+%destructor let_stmt {free_let_stmt($$);}
+%type let_calloc {let_calloc*}
+%destructor let_calloc {free_let_calloc($$);}
+%type let_func {let_func*}
+%destructor let_func {free_let_func($$);}
+%type callback_arg_list {set_values *}
+%destructor callback_arg_list {free_set_values($$);}
+%type callback_args {set_values *}
+%destructor callback_args {free_set_values($$);}
+%type let_val {let_val*}
+%destructor let_val {free_let_val($$);}
+%type let_vals {let_vals*}
+%destructor let_vals {free_let_vals($$);}
+%type set_stmt {set_stmt*}
+%destructor set_stmt {free_set_stmt($$);}
+%type set_value {set_value*}
+%destructor set_value {free_set_value($$);}
+%type set_vals {set_value*}
+%destructor set_vals {free_set_value($$);}
+%type set_func {set_func*}
+%destructor set_func {free_set_func($$);}
+%type return_stmt {return_stmt*}
+%destructor return_stmt {free_return_stmt($$);}
+%type free_stmt {free_stmt*}
+%destructor free_stmt {free_free_stmt($$);}
+%type free_calls {free_calls*}
+%destructor free_calls {free_free_calls($$);}
+%type free_call {free_call*}
+%destructor free_call {free_free_call($$);}
+%type impl_type {impl_type*}
+%destructor impl_type {free_impl_type($$);}
+%type reference {char}
+%type indirection {unsigned}
+%type pointers {unsigned}
+
+file ::= blocks.