#include "data.h" void PgfFlag::release(ref flag) { pgf_literal_free(flag->value); } void PgfAbsFun::release(ref absfun) { pgf_type_free(absfun->type); if (absfun->defns != 0) { for (size_t i = 0; i < absfun->defns->len; i++) { ref eq = *vector_elem(absfun->defns, i); pgf_expr_free(eq->body); for (size_t j = 0; j < eq->patts.len; j++) { PgfPatt patt = *vector_elem(ref>::from_ptr(&eq->patts), j); pgf_patt_free(patt); } } PgfDB::free(absfun->defns); } } void PgfAbsCat::release(ref abscat) { pgf_context_free(abscat->context); } void PgfPGF::release(ref pgf) { namespace_release(pgf->gflags); PgfDB::free(pgf->abstract.name); namespace_release(pgf->abstract.aflags); namespace_release(pgf->abstract.funs); namespace_release(pgf->abstract.cats); }