remove obsolete code

This commit is contained in:
krangelov
2021-11-19 09:38:04 +01:00
parent a5cbf3e894
commit 1107b245da
7 changed files with 8 additions and 123 deletions

View File

@@ -74,18 +74,13 @@ struct PGF_INTERNAL_DECL PgfFlag {
static void release(ref<PgfFlag> pgf);
};
typedef struct {
PgfExpr body;
Vector<PgfPatt> patts;
} PgfEquation;
struct PGF_INTERNAL_DECL PgfAbsFun {
size_t ref_count;
ref<PgfDTyp> type;
int arity;
ref<char> bytecode;
PgfExprProb ep;
prob_t prob;
PgfText name;
static void release(ref<PgfAbsFun> cat);

View File

@@ -1055,7 +1055,7 @@ PgfExpr PgfExprProbEstimator::efun(PgfText *name)
if (absfun == 0)
prob = INFINITY;
else
prob += absfun->ep.prob;
prob += absfun->prob;
return 0;
}
@@ -1200,54 +1200,3 @@ void pgf_type_free(ref<PgfDTyp> dtyp)
PgfDB::free(dtyp);
}
PGF_INTERNAL
void pgf_patt_free(PgfPatt patt)
{
switch (ref<PgfPatt>::get_tag(patt)) {
case PgfPattApp::tag: {
auto papp = ref<PgfPattApp>::untagged(patt);
PgfDB::free(papp->ctor);
for (size_t i = 0; i < papp->args.len; i++) {
PgfPatt patt = *vector_elem(ref<Vector<PgfPatt>>::from_ptr(&papp->args), i);
pgf_patt_free(patt);
}
PgfDB::free(papp);
break;
}
case PgfPattVar::tag: {
PgfDB::free(ref<PgfPattVar>::untagged(patt));
break;
}
case PgfPattAs::tag: {
auto pas = ref<PgfPattAs>::untagged(patt);
pgf_patt_free(pas->patt);
PgfDB::free(pas);
break;
}
case PgfPattWild::tag: {
PgfDB::free(ref<PgfPattWild>::untagged(patt));
break;
}
case PgfPattLit::tag: {
auto plit = ref<PgfPattLit>::untagged(patt);
pgf_literal_free(plit->lit);
PgfDB::free(plit);
break;
}
case PgfPattImplArg::tag: {
auto pimpl = ref<PgfPattImplArg>::untagged(patt);
pgf_patt_free(pimpl->patt);
PgfDB::free(pimpl);
break;
}
case PgfPattTilde::tag: {
auto ptilde = ref<PgfPattTilde>::untagged(patt);
pgf_patt_free(ptilde->expr);
PgfDB::free(ptilde);
break;
}
default:
throw pgf_error("Unknown pattern tag");
}
}

View File

