diff options
| author | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-06 14:37:51 +0200 |
|---|---|---|
| committer | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-06 14:37:51 +0200 |
| commit | 301b1009887440a76cd7022dbb53bda4211d49db (patch) | |
| tree | a16b95e4970df59571cbc23b730f443e4a1d47e6 /src/runtime/c | |
| parent | ef071d9157deec9af1f2ac63dae63599affea031 (diff) | |
word completion in the C parser now returns information about the function which generates the token
Diffstat (limited to 'src/runtime/c')
| -rw-r--r-- | src/runtime/c/pgf/parser.c | 3 | ||||
| -rw-r--r-- | src/runtime/c/pgf/pgf.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/runtime/c/pgf/parser.c b/src/runtime/c/pgf/parser.c index 2cae01db6..a1f0e5bbb 100644 --- a/src/runtime/c/pgf/parser.c +++ b/src/runtime/c/pgf/parser.c @@ -1254,9 +1254,12 @@ pgf_parsing_add_transition(PgfParsing* ps, PgfToken tok, PgfItem* item) if (ps->prefix != NULL && *current == 0) { if (gu_string_is_prefix(ps->prefix, tok)) { + PgfProductionApply* papp = gu_variant_data(item->prod); + ps->tp = gu_new(PgfTokenProb, ps->out_pool); ps->tp->tok = tok; ps->tp->cat = item->conts->ccat->cnccat->abscat->name; + ps->tp->fun = papp->fun->absfun->name; ps->tp->prob = item->inside_prob + item->conts->outside_prob; } } else { diff --git a/src/runtime/c/pgf/pgf.h b/src/runtime/c/pgf/pgf.h index e6c1c70b8..ceeb1f54b 100644 --- a/src/runtime/c/pgf/pgf.h +++ b/src/runtime/c/pgf/pgf.h @@ -200,6 +200,7 @@ pgf_parse_with_oracle(PgfConcr* concr, PgfType* typ, typedef struct { PgfToken tok; PgfCId cat; + PgfCId fun; prob_t prob; } PgfTokenProb; |
