static void gen(NODEPTR p) { if (burm_label(p) == 0) std::cerr << "no cover\n"; else { stmt_action(p->x.state,0); if (shouldCover != 0) dumpCover(p, 1, 0); } }
/* dumpCover - print the matched cover for p */ static void dumpCover(Tree p, int goalnt, int indent) { int eruleno = burm_rule(p->x.state, goalnt); short *nts = burm_nts[eruleno]; Tree kids[10]; int i; for (i = 0; i < indent; i++) fprintf(stderr, " "); fprintf(stderr, "%s\n", burm_string[eruleno]); burm_kids(p, eruleno, kids); for (i = 0; nts[i]; i++) dumpCover(kids[i], nts[i], indent + 1); }
void dumpCover(NODEPTR p, int goalnt, int indent) { int eruleno = burm_rule(STATE_LABEL(p), goalnt); short *nts = burm_nts[eruleno]; NODEPTR kids[10]; int i; std::cerr << "\t\t"; for (i = 0; i < indent; i++) std::cerr << " "; std::cerr << burm_string[eruleno] << "\n"; burm_kids(p, eruleno, kids); for (i = 0; nts[i]; i++) dumpCover(kids[i], nts[i], indent + 1); }
static void gen(NODEPTR_TYPE p) { if (burm_label(p) == 0) fprintf(stderr, "no cover\n"); else dumpCover(p, 1, 0); }