mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-28 14:02:50 -06:00
replace the hash maps in the abstract syntax with binary search tables
This commit is contained in:
@@ -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 } };
|
||||
|
||||
Reference in New Issue
Block a user