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 */ 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 ( ) + ")" ; } /*-----------------------------------------------------------*/ }