All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java_cup.shift_action Maven / Gradle / Ivy

Go to download

A fork of the Java Cup parser generator with some bug fixes and enhancements. (Forked at version 11b)

The newest version!
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.
 *
 * @author Scott Hudson
 * @version last updated: 11/25/95
 */
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() + ")";
    }

  /*-----------------------------------------------------------*/

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy