replace the hash maps in the abstract syntax with binary search tables

This commit is contained in:
kr.angelov
2014-10-09 08:38:55 +00:00
parent a94ba9b888
commit 4ac5902fc9
11 changed files with 255 additions and 246 deletions

View File

@@ -34,13 +34,19 @@ GU_DEFINE_TYPE(PgfCncCat, abstract);
GU_DEFINE_TYPE(PgfDummyVariant, GuVariant);
GU_DEFINE_TYPE(PgfFlags, GuStringMap, gu_type(PgfDummyVariant), &gu_null_variant);
static int
pgf_flag_cmp_fn(GuOrder* self, const void* p1, const void* p2)
{
(void) self;
return strcmp((GuString) p1, ((PgfFlag*) p2)->name);
}
GuOrder pgf_flag_order[1] = { { pgf_flag_cmp_fn } };
GU_DEFINE_TYPE(PgfProductionSeq, abstract);
GU_DEFINE_TYPE(PgfProductionBuf, abstract);
GU_DEFINE_TYPE(PgfAbsFun, abstract);
static prob_t inf_prob = INFINITY;
GU_DEFINE_TYPE(prob_t, GuFloating, _);
@@ -51,9 +57,35 @@ GU_DEFINE_TYPE(PgfMetaChildMap, GuMap,
GU_DEFINE_TYPE(PgfAbsCat, abstract);
static int
pgf_abscat_cmp_fn(GuOrder* self, const void* p1, const void* p2)
{
(void) self;
return strcmp((GuString) p1, ((PgfAbsCat*) p2)->name);
}
GuOrder pgf_abscat_order[1] = { { pgf_abscat_cmp_fn } };
static int
pgf_absfun_cmp_fn(GuOrder* self, const void* p1, const void* p2)
{
(void) self;
return strcmp((GuString) p1, ((PgfAbsFun*) p2)->name);
}
GuOrder pgf_absfun_order[1] = { { pgf_absfun_cmp_fn } };
static GuString empty_string = "";
GU_DEFINE_TYPE(
PgfPrintNames, PgfCIdMap, gu_type(GuString), &empty_string);
GU_DEFINE_TYPE(PgfConcr, abstract);
static int
pgf_concr_cmp_fn(GuOrder* self, const void* p1, const void* p2)
{
(void) self;
return strcmp((GuString) p1, ((PgfConcr*) p2)->name);
}
GuOrder pgf_concr_order[1] = { { pgf_concr_cmp_fn } };