summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2012-09-06 14:52:19 +0000
committerkr.angelov <kr.angelov@gmail.com>2012-09-06 14:52:19 +0000
commit86b5ec7447722dab398ea3d690b5cd9fc85fb75b (patch)
treed9e9b86354005812f1584482573fb7e1290d697b /src/runtime
parent997734c8baa5f4110c925b708c014c581dcbf845 (diff)
bugfix in the C parser
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/c/pgf/data.h2
-rw-r--r--src/runtime/c/pgf/parser.c4
-rw-r--r--src/runtime/c/pgf/reader.c7
3 files changed, 8 insertions, 5 deletions
diff --git a/src/runtime/c/pgf/data.h b/src/runtime/c/pgf/data.h
index f1cd2bafc..552613c55 100644
--- a/src/runtime/c/pgf/data.h
+++ b/src/runtime/c/pgf/data.h
@@ -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;
diff --git a/src/runtime/c/pgf/parser.c b/src/runtime/c/pgf/parser.c
index 54121b18a..15eb96414 100644
--- a/src/runtime/c/pgf/parser.c
+++ b/src/runtime/c/pgf/parser.c
@@ -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;
diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c
index 166dc9bd2..8e2a634e8 100644
--- a/src/runtime/c/pgf/reader.c
+++ b/src/runtime/c/pgf/reader.c
@@ -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;