make it possible to replace the probabilities while reading a new .pgf

This commit is contained in:
Krasimir Angelov
2022-07-14 11:04:45 +02:00
parent f1cad40394
commit 4d0f33e3c3
10 changed files with 196 additions and 24 deletions

View File

@@ -407,6 +407,33 @@ void namespace_iter(Namespace<V> map, PgfItor* itor, PgfExn *err)
return;
}
template <class V,class A>
void namespace_vec_fill_names(Namespace<V> node, size_t offs, Vector<A> *vec)
{
if (node == 0)
return;
namespace_vec_fill_names(node->left, offs, vec);
offs += namespace_size(node->left);
vector_elem(vec, offs++)->name = &node->value->name;
namespace_vec_fill_names(node->right, offs, vec);
}
template <class V,class A>
Vector<A> *namespace_to_sorted_names(Namespace<V> node)
{
Vector<A> *vec = (Vector<A> *)
malloc(sizeof(Vector<A>)+node->sz*sizeof(A));
if (errno != 0)
throw pgf_systemerror(errno);
vec->len = node->sz;
memset(vec->data, 0, node->sz*sizeof(A));
namespace_vec_fill_names(node, 0, vec);
return vec;
}
template <class V>
void namespace_release(Namespace<V> node)
{