From 7fcaa81858959699938ae0f032583a498c63019a Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 23 Jan 2012 09:46:45 +0000 Subject: libpgf: move the lindefs field from PgfCncCat to PgfCCat. display the list in the grammar printout --- src/runtime/c/pgf/reader.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/runtime/c/pgf/reader.c') diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c index d902b698a..391a0e719 100644 --- a/src/runtime/c/pgf/reader.c +++ b/src/runtime/c/pgf/reader.c @@ -437,6 +437,7 @@ pgf_read_to_PgfCCatId(GuType* type, PgfReader* rdr, void* to) if (!ccat) { ccat = gu_new(PgfCCat, rdr->pool); ccat->cnccat = NULL; + ccat->lindefs = gu_map_get(rdr->curr_lindefs, &fid, PgfFunIds*); ccat->prods = gu_null_seq; ccat->fid = fid; @@ -449,14 +450,16 @@ pgf_read_to_PgfCCatId(GuType* type, PgfReader* rdr, void* to) static void pgf_read_to_PgfCCat(GuType* type, PgfReader* rdr, void* to) { - (void) type; - gu_enter("->"); - PgfCCat* cat = to; - cat->cnccat = NULL; - pgf_read_to(rdr, gu_type(PgfProductionSeq), &cat->prods); - int* fidp = rdr->curr_key; - cat->fid = *fidp; - gu_exit("<-"); + (void) type; + gu_enter("->"); + int* fidp = rdr->curr_key; + + PgfCCat* ccat = to; + ccat->cnccat = NULL; + ccat->lindefs = gu_map_get(rdr->curr_lindefs, fidp, PgfFunIds*); + pgf_read_to(rdr, gu_type(PgfProductionSeq), &ccat->prods); + ccat->fid = *fidp; + gu_exit("<-"); } // This is only needed because new_struct would otherwise override. @@ -736,6 +739,7 @@ pgf_read_new_PgfCncCat(GuType* type, PgfReader* rdr, GuPool* pool, if (!ccat) { ccat = gu_new(PgfCCat, rdr->pool); ccat->cnccat = NULL; + ccat->lindefs = gu_map_get(rdr->curr_lindefs, &fid, PgfFunIds*); ccat->prods = gu_null_seq; ccat->fid = fid; @@ -752,7 +756,6 @@ pgf_read_new_PgfCncCat(GuType* type, PgfReader* rdr, GuPool* pool, } cnccat->n_lins = n_lins == -1 ? 0 : (size_t) n_lins; cnccat->cats = cats; - cnccat->lindefs = gu_map_get(rdr->curr_lindefs, &first, PgfFunIds*); cnccat->labels = pgf_read_new(rdr, gu_type(GuStringL), pool, NULL); gu_exit("<-"); -- cgit v1.2.3