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