diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-10-09 12:08:51 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-10-09 12:08:51 +0000 |
| commit | 8cf03bc5b6895568eb08be1415985a64793bb81c (patch) | |
| tree | 814e95e1b0422362066fef389e8b03741e8478ad /src/runtime/c/pgf/parseval.c | |
| parent | 20e4970ec19949da10b86facd3c6a5a4abb03acb (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.c | 35 |
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; } |
