further extend the API of the C runtime

This commit is contained in:
Krasimir Angelov
2017-10-04 09:45:56 +02:00
parent e426e87cf8
commit e3aa392e63
8 changed files with 92 additions and 30 deletions

View File

@@ -1650,10 +1650,10 @@ pgf_print_hypo(PgfHypo *hypo, PgfPrintContext* ctxt, int prec,
} else {
pgf_print_type(hypo->type, ctxt, prec, out, err);
}
gu_pool_free(tmp_pool);
}
PgfPrintContext* new_ctxt = malloc(sizeof(PgfPrintContext));
new_ctxt->name = hypo->cid;
new_ctxt->next = ctxt;
@@ -1668,7 +1668,7 @@ pgf_print_type(PgfType *type, PgfPrintContext* ctxt, int prec,
if (n_hypos > 0) {
if (prec > 0) gu_putc('(', out, err);
PgfPrintContext* new_ctxt = ctxt;
for (size_t i = 0; i < n_hypos; i++) {
PgfHypo *hypo = gu_seq_index(type->hypos, PgfHypo, i);
@@ -1707,6 +1707,22 @@ pgf_print_type(PgfType *type, PgfPrintContext* ctxt, int prec,
}
}
PGF_API void
pgf_print_context(PgfHypos *hypos, PgfPrintContext* ctxt,
GuOut *out, GuExn *err)
{
PgfPrintContext* new_ctxt = ctxt;
size_t n_hypos = gu_seq_length(hypos);
for (size_t i = 0; i < n_hypos; i++) {
if (i > 0)
gu_putc(' ', out, err);
PgfHypo *hypo = gu_seq_index(hypos, PgfHypo, i);
new_ctxt = pgf_print_hypo(hypo, new_ctxt, 4, out, err);
}
}
PGF_API void
pgf_print_expr_tuple(size_t n_exprs, PgfExpr exprs[], PgfPrintContext* ctxt,
GuOut* out, GuExn* err)