// 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);
};


syntax highlighted by Code2HTML, v. 0.9.1