package java_cup; /** * This class represents a shift action within the parse table. The action * simply stores the state that it shifts to and responds to queries about its * type. * * @version last updated: 11/25/95 * @author Scott Hudson */ @SuppressWarnings ( { "all" } ) public class shift_action extends parse_action { /*-----------------------------------------------------------*/ /*--- Constructor(s) ----------------------------------------*/ /*-----------------------------------------------------------*/ /** * Simple constructor. * * @param shft_to the state that this action shifts to. */ public shift_action ( lalr_state shft_to ) throws internal_error { /* sanity check */ if ( shft_to == null ) throw new internal_error ( "Attempt to create a shift_action to a null state" ); _shift_to = shft_to; } /*-----------------------------------------------------------*/ /*--- (Access to) Instance Variables ------------------------*/ /*-----------------------------------------------------------*/ /** The state we shift to. */ protected lalr_state _shift_to; /** The state we shift to. */ public lalr_state shift_to () { return _shift_to; } /*-----------------------------------------------------------*/ /*--- General Methods ---------------------------------------*/ /*-----------------------------------------------------------*/ /** Quick access to type of action. */ public int kind () { return SHIFT; } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Equality test. */ public boolean equals ( shift_action other ) { return other != null && other.shift_to () == shift_to (); } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Generic equality test. */ public boolean equals ( Object other ) { if ( other instanceof shift_action ) return equals ( ( shift_action ) other ); else return false; } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Compute a hash code. */ public int hashCode () { /* use the hash code of the state we are shifting to */ return shift_to ().hashCode (); } /* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ /** Convert to a string. */ public String toString () { return "SHIFT(to state " + shift_to ().index () + ")"; } /*-----------------------------------------------------------*/ }