From 106d963d39b595ec0a87dd98367157acce61be94 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 30 Sep 2022 10:45:14 +0200 Subject: [PATCH] fix the printing of ExprItem --- src/runtime/c/pgf/parser.cxx | 12 ++++++------ src/runtime/c/pgf/parser.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/runtime/c/pgf/parser.cxx b/src/runtime/c/pgf/parser.cxx index 099a08864..7c738e452 100644 --- a/src/runtime/c/pgf/parser.cxx +++ b/src/runtime/c/pgf/parser.cxx @@ -330,7 +330,7 @@ public: #endif } - virtual void print2(PgfPrinter *printer, State *state, PgfMarshaller *m) + virtual void print2(PgfPrinter *printer, State *state, int x, PgfMarshaller *m) { } @@ -434,11 +434,11 @@ public: #endif } - virtual void print2(PgfPrinter *printer, State *state, PgfMarshaller *m) + virtual void print2(PgfPrinter *printer, State *state, int x, PgfMarshaller *m) { #ifdef PARSER_DEBUG size_t n_args = prod->lin->absfun->type->hypos->len; - for (size_t i = arg_index; i < n_args; i++) { + for (size_t i = arg_index+x; i < n_args; i++) { if (prod->args[i]) printer->nprintf(10," ?%ld",prod->args[i]->id); else @@ -447,7 +447,7 @@ public: if (n_args > 0) printer->puts(")"); - parent->items[0]->print2(printer,state,m); + parent->items[0]->print2(printer,state,1,m); #endif } @@ -540,7 +540,7 @@ public: #endif } - virtual void print2(PgfPrinter *printer, State *state, PgfMarshaller *m) + virtual void print2(PgfPrinter *printer, State *state, int x, PgfMarshaller *m) { #ifdef PARSER_DEBUG MetaItem *res = this; @@ -577,7 +577,7 @@ void PgfParser::Item::trace(State *state, PgfMarshaller *m) PgfPrinter printer(NULL,0,m); printer.puts("["); print1(&printer, state, m); - print2(&printer, state, m); + print2(&printer, state, 0, m); printer.nprintf(40,"; %f+%f=%f]\n",inside_prob,outside_prob,inside_prob+outside_prob); printer.dump(); #endif diff --git a/src/runtime/c/pgf/parser.h b/src/runtime/c/pgf/parser.h index 9e82b31ad..aaaf5ff7e 100644 --- a/src/runtime/c/pgf/parser.h +++ b/src/runtime/c/pgf/parser.h @@ -30,7 +30,7 @@ private: virtual bool proceed(PgfParser *parser, PgfUnmarshaller *u) = 0; virtual void combine(PgfParser *parser, ParseItemConts *conts, PgfExpr expr, prob_t inside_prob, PgfUnmarshaller *u) = 0; virtual void print1(PgfPrinter *printer, State *state, PgfMarshaller *m) = 0; - virtual void print2(PgfPrinter *printer, State *state, PgfMarshaller *m) = 0; + virtual void print2(PgfPrinter *printer, State *state, int x, PgfMarshaller *m) = 0; virtual PgfExpr get_expr(PgfUnmarshaller *u) = 0; void trace(State *state, PgfMarshaller *m);