mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-03 08:12:51 -06:00
make it possible to replace the probabilities while reading a new .pgf
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user