summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/parseval.c
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-10-09 12:08:51 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-10-09 12:08:51 +0000
commit8cf03bc5b6895568eb08be1415985a64793bb81c (patch)
tree814e95e1b0422362066fef389e8b03741e8478ad /src/runtime/c/pgf/parseval.c
parent20e4970ec19949da10b86facd3c6a5a4abb03acb (diff)
a major redesign in the C runtime. The parser and the linearizer now fully support BIND. The following things are still broken: parseval, word completion, handling 'pre', the robust mode
Diffstat (limited to 'src/runtime/c/pgf/parseval.c')
-rw-r--r--src/runtime/c/pgf/parseval.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/runtime/c/pgf/parseval.c b/src/runtime/c/pgf/parseval.c
index ebd52d4ce..4feadbf07 100644
--- a/src/runtime/c/pgf/parseval.c
+++ b/src/runtime/c/pgf/parseval.c
@@ -1,8 +1,9 @@
#include <pgf/pgf.h>
+#include <pgf/data.h>
#include <pgf/linearizer.h>
#include <pgf/parser.h>
-typedef struct {
+/*typedef struct {
int start, end;
PgfCId cat;
int lin_idx;
@@ -123,24 +124,50 @@ pgf_metrics_lzn_end_phrase2(PgfLinFuncs** funcs, PgfCId cat, int fid, int lin_id
}
static PgfLinFuncs pgf_metrics_lin_funcs1 = {
+v v v v v v v
+ .symbol_tokens = pgf_metrics_lzn_symbol_tokens,
+ .expr_literal = pgf_metrics_lzn_expr_literal,
+ .begin_phrase = pgf_metrics_lzn_begin_phrase,
+ .end_phrase = pgf_metrics_lzn_end_phrase1
+=============
.symbol_token = pgf_metrics_lzn_symbol_token,
.expr_literal = pgf_metrics_lzn_expr_literal,
.begin_phrase = pgf_metrics_lzn_begin_phrase,
.end_phrase = pgf_metrics_lzn_end_phrase1
+*************
+ .symbol_tokens = pgf_metrics_lzn_symbol_tokens,
+ .expr_literal = pgf_metrics_lzn_expr_literal,
+ .begin_phrase = pgf_metrics_lzn_begin_phrase,
+ .end_phrase = pgf_metrics_lzn_end_phrase1,
+ .symbol_glue = NULL
+^ ^ ^ ^ ^ ^ ^
};
static PgfLinFuncs pgf_metrics_lin_funcs2 = {
+v v v v v v v
+ .symbol_tokens = pgf_metrics_lzn_symbol_tokens,
+ .expr_literal = pgf_metrics_lzn_expr_literal,
+ .begin_phrase = pgf_metrics_lzn_begin_phrase,
+ .end_phrase = pgf_metrics_lzn_end_phrase2
+=============
.symbol_token = pgf_metrics_lzn_symbol_token,
.expr_literal = pgf_metrics_lzn_expr_literal,
.begin_phrase = pgf_metrics_lzn_begin_phrase,
.end_phrase = pgf_metrics_lzn_end_phrase2
+*************
+ .symbol_tokens = pgf_metrics_lzn_symbol_tokens,
+ .expr_literal = pgf_metrics_lzn_expr_literal,
+ .begin_phrase = pgf_metrics_lzn_begin_phrase,
+ .end_phrase = pgf_metrics_lzn_end_phrase2,
+ .symbol_glue = NULL
+^ ^ ^ ^ ^ ^ ^
};
-
+*/
bool
pgf_parseval(PgfConcr* concr, PgfExpr expr, PgfCId cat,
double *precision, double *recall, double *exact)
{
- GuPool* pool = gu_new_pool();
+/* GuPool* pool = gu_new_pool();
GuEnum* en_lins1 =
pgf_lzr_concretize(concr, expr, pool);
@@ -190,6 +217,6 @@ pgf_parseval(PgfConcr* concr, PgfExpr expr, PgfCId cat,
*precision = ((double) state.matches)/((double) state.found);
*recall = ((double) state.matches)/((double) gu_buf_length(state.phrases));
*exact = pgf_expr_eq(expr, ep->expr) ? 1 : 0;
-
+*/
return true;
}