@@ -87,59 +87,8 @@ struct PGF_INTERNAL_DECL PgfExprImplArg {
PgfExpr expr;
};
// PgfPatt
typedef object PgfPatt;
struct PGF_INTERNAL_DECL PgfPattApp {
static const uint8_t tag = 0;
ref<PgfText> ctor;
Vector<PgfPatt> args;
};
struct PGF_INTERNAL_DECL PgfPattVar {
static const uint8_t tag = 1;
PgfText name;
};
struct PGF_INTERNAL_DECL PgfPattAs {
static const uint8_t tag = 2;
PgfPatt patt;
PgfText name;
};
struct PGF_INTERNAL_DECL PgfPattWild {
static const uint8_t tag = 3;
};
struct PGF_INTERNAL_DECL PgfPattLit {
static const uint8_t tag = 4;
PgfLiteral lit;
};
struct PGF_INTERNAL_DECL PgfPattImplArg {
static const uint8_t tag = 5;
PgfPatt patt;
};
struct PGF_INTERNAL_DECL PgfPattTilde {
static const uint8_t tag = 6;
PgfExpr expr;
};
typedef float prob_t;
typedef struct {
prob_t prob;
PgfExpr expr;
} PgfExprProb;
struct PGF_INTERNAL_DECL PgfDBMarshaller : public PgfMarshaller {
virtual object match_lit(PgfUnmarshaller *u, PgfLiteral l);
virtual object match_expr(PgfUnmarshaller *u, PgfExpr e);
@@ -289,7 +238,4 @@ void pgf_context_free(ref<Vector<PgfHypo>> hypos);
PGF_INTERNAL_DECL
void pgf_type_free(ref<PgfDTyp> dtyp);
PGF_INTERNAL_DECL
void pgf_patt_free(PgfPatt patt);
#endif /* EXPR_H_ */

View File

@@ -553,7 +553,7 @@ prob_t pgf_function_prob(PgfDB *db, PgfRevision revision,
if (absfun == 0)
return INFINITY;
return absfun->ep.prob;
return absfun->prob;
} PGF_API_END
return INFINITY;
@@ -757,7 +757,7 @@ PgfText *pgf_print_function_internal(object o)
printer.efun(&absfun->name);
printer.puts(" : ");
m.match_type(&printer, absfun->type.as_object());
printer.nprintf(32, " ; -- %g", absfun->ep.prob);
printer.nprintf(32, " ; -- %g", absfun->prob);
return printer.get_text();
}
@@ -971,10 +971,7 @@ void pgf_create_function(PgfDB *db, PgfRevision revision,
absfun->type = m->match_type(&u, ty);
absfun->arity = arity;
absfun->bytecode = bytecode ? PgfDB::malloc<char>(0) : 0;
absfun->ep.prob = prob;
ref<PgfExprFun> efun =
ref<PgfExprFun>::from_ptr((PgfExprFun*) &absfun->name);
absfun->ep.expr = ref<PgfExprFun>::tagged(efun);
absfun->prob = prob;
memcpy(&absfun->name, name, sizeof(PgfText)+name->size+1);
Namespace<PgfAbsFun> funs =

View File

@@ -324,7 +324,6 @@ ref<PgfAbsFun> PgfReader::read_absfun()
absfun->ref_count = 1;
ref<PgfExprFun> efun =
ref<PgfExprFun>::from_ptr((PgfExprFun*) &absfun->name);
absfun->ep.expr = ref<PgfExprFun>::tagged(efun);
absfun->type = read_type();
absfun->arity = read_int();
@@ -341,7 +340,7 @@ ref<PgfAbsFun> PgfReader::read_absfun()
default:
throw pgf_error("Unknown tag, 0 or 1 expected");
}
absfun->ep.prob = - log(read_double());
absfun->prob = - log(read_double());
return absfun;
}

View File

@@ -270,7 +270,7 @@ void PgfWriter::write_absfun(ref<PgfAbsFun> absfun)
write_tag(1);
write_len(0);
}
write_double(exp(-absfun->ep.prob));
write_double(exp(-absfun->prob));
}
static
@@ -297,7 +297,7 @@ void write_funs_by_cat(Namespace<PgfAbsFun> funs, PgfText *cat, PgfWriter *wtr)
write_funs_by_cat(funs->left, cat, wtr);
if (textcmp(&funs->value->name, cat) == 0) {
wtr->write_double(exp(-funs->value->ep.prob));
wtr->write_double(exp(-funs->value->prob));
wtr->write_name(&funs->value->name);
}

View File

@@ -54,7 +54,6 @@ private:
template<class V>
void write_namespace_helper(Namespace<V> nmsp, void (PgfWriter::*write_value)(ref<V>));
void write_patt(ref<PgfPatt> r) { write_patt(*r); };
void write_text(ref<ref<PgfText>> r) { write_text(&(**r)); };
void write_lparam(ref<ref<PgfLParam>> r) { write_lparam(*r); };
void write_seq(ref<ref<Vector<PgfSymbol>>> r) { write_seq(*r); };