package java_cup;

/** This class represents one row (corresponding to one machine state) of the 
 *  reduce-goto parse table. 
 */
public class parse_reduce_row {
	/*-----------------------------------------------------------*/
	/*--- Constructor(s) ----------------------------------------*/
	/*-----------------------------------------------------------*/

	/** Simple constructor. Note: this should not be used until the number
	 *  of terminals in the grammar has been established.
	 */
	public parse_reduce_row()
	{
		/* make sure the size is set */
		if (_size <= 0)
			_size = non_terminal.number();

		/* allocate the array */
		under_non_term = new lalr_state[size()];
	}

	/*-----------------------------------------------------------*/
	/*--- (Access to) Static (Class) Variables ------------------*/
	/*-----------------------------------------------------------*/

	/** Number of columns (non terminals) in every row. */
	protected static int _size = 0;

	/** Number of columns (non terminals) in every row. */
	public static int size() {
		return _size;
	}

	//Hm Added clear  to clear all static fields
	public static void clear() {
		_size = 0;
	}

	/*-----------------------------------------------------------*/
	/*--- (Access to) Instance Variables ------------------------*/
	/*-----------------------------------------------------------*/

	/** Actual entries for the row. */
	public lalr_state under_non_term[];
}
