// The ParTable class consolidates all the information required to // generate the output file. It also contains member functions to // output this information in the required format. class ParTable { short int **actionTable; int states, symbols, acceptState; void fillTable(); public: void shiftIs(int state, int sy, int newState); void reduceIs(int state, int sy, LConf *); void condShiftIs(int state, int sy, int newState, LConfList &); void condReduceIs(int state, int sy, LConf *, LConfList &); ParTable(); void pr_nomodsWarning(FILE *); void pr_prelude(FILE *); void pr_postlude(FILE *); void pr_states(FILE *); void pr_symbols(FILE *); void pr_acceptState(FILE *); void pr_tokens(FILE *); void pr_actionTable(FILE *); void pr_reduceTable(FILE *); void pr_condTable(FILE *); void pr_code(FILE *); void pr_attrdef(FILE *); void pr_inhAttrdef(FILE *); void pr_signature(ParNode *, ParNode *, FILE *); void pr_rule_rhs(ParNode *prod, ParNode *limit, FILE *ofdes); void pr_argument_add(ParNode *, ParNode *, FILE *); void pr_argument(ParNode *, ParNode *, FILE *); void pr_form_argument(ParNode *, ParNode *, FILE *); protected: void countTokens(ParNode *prod, int &tokenCount, int &totalCount); };