1
0
forked from GitHub/gf-core

bugfix in the C parser

This commit is contained in:
kr.angelov
2012-09-06 14:52:19 +00:00
parent 1d8fb27656
commit cd3cca4aa2
3 changed files with 8 additions and 5 deletions

View File

@@ -148,7 +148,7 @@ typedef GuMap PgfMetaChildMap;
extern GU_DECLARE_TYPE(PgfMetaChildMap, GuMap);
struct PgfCat {
// TODO: Add cid here
PgfCId name;
PgfHypos context;
float meta_prob;

View File

@@ -1042,7 +1042,7 @@ pgf_parsing_meta_predict(GuMapItor* fn, const void* key, void* value, GuExn* err
{
(void) (err);
PgfCId abscat = *((PgfCId*) key);
PgfCat* abscat = (PgfCat*) key;
float meta_prob = *((float*) value);
PgfMetaPredictFn* clo = (PgfMetaPredictFn*) fn;
PgfParseState* before = clo->before;
@@ -1050,7 +1050,7 @@ pgf_parsing_meta_predict(GuMapItor* fn, const void* key, void* value, GuExn* err
PgfItem* meta_item = clo->meta_item;
PgfCncCat* cnccat =
gu_map_get(before->ps->concr->cnccats, &abscat, PgfCncCat*);
gu_map_get(before->ps->concr->cnccats, &abscat->name, PgfCncCat*);
if (cnccat == NULL)
return;

View File

@@ -648,10 +648,13 @@ typedef struct {
static void
pgf_compute_meta_probs(GuMapItor* fn, const void* key, void* value, GuExn* err)
{
(void) (key && err);
(void) (err);
PgfCId name = *((PgfCId*) key);
PgfCat* cat = *((PgfCat**) value);
cat->name = name;
double mass = 0;
for (size_t i = 0; i < cat->n_functions; i++) {
mass += cat->functions[i].prob;