macro_rules! declare_stack_allocator_struct {
(@as_expr $expr : expr) => { ... };
(@new_method $name : ident, $freelist_size : tt) => { ... };
(@new_calloc_method $name : ident, $freelist_size : tt) => { ... };
($name :ident, $freelist_size : tt, malloc) => { ... };
($name :ident, $freelist_size : tt, calloc) => { ... };
($name :ident, $freelist_size : tt, stack) => { ... };
($name :ident, $freelist_size : expr, global) => { ... };
}